diff options
| author | ruki <[email protected]> | 2024-04-08 23:06:48 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2024-04-08 23:06:48 +0800 |
| commit | 14f497e354aa9ec61f54e201d4db211da4d2086f (patch) | |
| tree | 9518e3c939f64bad7bd9e0e67c040642514c9af3 /tests/modules/list/test.lua | |
| parent | b1f552fae364bcc48884b9f3f8d1d52a0531e92e (diff) | |
improve jobpool
Diffstat (limited to 'tests/modules/list/test.lua')
| -rw-r--r-- | tests/modules/list/test.lua | 42 |
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}) |
