diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-04-23 15:51:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-23 15:51:25 +0100 |
| commit | 9dab2c86dfade6f3c6820af1432462e88f7e53c4 (patch) | |
| tree | e454e6ca7cd85c629e1d37cfafdc95eeddc1e29f | |
| parent | 334fb0c779c78998ca193f2f4903887cff78c528 (diff) | |
| parent | e1f7b1c9f6c15f7e39f9a1969cdc08676647ff51 (diff) | |
| download | perlweeklychallenge-club-9dab2c86dfade6f3c6820af1432462e88f7e53c4.tar.gz perlweeklychallenge-club-9dab2c86dfade6f3c6820af1432462e88f7e53c4.tar.bz2 perlweeklychallenge-club-9dab2c86dfade6f3c6820af1432462e88f7e53c4.zip | |
Merge pull request #9971 from seaker/master
challenge 266, raku solutions
| -rwxr-xr-x | challenge-266/feng-chang/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-266/feng-chang/raku/ch-2.raku | 12 | ||||
| -rwxr-xr-x | challenge-266/feng-chang/raku/test.raku | 27 |
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"; |
