1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#!/bin/env raku
# The Weekly Challenge 343
use Test;
sub pwc-test(Str:D $script, Bool :$deeply? = False, *@input) {
my ($expect, $assertion) = @input.splice(*-2, 2);
my $p = run $script, |@input, :out;
if $deeply {
is-deeply $p.out.slurp(:close).chomp.words.Bag, $expect, $assertion;
} else {
is $p.out.slurp(:close).chomp, $expect, $assertion;
}
}
# Task 1, Zero Friend
pwc-test './ch-1.raku', <4 2 -1 3 -2>, 1, 'Zero Friend: (4,2,-1,3,-2) => 1';
pwc-test './ch-1.raku', <-- -5 5 -3 3 -1 1>, 1, 'Zero Friend: (-5,5,-3,3,-1,1) => 1';
pwc-test './ch-1.raku', <7 -3 0 2 -8>, 0, 'Zero Friend: (7,-3,0,2,-8) => 0';
pwc-test './ch-1.raku', <-- -2 -5 -1 -8>, 1, 'Zero Friend: (-2,-5,-1,-8) => 1';
pwc-test './ch-1.raku', <-- -2 2 -4 4 -1 1>, 1, 'Zero Friend: (-2,2,-4,4,-1,1) => 1';
# Task 2, Champion Team
pwc-test './ch-2.raku', '[0,1,1],[0,0,1],[0,0,0]', 'Team 0', 'Champion Team: [0,1,1],[0,0,1],[0,0,0] => "Team 0"';
pwc-test './ch-2.raku', '[0,1,0,0],[0,0,0,0],[1,1,0,0],[1,1,1,0]', 'Team 3', 'Champion Team: [0,1,0,0],[0,0,0,0],[1,1,0,0],[1,1,1,0] => "Team 3"';
pwc-test './ch-2.raku', '[0,1,0,1],[0,0,1,1],[1,0,0,0],[0,0,1,0]', 'Team 0', 'Champion Team: [0,1,0,1],[0,0,1,1],[1,0,0,0],[0,0,1,0] => "Team 0"';
pwc-test './ch-2.raku', '[0,1,1],[0,0,0],[0,1,0]', 'Team 0', 'Champion Team: [0,1,1],[0,0,0],[0,1,0] => "Team 0"';
pwc-test './ch-2.raku', '[0,0,0,0,0],[1,0,0,0,0],[1,1,0,1,1],[1,1,0,0,0],[1,1,0,1,0]', 'Team 2', 'Champion Team: [0,0,0,0,0],[1,0,0,0,0],[1,1,0,1,1],[1,1,0,0,0],[1,1,0,1,0] => "Team 2"';
pwc-test './ch-2.raku', '[0,1,0],[0,0,1],[1,0,0]', 'Team 0,1,2 tie', 'Champion Team: [0,1,0],[0,0,1],[1,0,0] => "Team 0,1,2 tie"';
|