summaryrefslogtreecommitdiff
path: root/Data/DefaultContent/Libraries/luafun/tests/basic.lua
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-15 11:54:17 +0800
committerchai <chaifix@163.com>2021-11-15 11:54:17 +0800
commit30f2f46474bf4eda5f10d4c64a07cde01d469f66 (patch)
tree6ff2ed3262037b3c9bae2d2b9059a1d65773f31c /Data/DefaultContent/Libraries/luafun/tests/basic.lua
parent4c36bed53fe63ae6056730b3ecad2573f03d88f8 (diff)
*rename DefaultContent -> BuiltIn
Diffstat (limited to 'Data/DefaultContent/Libraries/luafun/tests/basic.lua')
-rw-r--r--Data/DefaultContent/Libraries/luafun/tests/basic.lua332
1 files changed, 0 insertions, 332 deletions
diff --git a/Data/DefaultContent/Libraries/luafun/tests/basic.lua b/Data/DefaultContent/Libraries/luafun/tests/basic.lua
deleted file mode 100644
index 97e7aae..0000000
--- a/Data/DefaultContent/Libraries/luafun/tests/basic.lua
+++ /dev/null
@@ -1,332 +0,0 @@
---------------------------------------------------------------------------------
--- iter
---------------------------------------------------------------------------------
-
---
--- Arrays
---
-
-for _it, a in iter({1, 2, 3}) do print(a) end
---[[test
-1
-2
-3
---test]]
-
-for _it, a in iter(iter(iter({1, 2, 3}))) do print(a) end
---[[test
-1
-2
-3
---test]]
-
-for _it, a in wrap(wrap(iter({1, 2, 3}))) do print(a) end
---[[test
-1
-2
-3
---test]]
-
-for _it, a in wrap(wrap(ipairs({1, 2, 3}))) do print(a) end
---[[test
-1
-2
-3
---test]]
-
-for _it, a in iter({}) do print(a) end
---[[test
---test]]
-
-for _it, a in iter(iter(iter({}))) do print(a) end
---[[test
---test]]
-
-for _it, a in wrap(wrap(iter({}))) do print(a) end
---[[test
---test]]
-
-for _it, a in wrap(wrap(ipairs({}))) do print(a) end
---[[test
---test]]
-
--- Check that ``iter`` for arrays is equivalent to ``ipairs``
-local t = {1, 2, 3}
-gen1, param1, state1 = iter(t):unwrap()
-gen2, param2, state2 = ipairs(t)
-print(gen1 == gen2, param1 == param2, state1 == state2)
---[[test
-true true true
---test]]
-
--- Test that ``wrap`` do nothing for wrapped iterators
-gen1, param1, state1 = iter({1, 2, 3})
-gen2, param2, state2 = wrap(gen1, param1, state1):unwrap()
-print(gen1 == gen2, param1 == param2, state1 == state2)
---[[test
-true true true
---test]]
-
---
--- Maps
---
-
-local t = {}
-for _it, k, v in iter({ a = 1, b = 2, c = 3}) do t[#t + 1] = k end
-table.sort(t)
-for _it, v in iter(t) do print(v) end
---[[test
-a
-b
-c
---test]]
-
-local t = {}
-for _it, k, v in iter(iter(iter({ a = 1, b = 2, c = 3}))) do t[#t + 1] = k end
-table.sort(t)
-for _it, v in iter(t) do print(v) end
---[[test
-a
-b
-c
---test]]
-
-for _it, k, v in iter({}) do print(k, v) end
---[[test
---test]]
-
-for _it, k, v in iter(iter(iter({}))) do print(k, v) end
---[[test
---test]]
-
---
--- String
---
-
-for _it, a in iter("abcde") do print(a) end
---[[test
-a
-b
-c
-d
-e
---test]]
-
-for _it, a in iter(iter(iter("abcde"))) do print(a) end
---[[test
-a
-b
-c
-d
-e
---test]]
-
-for _it, a in iter("") do print(a) end
---[[test
---test]]
-
-for _it, a in iter(iter(iter(""))) do print(a) end
---[[test
---test]]
-
---
--- Custom generators
---
-
-local function mypairs_gen(max, state)
- if (state >= max) then
- return nil
- end
- return state + 1, state + 1
-end
-
-local function mypairs(max)
- return mypairs_gen, max, 0
-end
-
-for _it, a in iter(mypairs(10)) do print(a) end
---[[test
-1
-2
-3
-4
-5
-6
-7
-8
-9
-10
---test]]
-
---
--- Invalid values
---
-
-for _it, a in iter(1) do print(a) end
---[[test
-error: object 1 of type "number" is not iterable
---test]]
-
-for _it, a in iter(1, 2, 3, 4, 5, 6, 7) do print(a) end
---[[test
-error: object 1 of type "number" is not iterable
---test]]
-
---------------------------------------------------------------------------------
--- each
---------------------------------------------------------------------------------
-
-each(print, {1, 2, 3})
---[[test
-1
-2
-3
---test]]
-
-each(print, iter({1, 2, 3}))
---[[test
-1
-2
-3
---test]]
-
-each(print, {})
---[[test
---test]]
-
-
-each(print, iter({}))
---[[test
---test]]
-
-local keys, vals = {}, {}
-each(function(k, v)
- keys[#keys + 1] = k
- vals[#vals + 1] = v
-end, { a = 1, b = 2, c = 3})
-table.sort(keys)
-table.sort(vals)
-each(print, keys)
-each(print, vals)
---[[test
-a
-b
-c
-1
-2
-3
---test]]
-
-each(print, "abc")
---[[test
-a
-b
-c
---test]]
-
-each(print, iter("abc"))
---[[test
-a
-b
-c
---test]]
-
-print(for_each == each) -- an alias
---[[test
-true
---test]]
-
-print(foreach == each) -- an alias
---[[test
-true
---test]]
-
---------------------------------------------------------------------------------
--- totable
---------------------------------------------------------------------------------
-
-local tab = totable(range(5))
-print(type(tab), #tab)
-each(print, tab)
---[[test
-table 5
-1
-2
-3
-4
-5
---test]]
-
-local tab = totable(range(0))
-print(type(tab), #tab)
---[[test
-table 0
---test]]
-
-local tab = totable("abcdef")
-print(type(tab), #tab)
-each(print, tab)
---[[test
-table 6
-a
-b
-c
-d
-e
-f
---test]]
-
-local unpack = rawget(table, "unpack") or unpack
-local tab = totable({ 'a', {'b', 'c'}, {'d', 'e', 'f'}})
-print(type(tab), #tab)
-each(print, tab[1])
-each(print, map(unpack, drop(1, tab)))
---[[test
-table 3
-a
-b c
-d e f
---test]]
-
---------------------------------------------------------------------------------
--- tomap
---------------------------------------------------------------------------------
-
-local tab = tomap(zip(range(1, 7), 'abcdef'))
-print(type(tab), #tab)
-each(print, iter(tab))
---[[test
-table 6
-a
-b
-c
-d
-e
-f
---test]]
-
-local tab = tomap({a = 1, b = 2, c = 3})
-print(type(tab), #tab)
-local t = {}
-for _it, k, v in iter(tab) do t[v] = k end
-table.sort(t)
-for k, v in ipairs(t) do print(k, v) end
---[[test
-table 0
-1 a
-2 b
-3 c
---test]]
-
-local tab = tomap(enumerate("abcdef"))
-print(type(tab), #tab)
-each(print, tab)
---[[test
-table 6
-a
-b
-c
-d
-e
-f
---test]]