Skip to content

Commit

Permalink
Adapt to slightly changed (^) semantics
Browse files Browse the repository at this point in the history
As described in rakudo/rakudo@64ab717982
  • Loading branch information
lizmat committed Aug 1, 2018
1 parent 908159d commit f0f8529
Showing 1 changed file with 64 additions and 41 deletions.
105 changes: 64 additions & 41 deletions S03-operators/set_symmetric_difference.t
Expand Up @@ -15,11 +15,11 @@ my @types = Set, SetHash, Bag, BagHash, Mix, MixHash;
# single parameter, result
my @pairs =
<a b c>.Set, <a b c>.Set,
<a b c>.SetHash, <a b c>.Set,
<a b c>.SetHash, <a b c>.SetHash,
<a b c>.Bag, <a b c>.Bag,
<a b c>.BagHash, <a b c>.Bag,
<a b c>.BagHash, <a b c>.BagHash,
<a b c>.Mix, <a b c>.Mix,
<a b c>.MixHash, <a b c>.Mix,
<a b c>.MixHash, <a b c>.MixHash,
{:42a}, <a>.Set,
{:42a,:0b}, <a>.Set,
:{:42a}, <a>.Set,
Expand All @@ -33,71 +33,96 @@ my @pairs =
# two parameters, result
my @triplets =

# result should be a Set
# result should be a Set(Hash)
set(), set(), set(),
SetHash.new, SetHash.new, set(),
$esh, $esh, set(),
SetHash.new, set(), SetHash.new,
set(), SetHash.new, set(),
SetHash.new, SetHash.new, SetHash.new,
$esh, set(), SetHash.new,
set(), $esh, set(),
$esh, $esh, SetHash.new,

<a b>.Set, set(), <a b>.Set,
<a b>.SetHash, set(), <a b>.Set,
<a b>.SetHash, set(), <a b>.SetHash,
<a b>.Set, <a b>.Set, set(),
<a b>.SetHash, <a b>.SetHash, set(),
<a b>.SetHash, <a b>.SetHash, SetHash.new,
<a b>.Set, <c d>.Set, <a b c d>.Set,
<a b c>.Set, <b c d>.Set, <a d>.Set,
<a b>.SetHash, <c d>.SetHash, <a b c d>.Set,
<a b c>.SetHash, <b c d>.SetHash, <a d>.Set,
<a b>.SetHash, <c d>.SetHash, <a b c d>.SetHash,
<a b c>.SetHash, <b c d>.SetHash, <a d>.SetHash,

# result should be a Bag
# result should be a Bag(Hash)
bag(), bag(), bag(),
BagHash.new, BagHash.new, bag(),
$ebh, $ebh, bag(),
BagHash.new, bag(), BagHash.new,
bag(), BagHash.new, bag(),
BagHash.new, BagHash.new, BagHash.new,
$ebh, bag(), BagHash.new,
bag(), $ebh, bag(),
$ebh, $ebh, BagHash.new,

<a b b>.Bag, bag(), <a b b>.Bag,
<a b b>.BagHash, bag(), <a b b>.Bag,
<a b b>.BagHash, bag(), <a b b>.BagHash,
<a b b>.Bag, <a b>.Bag, <b>.Bag,
<a b b>.BagHash, <a b>.BagHash, <b>.Bag,
<a b b>.BagHash, <a b>.BagHash, <b>.BagHash,
<a b b>.Bag, <c d>.Bag, <a b b c d>.Bag,
<a b b c>.Bag, <b c d>.Bag, <a b d>.Bag,
<a b b>.BagHash, <c d>.BagHash, <a b b c d>.Bag,
<a b b c>.BagHash, <b c d>.BagHash, <a b d>.Bag,
<a b b>.BagHash, <c d>.BagHash, <a b b c d>.BagHash,
<a b b c>.BagHash, <b c d>.BagHash, <a b d>.BagHash,

# result should be a Mix
# result should be a Mix(Hash)
mix(), mix(), mix(),
MixHash.new, MixHash.new, mix(),
$emh, $emh, mix(),
MixHash.new, mix(), MixHash.new,
mix(), MixHash.new, mix(),
MixHash.new, MixHash.new, MixHash.new,
$emh, mix(), MixHash.new,
mix(), $emh, mix(),
$emh, $emh, MixHash.new,

mix(), <a b>.Mix, <a b>.Mix,
MixHash.new, <a b>.MixHash, <a b>.Mix,
MixHash.new, <a b>.MixHash, <a b>.MixHash,
(a=>-pi).Mix, mix(), (a=>pi).Mix,
(a=>-pi).MixHash, mix(), (a=>pi).Mix,
(a=>-pi).MixHash, mix(), (a=>pi).MixHash,
(a=>pi,b=>tau).Mix, mix(), (a=>pi,b=>tau).Mix,
(a=>pi,b=>tau).MixHash, mix(), (a=>pi,b=>tau).Mix,
(a=>pi,b=>tau).MixHash, mix(), (a=>pi,b=>tau).MixHash,
(a=>pi,b=>tau).Mix, <a b>.Mix, (a=>(pi-1),b=>(tau-1)).Mix,
(a=>pi,b=>tau).MixHash, <a b>.MixHash, (a=>(pi-1),b=>(tau-1)).Mix,
(a=>pi,b=>tau).MixHash, <a b>.MixHash, (a=>(pi-1),b=>(tau-1)).MixHash,
(a=>pi,b=>tau).Mix, <c d>.Mix, (a=>pi,b=>tau,:c,:d).Mix,
(a=>pi,b=>tau).Mix, <b c>.Mix, (a=>pi,b=>(tau-1),:c).Mix,
(a=>pi,b=>tau).MixHash, <c d>.MixHash, (a=>pi,b=>tau,:c,:d).Mix,
(a=>pi,b=>tau).MixHash, <b c>.MixHash, (a=>pi,b=>(tau-1),:c).Mix,
(a=>pi,b=>tau).MixHash, <c d>.MixHash, (a=>pi,b=>tau,:c,:d).MixHash,
(a=>pi,b=>tau).MixHash, <b c>.MixHash, (a=>pi,b=>(tau-1),:c).MixHash,

