summaryrefslogtreecommitdiff
path: root/tests/modules/list/test.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2024-04-08 23:06:48 +0800
committerruki <[email protected]>2024-04-08 23:06:48 +0800
commit14f497e354aa9ec61f54e201d4db211da4d2086f (patch)
tree9518e3c939f64bad7bd9e0e67c040642514c9af3 /tests/modules/list/test.lua
parentb1f552fae364bcc48884b9f3f8d1d52a0531e92e (diff)
improve jobpool
Diffstat (limited to 'tests/modules/list/test.lua')
-rw-r--r--tests/modules/list/test.lua42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/modules/list/test.lua b/tests/modules/list/test.lua
index b1679a304..4a4e81fd0 100644
--- a/tests/modules/list/test.lua
+++ b/tests/modules/list/test.lua
@@ -86,6 +86,48 @@ function test_remove_last(t)
end
end
+function test_for_remove(t)
+ local d = list.new()
+ d:push({v = 1})
+ d:push({v = 2})
+ d:push({v = 3})
+ d:push({v = 4})
+ d:push({v = 5})
+ t:are_equal(d:first().v, 1)
+ t:are_equal(d:last().v, 5)
+ local idx = 1
+ local item = d:first()
+ while item ~= nil do
+ local next = d:next(item)
+ t:are_equal(item.v, idx)
+ d:remove(item)
+ item = next
+ idx = idx + 1
+ end
+ t:require(d:empty())
+end
+
+function test_rfor_remove(t)
+ local d = list.new()
+ d:push({v = 1})
+ d:push({v = 2})
+ d:push({v = 3})
+ d:push({v = 4})
+ d:push({v = 5})
+ t:are_equal(d:first().v, 1)
+ t:are_equal(d:last().v, 5)
+ local idx = 5
+ local item = d:last()
+ while item ~= nil do
+ local prev = d:prev(item)
+ t:are_equal(item.v, idx)
+ d:remove(item)
+ item = prev
+ idx = idx - 1
+ end
+ t:require(d:empty())
+end
+
function test_insert_first(t)
local d = list.new()
d:push({v = 2})