Reimplement queues as circular buffers

This commit is contained in:
2021-07-09 18:07:06 -04:00
parent 311575eb30
commit 16c0fd45de
5 changed files with 106 additions and 63 deletions

View File

@@ -58,26 +58,23 @@ end
function unittests.queues()
local q = queue.create()
assert(q.head == 1000000)
assert(q.tail == 1000000)
assert(queue.size(q) == 0)
assert(table.count(q) == 2)
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(table.count(q) == 4)
assert(queue.pop(q) == 27)
assert(queue.size(q) == 1)
assert(table.count(q) == 3)
assert(queue.pop(q) == 45)
assert(queue.size(q) == 0)
assert(table.count(q) == 2)
assert(queue.pop(q) == nil)
assert(table.count(q) == 2)
assert(q.head == 1000002)
assert(q.tail == 1000002)
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