236 lines
5.5 KiB
Plaintext
236 lines
5.5 KiB
Plaintext
2
|
|
-- concat tests
|
|
onetwothree
|
|
one--two--three
|
|
two,three
|
|
two
|
|
|
|
onetwothreefourfive
|
|
one--two--three--four--five
|
|
two,three,four,five
|
|
two
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- insert, len tests
|
|
{[1]=one,[2]=two,[3]=three,[a]=aaa,[b]=bbb,[c]=ccc} 3
|
|
{[1]=one,[2]=two,[3]=three,[4]=six,[a]=aaa,[b]=bbb,[c]=ccc} 4
|
|
{[1]=seven,[2]=one,[3]=two,[4]=three,[5]=six,[a]=aaa,[b]=bbb,[c]=ccc} 5
|
|
{[1]=seven,[2]=one,[3]=two,[4]=eight,[5]=three,[6]=six,[a]=aaa,[b]=bbb,[c]=ccc} 6
|
|
{[1]=seven,[2]=one,[3]=two,[4]=eight,[5]=three,[6]=six,[7]=nine,[a]=aaa,[b]=bbb,[c]=ccc} 7
|
|
#{} 0
|
|
#{"a"} 1
|
|
#{"a","b"} 2
|
|
#{"a",nil} 1
|
|
#{nil,nil} 0
|
|
#{nil,"b"} true
|
|
#{"a","b","c"} 3
|
|
#{"a","b",nil} 2
|
|
#{"a",nil,nil} 1
|
|
#{nil,nil,nil} 0
|
|
#{nil,nil,"c"} true
|
|
#{nil,"b","c"} true
|
|
#{nil,"b",nil} true
|
|
#{"a",nil,"c"} true
|
|
-- remove tests
|
|
{[10]=ten,[1]=one,[2]=two,[3]=three,[4]=four,[5]=five,[6]=six,[7]=seven,[a]=aaa,[b]=bbb,[c]=ccc} 7
|
|
table.remove(t) seven
|
|
{[10]=ten,[1]=one,[2]=two,[3]=three,[4]=four,[5]=five,[6]=six,[a]=aaa,[b]=bbb,[c]=ccc} 6
|
|
table.remove(t,1) one
|
|
{[10]=ten,[1]=two,[2]=three,[3]=four,[4]=five,[5]=six,[a]=aaa,[b]=bbb,[c]=ccc} 5
|
|
table.remove(t,3) four
|
|
{[10]=ten,[1]=two,[2]=three,[3]=five,[4]=six,[a]=aaa,[b]=bbb,[c]=ccc} 4
|
|
-- sort tests
|
|
one-two-three
|
|
one-three-two
|
|
www-vvv-uuu-ttt-sss-zzz-yyy-xxx
|
|
sss-ttt-uuu-vvv-www-xxx-yyy-zzz
|
|
www-vvv-uuu-ttt-sss-zzz-yyy-xxx
|
|
zzz-yyy-xxx-www-vvv-uuu-ttt-sss
|
|
----- unpack tests -------
|
|
pcall(unpack) false
|
|
pcall(unpack,nil) false
|
|
pcall(unpack,"abc") false
|
|
pcall(unpack,1) false
|
|
unpack({"aa"}) aa
|
|
unpack({"aa","bb"}) aa bb
|
|
unpack({"aa","bb","cc"}) aa bb cc
|
|
unpack -
|
|
unpack a a
|
|
unpack . nil
|
|
unpack ab a b
|
|
unpack .b nil b
|
|
unpack a. a nil
|
|
unpack abc a b c
|
|
unpack .ab nil a b
|
|
unpack a.b a nil b
|
|
unpack ab. a b nil
|
|
unpack ..b nil nil b
|
|
unpack a.. a nil nil
|
|
unpack .b. nil b nil
|
|
unpack ... nil nil nil
|
|
unpack (-)
|
|
unpack (a) a
|
|
unpack (.) nil
|
|
unpack (ab) a b
|
|
unpack (.b) nil b
|
|
unpack (a.) a nil
|
|
unpack (abc) a b c
|
|
unpack (.ab) nil a b
|
|
unpack (a.b) a nil b
|
|
unpack (ab.) a b nil
|
|
unpack (..b) nil nil b
|
|
unpack (a..) a nil nil
|
|
unpack (.b.) nil b nil
|
|
unpack (...) nil nil nil
|
|
pcall(unpack,t) true aa bb cc dd ee ff
|
|
pcall(unpack,t,2) true bb cc dd ee ff
|
|
pcall(unpack,t,2,5) true bb cc dd ee
|
|
pcall(unpack,t,2,6) true bb cc dd ee ff
|
|
pcall(unpack,t,2,7) true bb cc dd ee ff nil
|
|
pcall(unpack,t,1) true aa bb cc dd ee ff
|
|
pcall(unpack,t,1,5) true aa bb cc dd ee
|
|
pcall(unpack,t,1,6) true aa bb cc dd ee ff
|
|
pcall(unpack,t,1,7) true aa bb cc dd ee ff nil
|
|
pcall(unpack,t,0) true nil aa bb cc dd ee ff
|
|
pcall(unpack,t,0,5) true nil aa bb cc dd ee
|
|
pcall(unpack,t,0,6) true nil aa bb cc dd ee ff
|
|
pcall(unpack,t,0,7) true nil aa bb cc dd ee ff nil
|
|
pcall(unpack,t,-1) true nil nil aa bb cc dd ee ff
|
|
pcall(unpack,t,-1,5) true nil nil aa bb cc dd ee
|
|
pcall(unpack,t,-1,6) true nil nil aa bb cc dd ee ff
|
|
pcall(unpack,t,-1,7) true nil nil aa bb cc dd ee ff nil
|
|
pcall(unpack,t,2,4) true bb cc dd
|
|
pcall(unpack,t,2,5) true bb cc dd ee
|
|
pcall(unpack,t,2,6) true bb cc dd ee ff
|
|
pcall(unpack,t,2,7) true bb cc dd ee ff nil
|
|
pcall(unpack,t,2,8) true bb cc dd ee ff nil nil
|
|
pcall(unpack,t,2,2) true
|
|
pcall(unpack,t,2,1) true
|
|
pcall(unpack,t,2,0) true
|
|
pcall(unpack,t,2,-1) true
|
|
pcall(unpack,t,0) true zz aa bb cc dd ee ff
|
|
pcall(unpack,t,2,0) true
|
|
pcall(unpack,t,2,-1) true
|
|
pcall(unpack,t,"3") true cc dd ee ff
|
|
pcall(unpack,t,"a") false
|
|
pcall(unpack,t,function() end) false
|
|
----- misc table initializer tests -------
|
|
3
|
|
4
|
|
4
|
|
----- basic table operations -------
|
|
------ basic table tests on basic table table
|
|
t[1]=2 true
|
|
t[1] true 2
|
|
t[1]=nil true
|
|
t[1] true nil
|
|
t["a"]="b" true
|
|
t["a"],t.a true b b
|
|
t.a="c" true
|
|
t["a"],t.a true c c
|
|
t.a=nil true
|
|
t["a"],t.a true nil nil
|
|
t[nil]="d" false string
|
|
t[nil] true nil
|
|
t[nil]=nil false string
|
|
t[nil] true nil
|
|
------ basic table tests on function metatable on __index table
|
|
t[1]=2 true
|
|
t[1] true 2
|
|
t[1]=nil true
|
|
metatable call args table 1
|
|
t[1] true dummy
|
|
t["a"]="b" true
|
|
t["a"],t.a true b b
|
|
t.a="c" true
|
|
t["a"],t.a true c c
|
|
t.a=nil true
|
|
metatable call args table a
|
|
metatable call args table a
|
|
t["a"],t.a true dummy dummy
|
|
t[nil]="d" false string
|
|
metatable call args table nil
|
|
t[nil] true dummy
|
|
t[nil]=nil false string
|
|
metatable call args table nil
|
|
t[nil] true dummy
|
|
------ basic table tests on function metatable on __newindex table
|
|
metatable call args table 1 2
|
|
t[1]=2 true
|
|
t[1] true nil
|
|
metatable call args table 1 nil
|
|
t[1]=nil true
|
|
t[1] true nil
|
|
metatable call args table a b
|
|
t["a"]="b" true
|
|
t["a"],t.a true nil nil
|
|
metatable call args table a c
|
|
t.a="c" true
|
|
t["a"],t.a true nil nil
|
|
metatable call args table a nil
|
|
t.a=nil true
|
|
t["a"],t.a true nil nil
|
|
metatable call args table nil d
|
|
t[nil]="d" true nil
|
|
t[nil] true nil
|
|
metatable call args table nil nil
|
|
t[nil]=nil true nil
|
|
t[nil] true nil
|
|
------ basic table tests on plain metatable on __index table
|
|
t[1]=2 true
|
|
t[1] true 2
|
|
t[1]=nil true
|
|
t[1] true nil
|
|
t["a"]="b" true
|
|
t["a"],t.a true b b
|
|
t.a="c" true
|
|
t["a"],t.a true c c
|
|
t.a=nil true
|
|
t["a"],t.a true nil nil
|
|
t[nil]="d" false string
|
|
t[nil] true nil
|
|
t[nil]=nil false string
|
|
t[nil] true nil
|
|
------ basic table tests on plain metatable on __newindex table
|
|
t[1]=2 true
|
|
t[1] true 2
|
|
t[1]=nil true
|
|
t[1] true nil
|
|
t["a"]="b" true
|
|
t["a"],t.a true b b
|
|
t.a="c" true
|
|
t["a"],t.a true c c
|
|
t.a=nil true
|
|
t["a"],t.a true nil nil
|
|
t[nil]="d" false string
|
|
t[nil] true nil
|
|
t[nil]=nil false string
|
|
t[nil] true nil
|
|
-- sort tests
|
|
default (lexical) comparator
|
|
2-4-6-8-1-3-5-7
|
|
1-2-3-4-5-6-7-8
|
|
333-222-111
|
|
111-222-333
|
|
www-xxx-yyy-aaa-bbb-ccc
|
|
aaa-bbb-ccc-www-xxx-yyy
|
|
21-23-25-27-22-24-26-28
|
|
sort failed
|
|
custom (numerical) comparator
|
|
2-4-6-8-1-3-5-7
|
|
1-2-3-4-5-6-7-8
|
|
333-222-111
|
|
111-222-333
|
|
www-xxx-yyy-aaa-bbb-ccc
|
|
sort failed
|
|
21-23-25-27-22-24-26-28
|
|
21-22-23-24-25-26-27-28
|