Added lume.remove() and tests

This commit is contained in:
rxi 2015-02-07 22:48:58 +00:00
parent 3bec7b356d
commit 14b9ee0ca2
2 changed files with 29 additions and 0 deletions

View File

@ -158,6 +158,23 @@ function lume.push(t, ...)
end end
function lume.remove(t, x)
local iter = getiter(t)
for i, v in iter(t) do
if v == x then
if isarray(t) then
table.remove(t, i)
break
else
t[i] = nil
break
end
end
end
return x
end
function lume.shuffle(t) function lume.shuffle(t)
local rtn = {} local rtn = {}
for i = 1, #t do for i = 1, #t do

View File

@ -117,6 +117,18 @@ tests["lume.push"] = function()
testeq(t, { 1, 2, 3, 4, 5, 6, 7 }) testeq(t, { 1, 2, 3, 4, 5, 6, 7 })
end end
-- lume.remove
tests["lume.remove"] = function()
local t = { 1, 2, 3, 4, 5 }
lume.remove(t, 3)
testeq(t, { 1, 2, 4, 5 })
lume.remove(t, 1)
testeq(t, { 2, 4, 5 })
lume.remove(t, 5)
testeq(t, { 2, 4 })
local m = { a = 1, b = 2, c = 3 }
end
-- lume.shuffle -- lume.shuffle
tests["lume.shuffle"] = function() tests["lume.shuffle"] = function()
local t = {1, 2, 3, 4, 5} local t = {1, 2, 3, 4, 5}