REFACTOR: testing module cleanup.

Nesting was unnecessary and added 0 or negative value. So I removed
the nesting.
This commit is contained in:
Jeremy Wall 2019-04-09 20:43:42 -05:00
parent 2cefcdbd6a
commit 1b2aa4dfd1
11 changed files with 68 additions and 80 deletions

View File

@ -1,4 +1,4 @@
let t = import "std/testing.ucg".asserts{}; let t = import "std/testing.ucg";
assert t.equal{ assert t.equal{
left = "hello @" % ("world"), left = "hello @" % ("world"),

View File

@ -1,4 +1,4 @@
let t = import "std/testing.ucg".asserts{}; let t = import "std/testing.ucg";
let script = include str "./include_example.sh"; let script = include str "./include_example.sh";
assert { assert {

View File

@ -1,4 +1,4 @@
let t = import "std/testing.ucg".asserts{}; let t = import "std/testing.ucg";
let test_empty_mod = module { let test_empty_mod = module {
} => { } => {

View File

@ -1,4 +1,4 @@
let t = import "std/testing.ucg".asserts{}; let t = import "std/testing.ucg";
assert t.ok{ assert t.ok{
test = "foo" is "str", test = "foo" is "str",

View File

@ -1,68 +1,60 @@
// A module with helper test assertions for ucg tests. let todo_desc = "TODO description";
// 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 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. // Asserts that two values are not equal. Does deep equal comparisons.
let not_ok = module{ let not_equal = module{
// Test value expected to to be false for success. // Left value for deep equal comparison.
test=true, left=NULL,
// descriptive message to use in output. // right value for deep equal comparison.
desc=mod.default_description, right=NULL,
} => { desc="",
let ok = not mod.test; } => ({ok=ok, desc=desc}) {
assert mod.desc != NULL;
let desc = "@" % (mod.desc); let ok = mod.left != mod.right;
let desc = select (mod.desc == ""), "@ != @" % (mod.left, mod.right), {
}; false = 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,
};
}; };
}; };

View File

@ -1,4 +1,4 @@
let t = import "std/testing.ucg".asserts{}; let t = import "std/testing.ucg";
let f = import "std/functional.ucg"; let f = import "std/functional.ucg";
let op = func (arg) => arg{foo="bar"}; let op = func (arg) => arg{foo="bar"};

View File

@ -1,10 +1,8 @@
let list = import "std/lists.ucg"; 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 list_to_join = [1, 2, 3];
let asserts = t.asserts{};
assert asserts.equal{ assert asserts.equal{
left=list.str_join{sep=",", list=list_to_join}, left=list.str_join{sep=",", list=list_to_join},
right="1,2,3" right="1,2,3"

View File

@ -1,4 +1,4 @@
let t = import "std/testing.ucg".asserts{}; let t = import "std/testing.ucg";
let schema = import "std/schema.ucg"; let schema = import "std/schema.ucg";
assert t.ok{ assert t.ok{

View File

@ -1,24 +1,24 @@
let strings = import "std/strings.ucg"; 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"}; let str_class = strings.ops{str="foo bar"};
assert t.equal{ assert asserts.equal{
left = str_class.split_on{}, left = str_class.split_on{},
right = ["foo", "bar"], right = ["foo", "bar"],
}; };
assert t.equal{ assert asserts.equal{
left = strings.ops{str="foo"}.split_on{}, left = strings.ops{str="foo"}.split_on{},
right = ["foo"], right = ["foo"],
}; };
assert t.equal{ assert asserts.equal{
left = strings.ops{str=""}.split_on{}, left = strings.ops{str=""}.split_on{},
right = [""], right = [""],
}; };
assert t.equal{ assert asserts.equal{
left = str_class.split_at(3), left = str_class.split_at(3),
right = {left="foo", right=" bar"}, right = {left="foo", right=" bar"},
}; };

View File

@ -1,6 +1,4 @@
let t = import "std/testing.ucg"; let asserts = import "std/testing.ucg";
let asserts = t.asserts{};
let not_equal_result = asserts.not_equal{ let not_equal_result = asserts.not_equal{
left=1, left=1,

View File

@ -1,5 +1,5 @@
let tpl = import "std/tuples.ucg"; let tpl = import "std/tuples.ucg";
let t = (import "std/testing.ucg").asserts{}; let t = (import "std/testing.ucg");
assert t.equal{ assert t.equal{
left = tpl.fields{tpl={foo=1, bar=2}}, left = tpl.fields{tpl={foo=1, bar=2}},