efl

Форк
0
/
List.cs 
193 строки · 6.1 Кб
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4

5
namespace TestSuite {
6

7
class TestList
8
{
9
    public static void TestAdd()
10
    {
11
        IList<int> list = new Eina.List<int>();
12
        Test.AssertEquals(list.Count, 0);
13
        list.Add(1);
14
        Test.AssertEquals(list.Count, 1);
15
        list.Add(2);
16
        Test.AssertEquals(list.Count, 2);
17
    }
18

19
    public static void TestRemoveAt()
20
    {
21
        IList<int> list = new Eina.List<int>();
22
        Test.AssertEquals(list.Count, 0);
23
        list.Add(1);
24
        Test.AssertEquals(list.Count, 1);
25
        Test.AssertEquals(list[0], 1);
26
        list.RemoveAt(0);
27
        Test.AssertEquals(list.Count, 0);
28
        list.Add(1);
29
        list.Add(0);
30
        list.Add(1);
31
        Test.AssertEquals(list.Count, 3);
32
        Test.AssertEquals(list[2], 1);
33
        list.RemoveAt(2);
34
        Test.AssertEquals(list.Count, 2);
35
        Test.AssertEquals(list[0], 1);
36
    }
37

38
    public static void TestRemove()
39
    {
40
        IList<int> list = new Eina.List<int>();
41
        Test.Assert(!list.Remove(0));
42
        Test.AssertEquals(list.Count, 0);
43
        list.Add(1);
44
        Test.AssertEquals(list.Count, 1);
45
        Test.Assert(list.Remove(1));
46
        Test.AssertEquals(list.Count, 0);
47
        list.Add(1);
48
        list.Add(1);
49
        Test.AssertEquals(list.Count, 2);
50
        Test.Assert(list.Remove(1));
51
        Test.AssertEquals(list.Count, 1);
52
        list.Add(0);
53
        list.Add(1);
54
        Test.AssertEquals(list[1], 0);
55
        Test.AssertEquals(list.Count, 3);
56
        Test.Assert(!list.Remove(2));
57
        Test.Assert(list.Remove(1));
58
        Test.AssertEquals(list[1], 1);
59
        Test.AssertEquals(list.Count, 2);
60
    }
61

62
    public static void TestContains()
63
    {
64
        IList<int> list = new Eina.List<int>();
65
        Test.AssertEquals(list.Count, 0);
66
        Test.Assert(!list.Contains(0));
67
        list.Add(0);
68
        Test.Assert(list.Contains(0));
69
        Test.Assert(list.Remove(0));
70
        Test.Assert(!list.Contains(0));
71
        list.Add(1);
72
        list.Add(0);
73
        Test.Assert(list.Contains(0));
74
    }
75

76
    public static void TestClear()
77
    {
78
        IList<int> list = new Eina.List<int>();
79
        Test.AssertEquals(list.Count, 0);
80
        list.Clear();
81
        Test.AssertEquals(list.Count, 0);
82
        list.Add(0);
83
        Test.AssertEquals(list.Count, 1);
84
        list.Clear();
85
        Test.AssertEquals(list.Count, 0);
86
        list.Add(0);
87
        list.Add(0);
88
        Test.AssertEquals(list.Count, 2);
89
        list.Clear();
90
        Test.AssertEquals(list.Count, 0);
91
        list.Add(0);
92
        list.Add(0);
93
        Test.AssertEquals(list.Count, 2);
94
        Test.Assert(list.Remove(0));
95
        Test.AssertEquals(list.Count, 1);
96
        list.Clear();
97
        Test.AssertEquals(list.Count, 0);
98
    }
99

100
    public static void TestInsert()
101
    {
102
        IList<int> list = new Eina.List<int>();
103
        list.Add(99);
104
        Test.AssertEquals(list.Count, 1);
105
        list.Insert(0, 6);
106
        Test.AssertEquals(list.Count, 2);
107
        Test.AssertEquals(list[0], 6);
108
        list.Insert(1, 5);
109
        Test.AssertEquals(list.Count, 3);
110
        Test.AssertEquals(list[1], 5);
111
        list.Insert(1, 10);
112
        Test.AssertEquals(list.Count, 4);
113
        Test.AssertEquals(list[1], 10);
114
        list.RemoveAt(1);
115
        Test.AssertEquals(list.Count, 3);
116
        Test.AssertEquals(list[1], 5);
117
        list.Insert(1, 42);
118
        Test.AssertEquals(list.Count, 4);
119
        Test.AssertEquals(list[1], 42);
120
    }
121

122
    public static void TestIndexOf()
123
    {
124
        IList<int> list = new Eina.List<int>();
125
        Test.AssertEquals(list.Count, 0);
126
        list.Add(1);
127
        Test.AssertEquals(list.Count, 1);
128
        Test.AssertEquals(0, list.IndexOf(1));
129
        list.Insert(0, 0);
130
        Test.AssertEquals(list.Count, 2);
131
        Test.AssertEquals(0, list.IndexOf(0));
132
        Test.AssertEquals(1, list.IndexOf(1));
133
        list.Insert(0, 1);
134
        Test.AssertEquals(list.Count, 3);
135
        Test.AssertEquals(0, list.IndexOf(1));
136
        Test.AssertEquals(1, list.IndexOf(0));
137
        list.Insert(0, 1);
138
        Test.AssertEquals(list.Count, 4);
139
        Test.AssertEquals(0, list.IndexOf(1));
140
        Test.AssertEquals(2, list.IndexOf(0));
141
    }
142

143
    public static void TestCopyTo()
144
    {
145
        IList<int> list = new Eina.List<int>();
146
        Test.AssertEquals(list.Count, 0);
147
        int[] random = {4, 40, 10, 42, 99};
148
        list.Add(43);
149
        list.Insert(0, 1);
150
        list.Insert(1, 50);
151
        Test.AssertEquals(list.Count, 3);
152
        Array.ForEach(random, (n) => list.Add(n));
153
        Test.AssertEquals(list.Count, 8);
154
        int[] expected = {1, 50, 43, 4, 40, 10, 42, 99};
155
        var result = new int[expected.Length];
156
        list.CopyTo(result, 0);
157
        for (int i = 0; i < expected.Length; ++i)
158
        {
159
            Test.AssertEquals(expected[i], result[i]);
160
        }
161
    }
162

163
    public static void TestIdxOutBounds()
164
    {
165
        var list = new Eina.List<int>();
166
        list.Add(4);
167
        Test.AssertRaises<ArgumentOutOfRangeException>(()=>list.Nth(1));
168
        Test.AssertRaises<ArgumentOutOfRangeException>(()=>list.Nth(-1));
169
        Test.AssertNotRaises<ArgumentOutOfRangeException>
170
            (()=>list.Nth(list.IndexOf(4)));
171
    }
172

173
    public static void TestReadOnly()
174
    {
175
        var list = new Eina.List<int>();
176
        int[] array = {6, 5, 4, 3, 2};
177
        list.Append(array);
178
        Test.AssertEquals(list.Count, 5);
179
        Test.AssertRaises<InvalidOperationException>(() => list.SetOwnership(false, true));
180
        list.SetOwnership(false);
181
        Test.AssertRaises<NotSupportedException>(() => list.Add(4));
182
        Test.AssertRaises<NotSupportedException>(() => list.Append(6));
183
        Test.AssertRaises<NotSupportedException>(() => list.Append(array));
184
        Test.AssertRaises<NotSupportedException>(() => list.Remove(6));
185
        Test.AssertEquals(list.Count, 5);
186
        Test.AssertRaises<NotSupportedException>(() => list.RemoveAt(2));
187
        Test.AssertRaises<NotSupportedException>(() => list.Insert(4, 4));
188
        Test.AssertRaises<NotSupportedException>(() => list.Clear());
189
        Test.AssertRaises<NotSupportedException>(() => list.Sort());
190
        Test.Assert(list.ToArray().SequenceEqual(array));
191
    }
192
}
193
};
194

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.