86 lines
2.0 KiB
Lua
86 lines
2.0 KiB
Lua
|
|
makeclass("unittests")
|
|
|
|
|
|
function unittests.tables()
|
|
-- check table.count
|
|
assert(table.count({}) == 0)
|
|
assert(table.count({a=1,b=2}) == 2)
|
|
assert(table.count({[2]=5,[5]=3}) == 2)
|
|
|
|
-- check table.clear
|
|
local t = { a = 1, b = 2 }
|
|
table.clear(t, true)
|
|
assert(t.a == nil)
|
|
assert(t.b == nil)
|
|
assert(table.count(t) == 0)
|
|
|
|
-- check table.empty
|
|
assert(table.empty({}) == true)
|
|
assert(table.empty({1}) == false)
|
|
assert(table.empty({a=1}) == false)
|
|
|
|
-- check table.equal
|
|
assert(table.equal({},{}))
|
|
assert(not table.equal({}, {1}))
|
|
assert(not table.equal({1}, {}))
|
|
assert(table.equal({1,2,3}, {1,2,3}))
|
|
assert(not table.equal({1,2,3}, {1,5,3}))
|
|
assert(not table.equal({1,2}, {1,2,3}))
|
|
assert(not table.equal({1,2,3}, {1,2}))
|
|
assert(table.equal({a=1,b=2},{a=1,b=2}))
|
|
assert(not table.equal({a=1,b=3},{a=1,b=2}))
|
|
|
|
-- check table.push
|
|
t = {}
|
|
table.push(t, 1)
|
|
assert(table.equal(t, {1}))
|
|
table.push(t, 2)
|
|
assert(table.equal(t, {1,2}))
|
|
table.push(t, 3)
|
|
assert(table.equal(t, {1,2,3}))
|
|
|
|
-- check table.findremove
|
|
t = {1,2,3,4,5,1,2,3,4,5}
|
|
table.findremove(t, 2)
|
|
assert(table.equal(t, {1,3,4,5,1,3,4,5}))
|
|
table.findremove(t, 5)
|
|
assert(table.equal(t, {1,3,4,1,3,4}))
|
|
table.findremove(t, 1)
|
|
assert(table.equal(t, {3,4,3,4}))
|
|
end
|
|
|
|
function unittests.deque()
|
|
local d = deque.create()
|
|
for i=1,7 do
|
|
for j=1,i do
|
|
d:pushr(j)
|
|
end
|
|
for j=1,i do
|
|
assert(d:nthl(j) == j)
|
|
end
|
|
for j=1,i do
|
|
assert(d:popl() == j)
|
|
end
|
|
end
|
|
for i=1,7 do
|
|
for j=1,i do
|
|
d:pushl(j)
|
|
end
|
|
for j=1,i do
|
|
assert(d:nthr(j) == j)
|
|
end
|
|
for j=1,i do
|
|
assert(d:popr() == j)
|
|
end
|
|
end
|
|
for i=1,7 do
|
|
for j=1,i do
|
|
d:pushr(j)
|
|
end
|
|
for j=1,i do
|
|
assert(d:popr() == i+1-j)
|
|
end
|
|
end
|
|
end
|