@@ -15,6 +15,10 @@ function _init()
1515 test_rawget ()
1616 test_unpack ()
1717 test_ipairs ()
18+ test_table_pack ()
19+ test_table_insert ()
20+ test_table_remove ()
21+ test_table_sort ()
1822 print (" every test passed." )
1923end
2024
@@ -211,6 +215,99 @@ function test_ipairs()
211215 for i ,v in ipairs (test_table ) do
212216 assert (2 ^ i == v , " fail" )
213217 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" )
214311 printh (" pass" )
215312end
216313
0 commit comments