diff --git a/integration_tests/format_test.ucg b/integration_tests/format_test.ucg index 0e367a0..56c7c45 100644 --- a/integration_tests/format_test.ucg +++ b/integration_tests/format_test.ucg @@ -1,4 +1,4 @@ -let t = import "std/testing.ucg".asserts{}; +let t = import "std/testing.ucg"; assert t.equal{ left = "hello @" % ("world"), diff --git a/integration_tests/include_test.ucg b/integration_tests/include_test.ucg index 2028bde..e9c67fb 100644 --- a/integration_tests/include_test.ucg +++ b/integration_tests/include_test.ucg @@ -1,4 +1,4 @@ -let t = import "std/testing.ucg".asserts{}; +let t = import "std/testing.ucg"; let script = include str "./include_example.sh"; assert { diff --git a/integration_tests/modules_test.ucg b/integration_tests/modules_test.ucg index 4d40024..b267d82 100644 --- a/integration_tests/modules_test.ucg +++ b/integration_tests/modules_test.ucg @@ -1,4 +1,4 @@ -let t = import "std/testing.ucg".asserts{}; +let t = import "std/testing.ucg"; let test_empty_mod = module { } => { diff --git a/integration_tests/types_test.ucg b/integration_tests/types_test.ucg index fc7bbb1..2423f78 100644 --- a/integration_tests/types_test.ucg +++ b/integration_tests/types_test.ucg @@ -1,4 +1,4 @@ -let t = import "std/testing.ucg".asserts{}; +let t = import "std/testing.ucg"; assert t.ok{ test = "foo" is "str", diff --git a/std/testing.ucg b/std/testing.ucg index 32d9000..d4e6a25 100644 --- a/std/testing.ucg +++ b/std/testing.ucg @@ -1,68 +1,60 @@ -// A module with helper test assertions for ucg tests. -// Each contained module will output a struct with -// ok and desc fields. -// -// ok will be a boolean. -// desc will be a descriptive message. -let asserts = module{ - // allows you to specify a a prefix for messages. - // specify the prefix to add when the condition is not true. - // A default description to use for messages. - default_description = "TODO description", - } => { - - // Test that a value is true. - let ok = module{ - // test value expected to be true for success. - test=false, - // descriptive message to use in output. - desc=mod.default_description, - } => { - let ok = mod.test; +let todo_desc = "TODO description"; - let desc = "@" % (mod.desc); +// Test that a value is true. +let ok = module{ + // test value expected to be true for success. + test=false, + // descriptive message to use in output. + desc=todo_desc, +} => ({ok=ok, desc=desc}) { + assert mod.desc != NULL; + + let ok = mod.test; + let desc = "@" % (mod.desc); +}; + +// Test that a value is not true. +let not_ok = module{ + // Test value expected to to be false for success. + test=true, + // descriptive message to use in output. + desc=todo_desc, +} => ({ok=ok, desc=desc}) { + assert mod.desc != NULL; + + let ok = not mod.test; + let desc = "@" % (mod.desc); + +}; + +// Asserts that two values are equal. Does deep equal comparisons. +let equal = module{ + // Left value for deep equal comparison. + left=NULL, + // right value for deep equal comparison. + right=NULL, + desc="", +} => ({ok=ok, desc=desc}) { + assert mod.desc != NULL; + + let ok = mod.left == mod.right; + let desc = select (mod.desc == ""), "@ == @" % (mod.left, mod.right), { + false = mod.desc, }; +}; - // Test that a value is not true. - let not_ok = module{ - // Test value expected to to be false for success. - test=true, - // descriptive message to use in output. - desc=mod.default_description, - } => { - let ok = not mod.test; +// Asserts that two values are not equal. Does deep equal comparisons. +let not_equal = module{ + // Left value for deep equal comparison. + left=NULL, + // right value for deep equal comparison. + right=NULL, + desc="", +} => ({ok=ok, desc=desc}) { + assert mod.desc != NULL; - let desc = "@" % (mod.desc); - - }; - - // Asserts that two values are equal. Does deep equal comparisons. - let equal = module{ - // Left value for deep equal comparison. - left=NULL, - // right value for deep equal comparison. - right=NULL, - desc="", - } => { - let ok = mod.left == mod.right; - - let desc = select (mod.desc == ""), "@ == @" % (mod.left, mod.right), { - false = mod.desc, - }; - }; - - // Asserts that two values are not equal. Does deep equal comparisons. - let not_equal = module{ - // Left value for deep equal comparison. - left=NULL, - // right value for deep equal comparison. - right=NULL, - desc="", - } => { - let ok = mod.left != mod.right; - - let desc = select (mod.desc == ""), "@ != @" % (mod.left, mod.right), { - false = mod.desc, - }; + let ok = mod.left != mod.right; + let desc = select (mod.desc == ""), "@ != @" % (mod.left, mod.right), { + false = mod.desc, }; }; \ No newline at end of file diff --git a/std/tests/functional_test.ucg b/std/tests/functional_test.ucg index b529a77..c68eeb6 100644 --- a/std/tests/functional_test.ucg +++ b/std/tests/functional_test.ucg @@ -1,4 +1,4 @@ -let t = import "std/testing.ucg".asserts{}; +let t = import "std/testing.ucg"; let f = import "std/functional.ucg"; let op = func (arg) => arg{foo="bar"}; diff --git a/std/tests/lists_test.ucg b/std/tests/lists_test.ucg index 9b4eabb..d6542f0 100644 --- a/std/tests/lists_test.ucg +++ b/std/tests/lists_test.ucg @@ -1,10 +1,8 @@ let list = import "std/lists.ucg"; -let t = import "std/testing.ucg"; +let asserts = import "std/testing.ucg"; let list_to_join = [1, 2, 3]; -let asserts = t.asserts{}; - assert asserts.equal{ left=list.str_join{sep=",", list=list_to_join}, right="1,2,3" diff --git a/std/tests/schema_test.ucg b/std/tests/schema_test.ucg index e403786..0b3e9ff 100644 --- a/std/tests/schema_test.ucg +++ b/std/tests/schema_test.ucg @@ -1,4 +1,4 @@ -let t = import "std/testing.ucg".asserts{}; +let t = import "std/testing.ucg"; let schema = import "std/schema.ucg"; assert t.ok{ diff --git a/std/tests/strings_test.ucg b/std/tests/strings_test.ucg index fb706ef..85e2b2e 100644 --- a/std/tests/strings_test.ucg +++ b/std/tests/strings_test.ucg @@ -1,24 +1,24 @@ let strings = import "std/strings.ucg"; -let t = import "std/testing.ucg".asserts{}; +let asserts = import "std/testing.ucg"; let str_class = strings.ops{str="foo bar"}; -assert t.equal{ +assert asserts.equal{ left = str_class.split_on{}, right = ["foo", "bar"], }; -assert t.equal{ +assert asserts.equal{ left = strings.ops{str="foo"}.split_on{}, right = ["foo"], }; -assert t.equal{ +assert asserts.equal{ left = strings.ops{str=""}.split_on{}, right = [""], }; -assert t.equal{ +assert asserts.equal{ left = str_class.split_at(3), right = {left="foo", right=" bar"}, }; \ No newline at end of file diff --git a/std/tests/testing_test.ucg b/std/tests/testing_test.ucg index 1a6c79a..1a0d6f2 100644 --- a/std/tests/testing_test.ucg +++ b/std/tests/testing_test.ucg @@ -1,6 +1,4 @@ -let t = import "std/testing.ucg"; - -let asserts = t.asserts{}; +let asserts = import "std/testing.ucg"; let not_equal_result = asserts.not_equal{ left=1, diff --git a/std/tests/tuples_test.ucg b/std/tests/tuples_test.ucg index 210c8f4..2a5f2a8 100644 --- a/std/tests/tuples_test.ucg +++ b/std/tests/tuples_test.ucg @@ -1,5 +1,5 @@ let tpl = import "std/tuples.ucg"; -let t = (import "std/testing.ucg").asserts{}; +let t = (import "std/testing.ucg"); assert t.equal{ left = tpl.fields{tpl={foo=1, bar=2}},