-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathlist.lua
More file actions
210 lines (210 loc) · 8.35 KB
/
list.lua
File metadata and controls
210 lines (210 loc) · 8.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
local l = list({}, {_to_null(nil, 4, 3, nil, 2, 1, nil)})
assert(bool({}, (len(merge_kwargs({}, {}), l) == 7)))
assert(bool({}, (l[_to_null(0)] == nil)))
assert(bool({}, (l[_to_null(1)] == 4)))
assert(bool({}, (l[_to_null(2)] == 3)))
assert(bool({}, (l[_to_null(3)] == nil)))
assert(bool({}, (l[_to_null(4)] == 2)))
assert(bool({}, (l[_to_null(5)] == 1)))
assert(bool({}, (l[_to_null(6)] == nil)))
l = list({}, {_to_null(list({}, {_to_null(0, 1, nil)}), list({}, {_to_null(2, nil, 3)}))})
assert(bool({}, (len(merge_kwargs({}, {}), l) == 2)))
assert(bool({}, (l[_to_null(0)][_to_null(0)] == 0)))
assert(bool({}, (l[_to_null(0)][_to_null(1)] == 1)))
assert(bool({}, (l[_to_null(0)][_to_null(2)] == nil)))
assert(bool({}, (l[_to_null(1)][_to_null(0)] == 2)))
assert(bool({}, (l[_to_null(1)][_to_null(1)] == nil)))
assert(bool({}, (l[_to_null(1)][_to_null(2)] == 3)))
l = list({}, {_to_null(nil, 4, 3, nil, 2, 1, nil)})
local i = 0
for _, v in l do
if bool({}, (i == 0)) then
assert(bool({}, (v == nil)))
end
if bool({}, (i == 1)) then
assert(bool({}, (v == 4)))
end
if bool({}, (i == 2)) then
assert(bool({}, (v == 3)))
end
if bool({}, (i == 3)) then
assert(bool({}, (v == nil)))
end
if bool({}, (i == 4)) then
assert(bool({}, (v == 2)))
end
if bool({}, (i == 5)) then
assert(bool({}, (v == 1)))
end
if bool({}, (i == 6)) then
assert(bool({}, (v == nil)))
end
i = (i + 1)
::loop_label_1::
end
assert(bool({}, (i == 7)))
l = list({}, {_to_null(nil, 4, 3, 2, 1, nil)})
l.append(merge_kwargs({}, {}), 5)
assert(bool({}, (len(merge_kwargs({}, {}), l) == 7)))
assert(bool({}, (l[_to_null((-1))] == 5)))
l.clear(merge_kwargs({}, {}))
assert(bool({}, (len(merge_kwargs({}, {}), l) == 0)))
local l1 = list({}, {_to_null(1, 2, 3, 4, nil)})
local l2 = l1.copy(merge_kwargs({}, {}))
l2[_to_null(0)] = 0
l2.append(merge_kwargs({}, {}), 5)
assert(bool({}, (len(merge_kwargs({}, {}), l1) == 5)))
assert(bool({}, (len(merge_kwargs({}, {}), l2) == 6)))
assert(bool({}, (l1[_to_null(0)] == 1)))
assert(bool({}, (l2[_to_null(0)] == 0)))
l = list({}, {_to_null(nil, 4, 3, 2, 4, nil, 2, 1, 0, 0, 0)})
assert(bool({}, (len(merge_kwargs({}, {}), l) == 11)))
assert(bool({}, (l.count(merge_kwargs({}, {}), nil) == 2)))
assert(bool({}, (l.count(merge_kwargs({}, {}), 4) == 2)))
assert(bool({}, (l.count(merge_kwargs({}, {}), 3) == 1)))
assert(bool({}, (l.count(merge_kwargs({}, {}), 2) == 2)))
assert(bool({}, (l.count(merge_kwargs({}, {}), 1) == 1)))
assert(bool({}, (l.count(merge_kwargs({}, {}), 0) == 3)))
l = list({}, {_to_null(nil, 4, 3, 2, 4, nil, 2, 1, 0, 0, 0)})
l.extend(merge_kwargs({}, {}), list({}, {_to_null(5, 6, 7)}))
assert(bool({}, (len(merge_kwargs({}, {}), l) == 14)))
assert(bool({}, (l[_to_null((-1))] == 7)))
assert(bool({}, (l[_to_null((-2))] == 6)))
assert(bool({}, (l[_to_null((-3))] == 5)))
l = list({}, {_to_null(0, 1, 2, 3, 0, 1, 2, 3)})
assert(bool({}, (l.index(merge_kwargs({}, {}), 0) == 0)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 1) == 1)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 2) == 2)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 3) == 3)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, 0) == 0)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, 4) == 4)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, (-4)) == 4)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, 0, 4) == 0)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, (-8), 4) == 0)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, (-8), (-4)) == 0)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, 1, 5) == 4)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, (-7), 5) == 4)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, (-7), (-3)) == 4)))
assert(bool({}, (l.index(merge_kwargs({}, {}), 0, (-20), 20) == 0)))
l = list({}, {_to_null(0)})
l.insert(merge_kwargs({}, {}), 0, (-1))
assert(bool({}, (l[_to_null(0)] == (-1))))
l.insert(merge_kwargs({}, {}), (-10), (-2))
assert(bool({}, (l[_to_null(0)] == (-2))))
l.insert(merge_kwargs({}, {}), 3, 1)
l.insert(merge_kwargs({}, {}), 10, 10)
assert(bool({}, (l[_to_null(3)] == 1)))
assert(bool({}, (l[_to_null(4)] == 10)))
l.insert(merge_kwargs({}, {}), (-1), nil)
assert(bool({}, (l[_to_null((-2))] == nil)))
assert(bool({}, (l[_to_null((-1))] == 10)))
l = list({}, {_to_null(0, 1, nil, 2, 3, 4)})
local p = l.pop(merge_kwargs({}, {}))
assert(bool({}, (len(merge_kwargs({}, {}), l) == 5)))
assert(bool({}, (l[_to_null((-1))] == 3)))
assert(bool({}, (p == 4)))
p = l.pop(merge_kwargs({}, {}), 0)
assert(bool({}, (l[_to_null(0)] == 1)))
assert(bool({}, (p == 0)))
p = l.pop(merge_kwargs({}, {}), (-2))
assert(bool({}, (l[_to_null((-1))] == 3)))
assert(bool({}, (p == 2)))
l = list({}, {_to_null(0, nil, 1, 2, 3, 4, 0, nil)})
l.remove(merge_kwargs({}, {}), 0)
assert(bool({}, (len(merge_kwargs({}, {}), l) == 7)))
assert(bool({}, (l[_to_null(0)] == nil)))
l.remove(merge_kwargs({}, {}), 0)
assert(bool({}, (len(merge_kwargs({}, {}), l) == 6)))
assert(bool({}, (l[_to_null((-1))] == nil)))
l = list({}, {_to_null(0, 1, 2, 3, nil, 4)})
l.reverse(merge_kwargs({}, {}))
assert(bool({}, (len(merge_kwargs({}, {}), l) == 6)))
assert(bool({}, (l[_to_null(0)] == 4)))
assert(bool({}, (l[_to_null(4)] == 1)))
l = list({}, {_to_null(4, 1, 2, 0, 3)})
l.sort(merge_kwargs({}, {}))
assert(bool({}, (l[_to_null(0)] == 0)))
assert(bool({}, (l[_to_null(1)] == 1)))
assert(bool({}, (l[_to_null(2)] == 2)))
assert(bool({}, (l[_to_null(3)] == 3)))
assert(bool({}, (l[_to_null(4)] == 4)))
l = list({}, {_to_null(4, 1, 2, 0, 3)})
assert(bool({}, (operator_in(0, l))))
assert(bool({}, (not operator_in(5, l))))
l1 = list({}, {_to_null(4, 1, 2, 0, 3)})
l2 = list({}, {_to_null(4, 1, 2, 0, 3)})
l = (l1 + l2)
assert(bool({}, (len(merge_kwargs({}, {}), l) == 10)))
assert(bool({}, (l[_to_null(0)] == 4)))
assert(bool({}, (l[_to_null(1)] == 1)))
assert(bool({}, (l[_to_null(2)] == 2)))
assert(bool({}, (l[_to_null(3)] == 0)))
assert(bool({}, (l[_to_null(4)] == 3)))
assert(bool({}, (l[_to_null(5)] == 4)))
assert(bool({}, (l[_to_null(6)] == 1)))
assert(bool({}, (l[_to_null(7)] == 2)))
assert(bool({}, (l[_to_null(8)] == 0)))
assert(bool({}, (l[_to_null(9)] == 3)))
l1 = list({}, {_to_null(4, 1, 2, 0, 3)})
l = (l1 * 2)
assert(bool({}, (len(merge_kwargs({}, {}), l) == 10)))
assert(bool({}, (l[_to_null(0)] == 4)))
assert(bool({}, (l[_to_null(1)] == 1)))
assert(bool({}, (l[_to_null(2)] == 2)))
assert(bool({}, (l[_to_null(3)] == 0)))
assert(bool({}, (l[_to_null(4)] == 3)))
assert(bool({}, (l[_to_null(5)] == 4)))
assert(bool({}, (l[_to_null(6)] == 1)))
assert(bool({}, (l[_to_null(7)] == 2)))
assert(bool({}, (l[_to_null(8)] == 0)))
assert(bool({}, (l[_to_null(9)] == 3)))
l = list({}, {_to_null(4, 1, 2, 0, 3)})
assert(bool({}, (l[_to_null(0)] == 4)))
local ls = l[slice({}, 1, 2, nil)]
assert(bool({}, (len(merge_kwargs({}, {}), ls) == 1)))
assert(bool({}, (ls[_to_null(0)] == 1)))
local ls2 = l[slice({}, 1, 5, 2)]
assert(bool({}, (len(merge_kwargs({}, {}), ls2) == 2)))
assert(bool({}, (ls2[_to_null(0)] == 1)))
assert(bool({}, (ls2[_to_null(1)] == 0)))
l = list({}, {_to_null(4, 1, 2, 0, 3)})
assert(bool({}, (l[_to_null(0)] == 4)))
l[_to_null(0)] = 2
assert(bool({}, (l[_to_null(0)] == 2)))
l = list({}, {_to_null(4, 1, 2, 0, 3)})
l[slice({}, 1, 3, nil)] = list({}, {_to_null(10, 11, 12)})
assert(bool({}, (len(merge_kwargs({}, {}), l) == 6)))
assert(bool({}, (l[_to_null(0)] == 4)))
assert(bool({}, (l[_to_null(1)] == 10)))
assert(bool({}, (l[_to_null(2)] == 11)))
assert(bool({}, (l[_to_null(3)] == 12)))
assert(bool({}, (l[_to_null(4)] == 0)))
assert(bool({}, (l[_to_null(5)] == 3)))
l = list({}, {_to_null(4, 1, 2, 0, 3)})
l[slice({}, 0, 5, 2)] = list({}, {_to_null(10, 11, 12)})
assert(bool({}, (len(merge_kwargs({}, {}), l) == 5)))
assert(bool({}, (l[_to_null(0)] == 10)))
assert(bool({}, (l[_to_null(1)] == 1)))
assert(bool({}, (l[_to_null(2)] == 11)))
assert(bool({}, (l[_to_null(3)] == 0)))
assert(bool({}, (l[_to_null(4)] == 12)))
l = list({}, {_to_null(4, 1, 2, 0, 3)})
l[slice({}, 1, 3, nil)] = nil
assert(bool({}, (len(merge_kwargs({}, {}), l) == 3)))
assert(bool({}, (l[_to_null(0)] == 4)))
assert(bool({}, (l[_to_null(1)] == 0)))
assert(bool({}, (l[_to_null(2)] == 3)))
l = list({}, {_to_null(4, 1, 2, 0, 3)})
l[slice({}, 0, 5, 2)] = nil
assert(bool({}, (len(merge_kwargs({}, {}), l) == 2)))
assert(bool({}, (l[_to_null(0)] == 1)))
assert(bool({}, (l[_to_null(1)] == 0)))
return {
l = l,
i = i,
l1 = l1,
l2 = l2,
p = p,
ls = ls,
ls2 = ls2,
}