|
|
|
@ -660,4 +660,71 @@ runTests { |
|
|
|
|
expected = [ [ "foo" ] [ "foo" "<name>" "bar" ] [ "foo" "bar" ] ]; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
testCartesianProductOfEmptySet = { |
|
|
|
|
expr = cartesianProductOfSets {}; |
|
|
|
|
expected = [ {} ]; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
testCartesianProductOfOneSet = { |
|
|
|
|
expr = cartesianProductOfSets { a = [ 1 2 3 ]; }; |
|
|
|
|
expected = [ { a = 1; } { a = 2; } { a = 3; } ]; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
testCartesianProductOfTwoSets = { |
|
|
|
|
expr = cartesianProductOfSets { a = [ 1 ]; b = [ 10 20 ]; }; |
|
|
|
|
expected = [ |
|
|
|
|
{ a = 1; b = 10; } |
|
|
|
|
{ a = 1; b = 20; } |
|
|
|
|
]; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
testCartesianProductOfTwoSetsWithOneEmpty = { |
|
|
|
|
expr = cartesianProductOfSets { a = [ ]; b = [ 10 20 ]; }; |
|
|
|
|
expected = [ ]; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
testCartesianProductOfThreeSets = { |
|
|
|
|
expr = cartesianProductOfSets { |
|
|
|
|
a = [ 1 2 3 ]; |
|
|
|
|
b = [ 10 20 30 ]; |
|
|
|
|
c = [ 100 200 300 ]; |
|
|
|
|
}; |
|
|
|
|
expected = [ |
|
|
|
|
{ a = 1; b = 10; c = 100; } |
|
|
|
|
{ a = 1; b = 10; c = 200; } |
|
|
|
|
{ a = 1; b = 10; c = 300; } |
|
|
|
|
|
|
|
|
|
{ a = 1; b = 20; c = 100; } |
|
|
|
|
{ a = 1; b = 20; c = 200; } |
|
|
|
|
{ a = 1; b = 20; c = 300; } |
|
|
|
|
|
|
|
|
|
{ a = 1; b = 30; c = 100; } |
|
|
|
|
{ a = 1; b = 30; c = 200; } |
|
|
|
|
{ a = 1; b = 30; c = 300; } |
|
|
|
|
|
|
|
|
|
{ a = 2; b = 10; c = 100; } |
|
|
|
|
{ a = 2; b = 10; c = 200; } |
|
|
|
|
{ a = 2; b = 10; c = 300; } |
|
|
|
|
|
|
|
|
|
{ a = 2; b = 20; c = 100; } |
|
|
|
|
{ a = 2; b = 20; c = 200; } |
|
|
|
|
{ a = 2; b = 20; c = 300; } |
|
|
|
|
|
|
|
|
|
{ a = 2; b = 30; c = 100; } |
|
|
|
|
{ a = 2; b = 30; c = 200; } |
|
|
|
|
{ a = 2; b = 30; c = 300; } |
|
|
|
|
|
|
|
|
|
{ a = 3; b = 10; c = 100; } |
|
|
|
|
{ a = 3; b = 10; c = 200; } |
|
|
|
|
{ a = 3; b = 10; c = 300; } |
|
|
|
|
|
|
|
|
|
{ a = 3; b = 20; c = 100; } |
|
|
|
|
{ a = 3; b = 20; c = 200; } |
|
|
|
|
{ a = 3; b = 20; c = 300; } |
|
|
|
|
|
|
|
|
|
{ a = 3; b = 30; c = 100; } |
|
|
|
|
{ a = 3; b = 30; c = 200; } |
|
|
|
|
{ a = 3; b = 30; c = 300; } |
|
|
|
|
]; |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|