From 01a4c50eaef149fce7d3b8965d6b1781490f9f57 Mon Sep 17 00:00:00 2001 From: Benrob0329 Date: Sat, 1 Feb 2020 19:48:48 -0500 Subject: [PATCH] Move mods/util/overrides/table.lua tests to mods/util/tests.lua --- mods/util/init.lua | 2 ++ mods/util/overrides/table.lua | 31 ------------------------------- mods/util/tests.lua | 34 ++++++++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+), 31 deletions(-) create mode 100644 mods/util/tests.lua diff --git a/mods/util/init.lua b/mods/util/init.lua index ddbb6dc..84753a3 100644 --- a/mods/util/init.lua +++ b/mods/util/init.lua @@ -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} diff --git a/mods/util/overrides/table.lua b/mods/util/overrides/table.lua index 24761d1..344b2d0 100644 --- a/mods/util/overrides/table.lua +++ b/mods/util/overrides/table.lua @@ -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) diff --git a/mods/util/tests.lua b/mods/util/tests.lua new file mode 100644 index 0000000..85e1e39 --- /dev/null +++ b/mods/util/tests.lua @@ -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)