Showcase precise ordering of output.

This commit is contained in:
H. S. Teoh 2013-02-07 14:20:24 -08:00
parent bcdb07d1c2
commit 96ae34ea53

View file

@ -11272,26 +11272,17 @@ auto B = [ 'a', 'b', 'c' ];
auto C = [ "x", "y", "z" ];
auto ABC = cartesianProduct(A, B, C);
auto expected = [
tuple(1, 'a', "x"), tuple(1, 'a', "y"), tuple(1, 'a', "z"),
tuple(1, 'b', "x"), tuple(1, 'b', "y"), tuple(1, 'b', "z"),
tuple(1, 'c', "x"), tuple(1, 'c', "y"), tuple(1, 'c', "z"),
tuple(2, 'a', "x"), tuple(2, 'a', "y"), tuple(2, 'a', "z"),
tuple(2, 'b', "x"), tuple(2, 'b', "y"), tuple(2, 'b', "z"),
tuple(2, 'c', "x"), tuple(2, 'c', "y"), tuple(2, 'c', "z"),
tuple(3, 'a', "x"), tuple(3, 'a', "y"), tuple(3, 'a', "z"),
tuple(3, 'b', "x"), tuple(3, 'b', "y"), tuple(3, 'b', "z"),
tuple(3, 'c', "x"), tuple(3, 'c', "y"), tuple(3, 'c', "z")
];
foreach (e; expected)
{
assert(canFind(ABC, e));
}
foreach (abc; ABC)
{
assert(canFind(expected, abc));
}
assert(ABC.equal([
tuple(1, 'a', "x"), tuple(2, 'a', "x"), tuple(3, 'a', "x"),
tuple(1, 'b', "x"), tuple(2, 'b', "x"), tuple(3, 'b', "x"),
tuple(1, 'c', "x"), tuple(2, 'c', "x"), tuple(3, 'c', "x"),
tuple(1, 'a', "y"), tuple(2, 'a', "y"), tuple(3, 'a', "y"),
tuple(1, 'b', "y"), tuple(2, 'b', "y"), tuple(3, 'b', "y"),
tuple(1, 'c', "y"), tuple(2, 'c', "y"), tuple(3, 'c', "y"),
tuple(1, 'a', "z"), tuple(2, 'a', "z"), tuple(3, 'a', "z"),
tuple(1, 'b', "z"), tuple(2, 'b', "z"), tuple(3, 'b', "z"),
tuple(1, 'c', "z"), tuple(2, 'c', "z"), tuple(3, 'c', "z")
]));
---
*/
auto cartesianProduct(R1, R2)(R1 range1, R2 range2)
@ -11548,24 +11539,15 @@ unittest
auto C = [ "x", "y", "z" ];
auto ABC = cartesianProduct(A, B, C);
auto expected = [
tuple(1, 'a', "x"), tuple(1, 'a', "y"), tuple(1, 'a', "z"),
tuple(1, 'b', "x"), tuple(1, 'b', "y"), tuple(1, 'b', "z"),
tuple(1, 'c', "x"), tuple(1, 'c', "y"), tuple(1, 'c', "z"),
tuple(2, 'a', "x"), tuple(2, 'a', "y"), tuple(2, 'a', "z"),
tuple(2, 'b', "x"), tuple(2, 'b', "y"), tuple(2, 'b', "z"),
tuple(2, 'c', "x"), tuple(2, 'c', "y"), tuple(2, 'c', "z"),
tuple(3, 'a', "x"), tuple(3, 'a', "y"), tuple(3, 'a', "z"),
tuple(3, 'b', "x"), tuple(3, 'b', "y"), tuple(3, 'b', "z"),
tuple(3, 'c', "x"), tuple(3, 'c', "y"), tuple(3, 'c', "z")
];
foreach (e; expected)
{
assert(canFind(ABC, e));
}
foreach (abc; ABC)
{
assert(canFind(expected, abc));
}
assert(ABC.equal([
tuple(1, 'a', "x"), tuple(2, 'a', "x"), tuple(3, 'a', "x"),
tuple(1, 'b', "x"), tuple(2, 'b', "x"), tuple(3, 'b', "x"),
tuple(1, 'c', "x"), tuple(2, 'c', "x"), tuple(3, 'c', "x"),
tuple(1, 'a', "y"), tuple(2, 'a', "y"), tuple(3, 'a', "y"),
tuple(1, 'b', "y"), tuple(2, 'b', "y"), tuple(3, 'b', "y"),
tuple(1, 'c', "y"), tuple(2, 'c', "y"), tuple(3, 'c', "y"),
tuple(1, 'a', "z"), tuple(2, 'a', "z"), tuple(3, 'a', "z"),
tuple(1, 'b', "z"), tuple(2, 'b', "z"), tuple(3, 'b', "z"),
tuple(1, 'c', "z"), tuple(2, 'c', "z"), tuple(3, 'c', "z"),
]));
}