Move mods/util/overrides/table.lua tests to mods/util/tests.lua

master
Benrob0329 2020-02-01 19:48:48 -05:00
parent 6e44b93cd1
commit 01a4c50eae
3 changed files with 36 additions and 31 deletions

View File

@ -6,6 +6,8 @@ dofile(modpath .. "/overrides/string.lua")
dofile(modpath .. "/overrides/vector.lua")
dofile(modpath .. "/schematic.lua")
dofile(modpath .. "/tests.lua")
function util.node_or_ignore(node)
if type(node) == "string" then
return {name = node}

View File

@ -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)
for k, v in pairs(t1) do
if not t2[k] then
@ -24,9 +17,6 @@ function table.equals(t1, t2)
return half_equals(t1, t2) and half_equals(t2, t1)
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)
for i = #t, 2, -1 do
local j = math.random(i)
@ -72,12 +62,6 @@ function table.match(t1, t2)
return results
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
function table.search(t, params)
params = params or {}
@ -96,18 +80,3 @@ function table.search(t, params)
return results
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)

34
mods/util/tests.lua Normal file
View File

@ -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)