mirror of
https://github.com/dlang/phobos.git
synced 2025-04-29 22:50:38 +03:00
Showcase precise ordering of output.
This commit is contained in:
parent
bcdb07d1c2
commit
96ae34ea53
1 changed files with 22 additions and 40 deletions
|
@ -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"),
|
||||
]));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue