/* Minimal Unit Test: Each Combinator */ /* Test data */ numbers : {1, 2, 3, 4, 5}; table1 : {a: 1, b: 2, c: 3}; table2 : {a: 10, b: 20, c: 30}; /* each with table and scalar */ each_add : each @add numbers 10; each_1 : each_add[1]; each_2 : each_add[2]; each_3 : each_add[3]; ..assert each_1 = 11; ..assert each_2 = 12; ..assert each_3 = 13; /* each with two tables */ each_sum : each @add table1 table2; ..assert each_sum.a = 11; ..assert each_sum.b = 22; ..assert each_sum.c = 33; /* each with scalar and table */ each_add_scalar : each @add 10 numbers; scalar_1 : each_add_scalar[1]; scalar_2 : each_add_scalar[2]; scalar_3 : each_add_scalar[3]; ..assert scalar_1 = 11; ..assert scalar_2 = 12; ..assert scalar_3 = 13; /* each with partial application */ add_to_ten : each @add 10; partial_result : add_to_ten numbers; partial_1 : partial_result[1]; partial_2 : partial_result[2]; partial_3 : partial_result[3]; ..assert partial_1 = 11; ..assert partial_2 = 12; ..assert partial_3 = 13; /* each with different operations */ each_multiply : each @multiply numbers 2; mult_1 : each_multiply[1]; mult_2 : each_multiply[2]; mult_3 : each_multiply[3]; ..assert mult_1 = 2; ..assert mult_2 = 4; ..assert mult_3 = 6; /* each with empty table */ empty_table : {}; empty_result : each @add empty_table 10; empty_length : t.length empty_result; ..assert empty_length = 0; /* each with single element table */ single_table : {key: 5}; single_result : each @add single_table 10; ..assert single_result.key = 15; ..out "Minimal each combinator test completed successfully";