Move mods/util/overrides/table.lua tests to mods/util/tests.lua
parent
6e44b93cd1
commit
01a4c50eae
|
@ -6,6 +6,8 @@ dofile(modpath .. "/overrides/string.lua")
|
||||||
dofile(modpath .. "/overrides/vector.lua")
|
dofile(modpath .. "/overrides/vector.lua")
|
||||||
dofile(modpath .. "/schematic.lua")
|
dofile(modpath .. "/schematic.lua")
|
||||||
|
|
||||||
|
dofile(modpath .. "/tests.lua")
|
||||||
|
|
||||||
function util.node_or_ignore(node)
|
function util.node_or_ignore(node)
|
||||||
if type(node) == "string" then
|
if type(node) == "string" then
|
||||||
return {name = node}
|
return {name = node}
|
||||||
|
|
|
@ -1,10 +1,3 @@
|
||||||
local t2s = minetest.serialize
|
|
||||||
local error_message = [[
|
|
||||||
Function %s does not pass self-test!
|
|
||||||
Expected results: %s
|
|
||||||
Test Results: %s
|
|
||||||
]]
|
|
||||||
|
|
||||||
local function half_equals(t1, t2)
|
local function half_equals(t1, t2)
|
||||||
for k, v in pairs(t1) do
|
for k, v in pairs(t1) do
|
||||||
if not t2[k] then
|
if not t2[k] then
|
||||||
|
@ -24,9 +17,6 @@ function table.equals(t1, t2)
|
||||||
return half_equals(t1, t2) and half_equals(t2, t1)
|
return half_equals(t1, t2) and half_equals(t2, t1)
|
||||||
end
|
end
|
||||||
|
|
||||||
assert(table.equals({"a", "b", c = "d", e = {"f", "g", "h", {"h"}}}, {"a", "b", c = "d", e = {"f", "g", "h", {"h"}}}))
|
|
||||||
assert(not table.equals({a = 1}, {a = 2}))
|
|
||||||
|
|
||||||
function table.shuffle(t)
|
function table.shuffle(t)
|
||||||
for i = #t, 2, -1 do
|
for i = #t, 2, -1 do
|
||||||
local j = math.random(i)
|
local j = math.random(i)
|
||||||
|
@ -72,12 +62,6 @@ function table.match(t1, t2)
|
||||||
return results
|
return results
|
||||||
end
|
end
|
||||||
|
|
||||||
local match_test_table = {"foo", "bar", bar = {1, 2, 3}, baz = "boo", foo = {"baz"}}
|
|
||||||
local match_expected_results = {"foo", bar = {1, 3}, baz = "boo"}
|
|
||||||
local match_test_results = table.match(match_test_table, {"foo", bar = {1, 3}, baz = "boo", "furb", foo = {"bar"}})
|
|
||||||
local match_error_message = error_message:format("table.match", t2s(match_expected_results), t2s(match_test_results))
|
|
||||||
assert(table.equals(match_expected_results, match_test_results), match_error_message)
|
|
||||||
|
|
||||||
-- Returns a sub-set of an indexed table which matches the given parameters
|
-- Returns a sub-set of an indexed table which matches the given parameters
|
||||||
function table.search(t, params)
|
function table.search(t, params)
|
||||||
params = params or {}
|
params = params or {}
|
||||||
|
@ -96,18 +80,3 @@ function table.search(t, params)
|
||||||
|
|
||||||
return results
|
return results
|
||||||
end
|
end
|
||||||
|
|
||||||
local search_test_table = {
|
|
||||||
{tags = {"a", "b", "c"}, num = 1, num2 = 3},
|
|
||||||
{tags = {"b", "c"}, num = 1, num2 = 4},
|
|
||||||
{tags = {"b"}, num = 2, num2 = 3},
|
|
||||||
{tags = {"b"}, num = 1, num2 = 3},
|
|
||||||
{tags = {"a", "b"}, num = 1, num2 = 3},
|
|
||||||
}
|
|
||||||
|
|
||||||
local search_expected_results = {search_test_table[4]}
|
|
||||||
local search_test_results = table.search(search_test_table,
|
|
||||||
{includes = {tags = {"b"}, num = 1}, excludes = {tags = {"a"}, num2 = 4}})
|
|
||||||
local search_error_message =
|
|
||||||
error_message:format("table.search", t2s(search_expected_results), t2s(search_test_results))
|
|
||||||
assert(table.equals(search_test_results, search_expected_results), search_error_message)
|
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
local t2s = minetest.serialize
|
||||||
|
local error_message = [[
|
||||||
|
Function %s does not pass self-test!
|
||||||
|
Expected results: %s
|
||||||
|
Test Results: %s
|
||||||
|
]]
|
||||||
|
|
||||||
|
-- table.equals
|
||||||
|
local equals_test_table = {"a", "b", c = "d", e = {"f", "g", "h", {"h"}}}, {"a", "b", c = "d", e = {"f", "g", "h", {"h"}}}
|
||||||
|
assert(table.equals(equals_test_table, equals_test_table))
|
||||||
|
assert(not table.equals({a = 1}, {a = 2}))
|
||||||
|
|
||||||
|
-- table.match
|
||||||
|
local match_test_table = {"foo", "bar", bar = {1, 2, 3}, baz = "boo", foo = {"baz"}}
|
||||||
|
local match_expected_results = {"foo", bar = {1, 3}, baz = "boo"}
|
||||||
|
local match_test_results = table.match(match_test_table, {"foo", bar = {1, 3}, baz = "boo", "furb", foo = {"bar"}})
|
||||||
|
local match_error_message = error_message:format("table.match", t2s(match_expected_results), t2s(match_test_results))
|
||||||
|
assert(table.equals(match_expected_results, match_test_results), match_error_message)
|
||||||
|
|
||||||
|
-- table.search
|
||||||
|
local search_test_table = {
|
||||||
|
{tags = {"a", "b", "c"}, num = 1, num2 = 3},
|
||||||
|
{tags = {"b", "c"}, num = 1, num2 = 4},
|
||||||
|
{tags = {"b"}, num = 2, num2 = 3},
|
||||||
|
{tags = {"b"}, num = 1, num2 = 3},
|
||||||
|
{tags = {"a", "b"}, num = 1, num2 = 3},
|
||||||
|
}
|
||||||
|
|
||||||
|
local search_expected_results = {search_test_table[4]}
|
||||||
|
local search_test_results = table.search(search_test_table,
|
||||||
|
{includes = {tags = {"b"}, num = 1}, excludes = {tags = {"a"}, num2 = 4}})
|
||||||
|
local search_error_message =
|
||||||
|
error_message:format("table.search", t2s(search_expected_results), t2s(search_test_results))
|
||||||
|
assert(table.equals(search_test_results, search_expected_results), search_error_message)
|
Loading…
Reference in New Issue