aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Roman <george.roman.99@gmail.com>2018-07-24 10:36:56 +0300
committerHisham Muhammad <hisham@gobolinux.org>2018-07-24 15:37:54 -0300
commit64148b57c1ca70675022ebb7025a116a292802a9 (patch)
treeecfa73366873ba926da0efaa6e1103f3c886f8ee
parentfa0925e382335d01f50ea26130aedc692483b8cf (diff)
downloadluarocks-64148b57c1ca70675022ebb7025a116a292802a9.tar.gz
luarocks-64148b57c1ca70675022ebb7025a116a292802a9.tar.bz2
luarocks-64148b57c1ca70675022ebb7025a116a292802a9.zip
Tests: add more unit tests for fun.lua
-rw-r--r--spec/fun_spec.lua57
1 files changed, 57 insertions, 0 deletions
diff --git a/spec/fun_spec.lua b/spec/fun_spec.lua
index fe945921..064440e0 100644
--- a/spec/fun_spec.lua
+++ b/spec/fun_spec.lua
@@ -70,4 +70,61 @@ describe("LuaRocks fun tests #unit", function()
70 assert.same(fun.traverse(t, addOne), {2, 3, {}, {2, {}, 3}}) 70 assert.same(fun.traverse(t, addOne), {2, 3, {}, {2, {}, 3}})
71 end) 71 end)
72 end) 72 end)
73
74 describe("fun.filter", function()
75 it("filters the elements in the given table and returns the result in a new table", function()
76 local t
77
78 t = {1, 2, "a", "b", 3}
79 assert.same(fun.filter(t, function(x) return type(x) == "number" end), {1, 2, 3})
80 t = {2, 4, 7, 8}
81 assert.same(fun.filter(t, function(x) return x % 2 == 0 end), {2, 4, 8})
82 end)
83 end)
84
85 describe("fun.reverse_in", function()
86 it("reverses the elements in the given table and returns the result in a new table", function()
87 local t
88
89 t = {1, 2, 3, 4}
90 assert.same(fun.reverse_in(t), {4, 3, 2, 1})
91 t = {"a", "b", "c"}
92 assert.same(fun.reverse_in(t), {"c", "b", "a"})
93 end)
94 end)
95
96 describe("fun.sort_in", function()
97 it("sorts the elements in the given table and returns the result in a new table", function()
98 local t
99
100 t = {4, 2, 3, 1}
101 assert.same(fun.sort_in(t), {1, 2, 3, 4})
102 t = {"d", "a", "c", "b"}
103 assert.same(fun.sort_in(t), {"a", "b", "c", "d"})
104 end)
105 end)
106
107 describe("fun.flip", function()
108 it("returns a function behaving as the one given in the argument but with the arguments interchanged", function()
109 local a, b = fun.flip(function(a, b) return a, b end)(5, 6)
110 assert.same(a, 6)
111 assert.same(b, 5)
112 end)
113 end)
114
115 describe("fun.partial", function()
116 it("partially applies the given arguments to the given function and returns it", function()
117 local addOne = fun.partial(function(x, y) return x + y end, 1)
118 assert.same(addOne(1), 2)
119 assert.same(addOne(2), 3)
120
121 local addTwo = fun.partial(function(x, y, z) return x + y + z end, 1, 1)
122 assert.same(addTwo(1), 3)
123 assert.same(addTwo(2), 4)
124
125 local addThree = fun.partial(function(x, y, z, t, u) return x + y + z + t + u end, 1, 1, 1)
126 assert.same(addThree(1, 1), 5)
127 assert.same(addThree(1, 2), 6)
128 end)
129 end)
73end) 130end)