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;
|
return max;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LuaDefine(deque_create, "c") {
|
LuaDefine(deque_create, "c") {
|
||||||
LuaRet rdeque;
|
LuaRet rdeque;
|
||||||
LuaStack LS(L, rdeque);
|
LuaVar classobj;
|
||||||
const int imax = 8;
|
LuaStack LS(L, rdeque, classobj);
|
||||||
|
const int imax = 4;
|
||||||
LS.createtable(rdeque, DEQUE_BASE + imax - 1, 0);
|
LS.createtable(rdeque, DEQUE_BASE + imax - 1, 0);
|
||||||
LS.rawseti(rdeque, DEQUE_LEFT, 0);
|
LS.rawseti(rdeque, DEQUE_LEFT, 0);
|
||||||
LS.rawseti(rdeque, DEQUE_FILL, 0);
|
LS.rawseti(rdeque, DEQUE_FILL, 0);
|
||||||
@@ -216,6 +216,8 @@ LuaDefine(deque_create, "c") {
|
|||||||
for (int i = 0; i < imax; i++) {
|
for (int i = 0; i < imax; i++) {
|
||||||
LS.rawseti(rdeque, DEQUE_BASE + i, 0);
|
LS.rawseti(rdeque, DEQUE_BASE + i, 0);
|
||||||
}
|
}
|
||||||
|
LS.makeclass(classobj, "deque");
|
||||||
|
LS.setmetatable(rdeque, classobj);
|
||||||
return LS.result();
|
return LS.result();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,25 +56,36 @@ function unittests.tables()
|
|||||||
assert(table.equal(t, {3,4,3,4}))
|
assert(table.equal(t, {3,4,3,4}))
|
||||||
end
|
end
|
||||||
|
|
||||||
-- function unittests.queues()
|
function unittests.deque()
|
||||||
-- local q = queue.create()
|
local d = deque.create()
|
||||||
-- assert(queue.size(q) == 0)
|
for i=1,7 do
|
||||||
-- queue.push(q, 27)
|
for j=1,i do
|
||||||
-- assert(queue.size(q) == 1)
|
d:pushr(j)
|
||||||
-- queue.push(q, 45)
|
end
|
||||||
-- assert(queue.nth(q, 1) == 27)
|
for j=1,i do
|
||||||
-- assert(queue.nth(q, 2) == 45)
|
assert(d:nthl(j) == j)
|
||||||
-- assert(queue.size(q) == 2)
|
end
|
||||||
-- assert(queue.pop(q) == 27)
|
for j=1,i do
|
||||||
-- assert(queue.size(q) == 1)
|
assert(d:popl() == j)
|
||||||
-- assert(queue.pop(q) == 45)
|
end
|
||||||
-- assert(queue.size(q) == 0)
|
end
|
||||||
-- assert(queue.pop(q) == nil)
|
for i=1,7 do
|
||||||
-- assert(queue.size(q) == 0)
|
for j=1,i do
|
||||||
-- for i=1,50 do
|
d:pushl(j)
|
||||||
-- queue.push(q,i)
|
end
|
||||||
-- end
|
for j=1,i do
|
||||||
-- for i=1,50 do
|
assert(d:nthr(j) == j)
|
||||||
-- assert(queue.pop(q)==i)
|
end
|
||||||
-- end
|
for j=1,i do
|
||||||
-- end
|
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