Files
integration/luprex/core/lua/ut-table.lua

81 lines
2.0 KiB
Lua
Raw Normal View History

2021-01-02 13:31:18 -05:00
2021-01-12 15:49:05 -05:00
makeclass("unittests")
2021-01-02 13:31:18 -05:00
2021-07-09 13:52:03 -04:00
function cmt()
for i=1,100000 do
local t = {1,2,3,4,5,a=1,b=2,c=3,d=4,e=5}
table.clear(t)
end
end
2021-01-12 15:49:05 -05:00
function unittests.tables()
-- check table.count
2021-01-02 13:31:18 -05:00
assert(table.count({}) == 0)
assert(table.count({a=1,b=2}) == 2)
assert(table.count({[2]=5,[5]=3}) == 2)
2021-01-12 15:49:05 -05:00
-- check table.clear
2021-01-02 13:31:18 -05:00
local t = { a = 1, b = 2 }
table.clear(t)
assert(t.a == nil)
assert(t.b == nil)
assert(table.count(t) == 0)
2021-01-12 15:49:05 -05:00
-- check table.empty
2021-01-02 13:31:18 -05:00
assert(table.empty({}) == true)
assert(table.empty({1}) == false)
assert(table.empty({a=1}) == false)
2021-01-12 15:49:05 -05:00
-- check table.equal
2021-01-02 13:31:18 -05:00
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}))
2021-01-12 15:49:05 -05:00
-- check table.push
2021-01-02 13:31:18 -05:00
t = {}
2021-01-12 14:14:38 -05:00
table.push(t, 1)
2021-01-02 13:31:18 -05:00
assert(table.equal(t, {1}))
2021-01-12 14:14:38 -05:00
table.push(t, 2)
2021-01-02 13:31:18 -05:00
assert(table.equal(t, {1,2}))
2021-01-12 14:14:38 -05:00
table.push(t, 3)
2021-01-02 13:31:18 -05:00
assert(table.equal(t, {1,2,3}))
2021-01-12 15:49:05 -05:00
-- check table.findremove
2021-01-02 13:31:18 -05:00
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
2021-01-12 15:49:05 -05:00
function unittests.queues()
2021-01-02 13:31:18 -05:00
local q = queue.create()
assert(queue.size(q) == 0)
queue.push(q, 27)
assert(queue.size(q) == 1)
queue.push(q, 45)
assert(queue.nth(q, 1) == 27)
assert(queue.nth(q, 2) == 45)
assert(queue.size(q) == 2)
assert(queue.pop(q) == 27)
assert(queue.size(q) == 1)
assert(queue.pop(q) == 45)
assert(queue.size(q) == 0)
assert(queue.pop(q) == nil)
assert(queue.size(q) == 0)
2021-07-09 18:07:06 -04:00
for i=1,50 do
queue.push(q,i)
end
for i=1,50 do
assert(queue.pop(q)==i)
end
2021-01-02 13:31:18 -05:00
end