aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-266/feng-chang/raku/ch-1.raku5
-rwxr-xr-xchallenge-266/feng-chang/raku/ch-2.raku12
-rwxr-xr-xchallenge-266/feng-chang/raku/test.raku27
3 files changed, 44 insertions, 0 deletions
diff --git a/challenge-266/feng-chang/raku/ch-1.raku b/challenge-266/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..582dd3dbfc
--- /dev/null
+++ b/challenge-266/feng-chang/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(Str:D $sent1, Str:D $sent2);
+
+put ($sent1, $sent2)».words.Slip.Bag.grep(*.value == 1)».key.sort;
diff --git a/challenge-266/feng-chang/raku/ch-2.raku b/challenge-266/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..1c5d28e155
--- /dev/null
+++ b/challenge-266/feng-chang/raku/ch-2.raku
@@ -0,0 +1,12 @@
+#!/bin/env raku
+
+unit sub MAIN(Str:D $str);
+
+use MONKEY-SEE-NO-EVAL;
+
+my @mat = EVAL $str;
+my \dim = +@mat;
+put so (^dim X ^dim).map(-> (\R,\C) {
+ (@mat[R;C] && (R == C || R + C == dim - 1)) ||
+ !@mat[R;C]
+}).all;
diff --git a/challenge-266/feng-chang/raku/test.raku b/challenge-266/feng-chang/raku/test.raku
new file mode 100755
index 0000000000..e31416a423
--- /dev/null
+++ b/challenge-266/feng-chang/raku/test.raku
@@ -0,0 +1,27 @@
+#!/bin/env raku
+
+# The Weekly Challenge 266
+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, Uncommon Words
+pwc-test './ch-1.raku', 'Mango is sweet', 'Mango is sour', 'sour sweet', 'Uncommon Words: "Mango is sweet", "Mango is sour" => "sour sweet"';
+pwc-test './ch-1.raku', 'Mango Mango', 'Orange', 'Orange', 'Uncommon Words: "Mango Mongo", "Orange" => "Orange"';
+pwc-test './ch-1.raku', 'Mango is Mango', 'Orange is Orange', '', 'Uncommon Words: "Mango is Mango", "Orange is Orange" => ""';
+
+# Task 2, X Matrix
+pwc-test './ch-2.raku', '[1,0,0,2],[0,3,4,0],[0,5,6,0],[7,0,0,1]', 'True',
+ "X Matrix: '[1,0,0,2],[0,3,4,0],[0,5,6,0],[7,0,0,1]' => True";
+pwc-test './ch-2.raku', '[1,2,3],[4,5,6],[7,8,9]', 'False',
+ "X Matrix: '[1,2,3],[4,5,6],[7,8,9]' => False";
+pwc-test './ch-2.raku', '[1,0,2],[0,3,0],[4,0,5]', 'True',
+ "X Matrix: '[1,0,2],[0,3,0],[4,0,5]' => True";