Merge pull request #599 from revarbat/revarbat_dev

Added group_data() and all_integer() regressions.
This commit is contained in:
Revar Desmera 2021-06-30 20:02:54 -07:00 committed by GitHub
commit 50faec64fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 31 additions and 1 deletions

View file

@ -577,6 +577,7 @@ module no_module() {
function _valstr(x) =
is_string(x)? str("\"",str_replace_char(x, "\"", "\\\""),"\"") :
is_list(x)? str("[",str_join([for (xx=x) _valstr(xx)],","),"]") :
is_num(x) && x==floor(x)? fmt_int(x) :
is_finite(x)? fmt_float(x,12) : x;

View file

@ -734,7 +734,7 @@ function str_pad(str,length,char=" ",left=false) =
// can be any string.
function str_replace_char(str,char,replace) =
assert(is_str(str))
assert(is_str(char) && len(char)==1, "Search pattern 'char' must be a a single character string")
assert(is_str(char) && len(char)==1, "Search pattern 'char' must be a single character string")
assert(is_str(replace))
str_join([for(c=str) c==char ? replace : c]);

View file

@ -589,6 +589,15 @@ module test_array_group() {
test_array_group();
module test_group_data() {
assert_equal(group_data([1,2,0], ["A","B","C"]), [["C"],["A"],["B"]]);
assert_equal(group_data([1,3,0], ["A","B","C"]), [["C"],["A"],[],["B"]]);
assert_equal(group_data([5,3,1], ["A","B","C"]), [[],["C"],[],["B"],[],["A"]]);
assert_equal(group_data([1,3,1], ["A","B","C"]), [[],["A","C"],[],["B"]]);
}
test_group_data();
module test_flatten() {
assert(flatten([[1,2,3], [4,5,[6,7,8]]]) == [1,2,3,4,5,[6,7,8]]);
assert(flatten([]) == []);

View file

@ -227,6 +227,26 @@ module test_all_nonnegative() {
test_all_nonnegative();
module test_all_integer() {
assert(!all_integer(undef));
assert(!all_integer(true));
assert(!all_integer(false));
assert(!all_integer(4.3));
assert(!all_integer("foo"));
assert(!all_integer([]));
assert(!all_integer([3,4.1,5,7]));
assert(!all_integer([[1,2,3],[4,5,6],[7,8]]));
assert(all_integer(-4));
assert(all_integer(0));
assert(all_integer(5));
assert(all_integer([-3]));
assert(all_integer([0]));
assert(all_integer([3]));
assert(all_integer([2,-4,0,5,7,9876543210]));
}
test_all_integer();
module test_approx() {
assert_equal(approx(PI, 3.141592653589793236), true);
assert_equal(approx(PI, 3.1415926), false);