ucg/std/tests/strings_test.ucg
Jeremy Wall 9b57ca5aa7 REFACTOR: Cleanup the syntax for the select expr
This makes it both easier to correctly write a select expression
as well as easier to parse and report syntax errors.
2019-11-09 18:05:48 -06:00

54 lines
988 B
Plaintext

let strings = import "std/strings.ucg";
let t = import "std/testing.ucg";
let str_class = strings.ops{str="foo bar"};
assert t.equal{
left = str_class.split_on{},
right = ["foo", "bar"],
};
assert t.equal{
left = strings.ops{str="foo"}.split_on{},
right = ["foo"],
};
assert t.equal{
left = strings.ops{str=""}.split_on{},
right = [""],
};
assert t.equal{
left = strings.ops{str="foo=>bar=>quux"}.split_on{on="=>"},
right = ["foo", "bar", "quux"],
};
assert t.equal{
left = str_class.split_at(3),
right = {left="foo", right=" bar"},
};
assert t.equal{
left = str_class.len,
right = 7,
};
assert t.equal{
left = str_class.chars,
right = ["f", "o", "o", " ", "b", "a", "r"],
};
assert t.equal{
left = str_class.substr{start=1}.str,
right = "oo bar",
};
assert t.equal{
left = str_class.substr{end=5}.str,
right = "foo ba",
};
assert t.equal{
left = str_class.substr{end=8}.str,
right = "foo bar",
};