# coercions
<a b>.Set, <a b b>.Bag, <b>.Bag,
<a b>.SetHash, <a b b>.BagHash, <b>.Bag,
<a b>.SetHash, <a b b>.Bag, <b>.BagHash,
<a b>.Set, <a b b>.BagHash, <b>.Bag,
<a b>.SetHash, <a b b>.BagHash, <b>.BagHash,

<a b>.Set, <a b b>.Mix, <b>.Mix,
<a b>.SetHash, <a b b>.MixHash, <b>.Mix,
<a b>.SetHash, <a b b>.Mix, <b>.MixHash,
<a b>.Set, <a b b>.MixHash, <b>.Mix,
<a b>.SetHash, <a b b>.MixHash, <b>.MixHash,

<a b>.Set, (b=>-1).Mix, <a b b>.Mix,
<a b>.SetHash, (b=>-1).MixHash, <a b b>.Mix,
<a b>.SetHash, (b=>-1).Mix, <a b b>.MixHash,
<a b>.Set, (b=>-1).MixHash, <a b b>.Mix,
<a b>.SetHash, (b=>-1).MixHash, <a b b>.MixHash,

<a b>.Bag, <a b b>.Mix, <b>.Mix,
<a b>.BagHash, <a b b>.MixHash, <b>.Mix,
<a b>.BagHash, <a b b>.Mix, <b>.MixHash,
<a b>.Bag, <a b b>.MixHash, <b>.Mix,
<a b>.BagHash, <a b b>.MixHash, <b>.MixHash,

<a b>.Bag, (b=>-1).Mix, <a b b>.Mix,
<a b>.BagHash, (b=>-1).MixHash, <a b b>.Mix,
<a b>.BagHash, (b=>-1).Mix, <a b b>.MixHash,
<a b>.Bag, (b=>-1).MixHash, <a b b>.Mix,
<a b>.BagHash, (b=>-1).MixHash, <a b b>.MixHash,

<a b c>.Set, {:42a,:0b}, <b c>.Set,
<a b c>.SetHash, {:42a,:0b}, <b c>.Set,
<a b b c>.Bag, {:42a,:0b}, (:41a,:2b,:c).Bag,
<a b b c>.BagHash, {:42a,:0b}, (:41a,:2b,:c).Bag,
<a b b c>.BagHash, {:42a,:0b}, (:41a,:2b,:c).BagHash,
<a b b c>.Mix, {:42a,:0b}, (:41a,:2b,:c).Mix,
<a b b c>.MixHash, {:42a,:0b}, (:41a,:2b,:c).Mix,
<a b b c>.MixHash, {:42a,:0b}, (:41a,:2b,:c).MixHash,

{:42a,:0b}, <a b c>.Set, <b c>.Set,
{:42a,:0b}, <a b c>.SetHash, <b c>.Set,
Expand All @@ -109,9 +134,9 @@ my @triplets =
<a b c>.Set, <a b c d>, <d>.Set,
<a b c>.SetHash, <a b c d>, <d>.Set,
<a b b c>.Bag, <a b c d>, <b d>.Bag,
<a b b c>.BagHash, <a b c d>, <b d>.Bag,
<a b b c>.BagHash, <a b c d>, <b d>.BagHash,
<a b b c>.Mix, <a b c d>, <b d>.Mix,
<a b b c>.MixHash, <a b c d>, <b d>.Mix,
<a b b c>.MixHash, <a b c d>, <b d>.MixHash,

<a b c d>, <a b c e>.Set, <d e>.Set,
<a b c d>, <a b c e>.SetHash, <d e>.Set,
Expand Down Expand Up @@ -175,7 +200,7 @@ my @quads =
<a b c>, <a b c>.Set,
;

plan 2 * (1 + 3 * @types + @pairs/2 + 2 * @triplets/3 + 6 * @quads/2);
plan 2 * (1 + 3 * @types + @pairs/2 + @triplets/3 + 6 * @quads/2);

# symmetric difference
for
Expand All @@ -186,8 +211,9 @@ for
is-deeply op(), set(), "does $name\() return set()";

for @types -> \qh {
is-deeply op(qh.new,qh.new,qh.new), ::(qh.^name.substr(0,3)).new,
"Sequence of empty {qh.^name} is the empty {qh.^name.substr(0,3)}";
#exit dd qh unless
is-deeply op(qh.new,qh.new,qh.new), qh.new,
"Sequence of empty {qh.^name} is the empty {qh.^name}";
throws-like { op(qh.new,^Inf) }, X::Cannot::Lazy,
"Cannot {qh.perl}.new $name lazy list";
throws-like { op(qh.new(<a b c>),^Inf) }, X::Cannot::Lazy,
Expand All @@ -204,9 +230,6 @@ for
#exit dd $left, $right, $result unless
is-deeply op($left,$right), $result,
"$left.gist() $name $right.gist()";
#exit dd $right, $left, $result unless
is-deeply op($right,$left), $result,
"$right.gist() $name $left.gist()";
}

for @quads -> @params, $result {
Expand Down

0 comments on commit f0f8529

Please sign in to comment.