@@ -15,6 +15,10 @@ function _init()
15
15
test_rawget ()
16
16
test_unpack ()
17
17
test_ipairs ()
18
+ test_table_pack ()
19
+ test_table_insert ()
20
+ test_table_remove ()
21
+ test_table_sort ()
18
22
print (" every test passed." )
19
23
end
20
24
@@ -211,6 +215,99 @@ function test_ipairs()
211
215
for i ,v in ipairs (test_table ) do
212
216
assert (2 ^ i == v , " fail" )
213
217
end
218
+ printh (" ----> return an iter function" )
219
+ test_table = {2 ,4 ,8 ,16 ,32 ,64 ,128 ,256 ,512 ,1024 }
220
+ iter , i , v = ipairs (test_table )
221
+ assert (type (iter ) == " function" , " fail" )
222
+ printh (" pass" )
223
+ end
224
+
225
+ function test_table_pack ()
226
+ printh (" ==> 'table.pack'" )
227
+ printh (" ----> pack values" )
228
+ local values = table.pack (1 ,2 ,3 ,4 ,5 )
229
+ assert (values [1 ] == 1 , " fail" )
230
+ assert (values [2 ] == 2 , " fail" )
231
+ assert (values [3 ] == 3 , " fail" )
232
+ assert (values [4 ] == 4 , " fail" )
233
+ assert (values [5 ] == 5 , " fail" )
234
+ printh (" pass" )
235
+ end
236
+
237
+ function test_table_insert ()
238
+ printh (" ==> 'table.insert'" )
239
+ printh (" ----> insert value" )
240
+ local test_table = {22 ,- 20 ,67 ,1009 ,- 500 }
241
+ table.insert (test_table , 10 )
242
+ assert (test_table [1 ] == 22 , " fail" )
243
+ assert (test_table [2 ] == - 20 , " fail" )
244
+ assert (test_table [3 ] == 67 , " fail" )
245
+ assert (test_table [4 ] == 1009 , " fail" )
246
+ assert (test_table [5 ] == - 500 , " fail" )
247
+ assert (test_table [6 ] == 10 , " fail" )
248
+ printh (" ----> insert value at specified pos" )
249
+ test_table = {- 3 ,- 2 ,- 1 ,0 ,2 ,3 }
250
+ table.insert (test_table , 5 , 1 )
251
+ assert (test_table [1 ] == - 3 , " fail" )
252
+ assert (test_table [2 ] == - 2 , " fail" )
253
+ assert (test_table [3 ] == - 1 , " fail" )
254
+ assert (test_table [4 ] == 0 , " fail" )
255
+ assert (test_table [5 ] == 1 , " fail" )
256
+ assert (test_table [6 ] == 2 , " fail" )
257
+ assert (test_table [7 ] == 3 , " fail" )
258
+ printh (" pass" )
259
+ end
260
+
261
+ function test_table_remove ()
262
+ printh (" ==> 'table.remove'" )
263
+ printh (" ----> remove value" )
264
+ local test_table = {- 3 ,- 2 ,- 1 ,0 ,1 ,2 ,3 }
265
+ table.remove (test_table )
266
+ assert (test_table [1 ] == - 3 , " fail" )
267
+ assert (test_table [2 ] == - 2 , " fail" )
268
+ assert (test_table [3 ] == - 1 , " fail" )
269
+ assert (test_table [4 ] == 0 , " fail" )
270
+ assert (test_table [5 ] == 1 , " fail" )
271
+ assert (test_table [6 ] == 2 , " fail" )
272
+ assert (test_table [7 ] == nil , " fail" )
273
+ printh (" ----> remove value at specified pos" )
274
+ test_table = {- 3 ,- 2 ,- 1 ,0 ,1 ,2 ,3 }
275
+ table.remove (test_table , 1 )
276
+ assert (test_table [1 ] == - 2 , " fail" )
277
+ assert (test_table [2 ] == - 1 , " fail" )
278
+ assert (test_table [3 ] == 0 , " fail" )
279
+ assert (test_table [4 ] == 1 , " fail" )
280
+ assert (test_table [5 ] == 2 , " fail" )
281
+ assert (test_table [6 ] == 3 , " fail" )
282
+ assert (test_table [7 ] == nil , " fail" )
283
+ printh (" pass" )
284
+ end
285
+
286
+ function test_table_sort ()
287
+ printh (" ==> 'table.sort'" )
288
+ printh (" ----> sort simple table" )
289
+ local test_table = {33 ,3 ,333 ,87 ,13 ,252 ,- 29 }
290
+ table.sort (test_table )
291
+ assert (test_table [1 ] == - 29 , " fail" )
292
+ assert (test_table [2 ] == 3 , " fail" )
293
+ assert (test_table [3 ] == 13 , " fail" )
294
+ assert (test_table [4 ] == 33 , " fail" )
295
+ assert (test_table [5 ] == 87 , " fail" )
296
+ assert (test_table [6 ] == 252 , " fail" )
297
+ assert (test_table [7 ] == 333 , " fail" )
298
+ printh (" ----> sort simple table with given comp function" )
299
+ local function desc (a ,b )
300
+ return a > b
301
+ end
302
+ test_table = {33 ,3 ,333 ,87 ,13 ,252 ,- 29 }
303
+ table.sort (test_table , desc )
304
+ assert (test_table [1 ] == 333 , " fail" )
305
+ assert (test_table [2 ] == 252 , " fail" )
306
+ assert (test_table [3 ] == 87 , " fail" )
307
+ assert (test_table [4 ] == 33 , " fail" )
308
+ assert (test_table [5 ] == 13 , " fail" )
309
+ assert (test_table [6 ] == 3 , " fail" )
310
+ assert (test_table [7 ] == - 29 , " fail" )
214
311
printh (" pass" )
215
312
end
216
313
0 commit comments