summaryrefslogtreecommitdiff
path: root/tests/modules/list/test.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2024-04-07 23:13:30 +0800
committerruki <[email protected]>2024-04-07 23:13:30 +0800
commit2a99fd133daea2808253ff1d8545d53c700709af (patch)
tree3aa36a4088a193f90d176efbc1c3d09ef8606c69 /tests/modules/list/test.lua
parent62194c3e5dff8141813f9f63993516de98dd367f (diff)
rename dlist to list
Diffstat (limited to 'tests/modules/list/test.lua')
-rw-r--r--tests/modules/list/test.lua120
1 files changed, 120 insertions, 0 deletions
diff --git a/tests/modules/list/test.lua b/tests/modules/list/test.lua
new file mode 100644
index 000000000..b1679a304
--- /dev/null
+++ b/tests/modules/list/test.lua
@@ -0,0 +1,120 @@
+import("core.base.list")
+
+function test_push(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
+ for item in d:items() do
+ t:are_equal(item.v, idx)
+ idx = idx + 1
+ end
+end
+
+function test_insert(t)
+ local d = list.new()
+ local v3 = {v = 3}
+ d:insert({v = 1})
+ d:insert({v = 2})
+ d:insert(v3)
+ d:insert({v = 5})
+ d:insert({v = 4}, v3)
+ t:are_equal(d:first().v, 1)
+ t:are_equal(d:last().v, 5)
+ local idx = 1
+ for item in d:items() do
+ t:are_equal(item.v, idx)
+ idx = idx + 1
+ end
+end
+
+function test_remove(t)
+ local d = list.new()
+ local v3 = {v = 3}
+ d:insert({v = 1})
+ d:insert({v = 2})
+ d:insert(v3)
+ d:insert({v = 3})
+ d:insert({v = 4})
+ d:insert({v = 5})
+ d:remove(v3)
+ t:are_equal(d:first().v, 1)
+ t:are_equal(d:last().v, 5)
+ local idx = 1
+ for item in d:items() do
+ t:are_equal(item.v, idx)
+ idx = idx + 1
+ end
+end
+
+function test_remove_first(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})
+ d:remove_first()
+ t:are_equal(d:first().v, 2)
+ t:are_equal(d:last().v, 5)
+ local idx = 2
+ for item in d:items() do
+ t:are_equal(item.v, idx)
+ idx = idx + 1
+ end
+end
+
+function test_remove_last(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})
+ d:remove_last()
+ t:are_equal(d:first().v, 1)
+ t:are_equal(d:last().v, 4)
+ local idx = 1
+ for item in d:items() do
+ t:are_equal(item.v, idx)
+ idx = idx + 1
+ end
+end
+
+function test_insert_first(t)
+ local d = list.new()
+ d:push({v = 2})
+ d:push({v = 3})
+ d:push({v = 4})
+ d:push({v = 5})
+ d:insert_first({v = 1})
+ t:are_equal(d:first().v, 1)
+ t:are_equal(d:last().v, 5)
+ local idx = 1
+ for item in d:items() do
+ t:are_equal(item.v, idx)
+ idx = idx + 1
+ end
+end
+
+function test_insert_last(t)
+ local d = list.new()
+ d:push({v = 1})
+ d:push({v = 2})
+ d:push({v = 3})
+ d:push({v = 4})
+ d:insert_last({v = 5})
+ t:are_equal(d:first().v, 1)
+ t:are_equal(d:last().v, 5)
+ local idx = 1
+ for item in d:items() do
+ t:are_equal(item.v, idx)
+ idx = idx + 1
+ end
+end
+