Deques now have metatables, fixed deque unit tests
This commit is contained in:
@@ -204,11 +204,11 @@ int deque_make_room(lua_State *L, int deque, int left, int fill, int max) {
|
||||
return max;
|
||||
}
|
||||
|
||||
|
||||
LuaDefine(deque_create, "c") {
|
||||
LuaRet rdeque;
|
||||
LuaStack LS(L, rdeque);
|
||||
const int imax = 8;
|
||||
LuaVar classobj;
|
||||
LuaStack LS(L, rdeque, classobj);
|
||||
const int imax = 4;
|
||||
LS.createtable(rdeque, DEQUE_BASE + imax - 1, 0);
|
||||
LS.rawseti(rdeque, DEQUE_LEFT, 0);
|
||||
LS.rawseti(rdeque, DEQUE_FILL, 0);
|
||||
@@ -216,6 +216,8 @@ LuaDefine(deque_create, "c") {
|
||||
for (int i = 0; i < imax; i++) {
|
||||
LS.rawseti(rdeque, DEQUE_BASE + i, 0);
|
||||
}
|
||||
LS.makeclass(classobj, "deque");
|
||||
LS.setmetatable(rdeque, classobj);
|
||||
return LS.result();
|
||||
}
|
||||
|
||||
|
||||
@@ -56,25 +56,36 @@ function unittests.tables()
|
||||
assert(table.equal(t, {3,4,3,4}))
|
||||
end
|
||||
|
||||
-- function unittests.queues()
|
||||
-- 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)
|
||||
-- for i=1,50 do
|
||||
-- queue.push(q,i)
|
||||
-- end
|
||||
-- for i=1,50 do
|
||||
-- assert(queue.pop(q)==i)
|
||||
-- end
|
||||
-- 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
|
||||
|
||||
Reference in New Issue
Block a user