diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2025-06-24 23:30:13 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-06-24 23:30:13 +0100 |
| commit | 85d39f2fc722611afa6cdcb2751444226288e536 (patch) | |
| tree | 59af36e8f6261920389c4248deb4fd112a3ba966 | |
| parent | 129efeec865de25f04cc44cfacdc657b31d034ed (diff) | |
| parent | 8bf0962ce81eb91f96c8f7e78882f881cfc31259 (diff) | |
| download | perlweeklychallenge-club-85d39f2fc722611afa6cdcb2751444226288e536.tar.gz perlweeklychallenge-club-85d39f2fc722611afa6cdcb2751444226288e536.tar.bz2 perlweeklychallenge-club-85d39f2fc722611afa6cdcb2751444226288e536.zip | |
Merge pull request #12224 from seaker/master
challenge 327, raku solutions
| -rwxr-xr-x[-rw-r--r--] | challenge-326/feng-chang/raku/ch-1.raku | 0 | ||||
| -rwxr-xr-x[-rw-r--r--] | challenge-326/feng-chang/raku/ch-2.raku | 0 | ||||
| -rwxr-xr-x | challenge-326/feng-chang/raku/test.raku | 24 | ||||
| -rwxr-xr-x | challenge-327/feng-chang/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-327/feng-chang/raku/ch-2.raku | 7 | ||||
| -rwxr-xr-x | challenge-327/feng-chang/raku/test.raku | 24 |
6 files changed, 60 insertions, 0 deletions
diff --git a/challenge-326/feng-chang/raku/ch-1.raku b/challenge-326/feng-chang/raku/ch-1.raku index 637716a725..637716a725 100644..100755 --- a/challenge-326/feng-chang/raku/ch-1.raku +++ b/challenge-326/feng-chang/raku/ch-1.raku diff --git a/challenge-326/feng-chang/raku/ch-2.raku b/challenge-326/feng-chang/raku/ch-2.raku index 15baa6a610..15baa6a610 100644..100755 --- a/challenge-326/feng-chang/raku/ch-2.raku +++ b/challenge-326/feng-chang/raku/ch-2.raku diff --git a/challenge-326/feng-chang/raku/test.raku b/challenge-326/feng-chang/raku/test.raku new file mode 100755 index 0000000000..d535b195a4 --- /dev/null +++ b/challenge-326/feng-chang/raku/test.raku @@ -0,0 +1,24 @@ +#!/bin/env raku + +# The Weekly Challenge 326 +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, Day of the Year +pwc-test './ch-1.raku', '2025-02-02', 33, 'Day of the Year: 2025-02-02 => 33'; +pwc-test './ch-1.raku', '2025-04-10', 100, 'Day of the Year: 2025-04-10 => 100'; +pwc-test './ch-1.raku', '2025-09-07', 250, 'Day of the Year: 2025-09-07 => 250'; + +# Task 2, Decompressed List +pwc-test './ch-2.raku', <1 3 2 4>, '3 4 4', 'Decompressed List: 1,3,2,4 => 3,4,4'; +pwc-test './ch-2.raku', <1 1 2 2>, '1 2 2', 'Decompressed List: 1,1,2,2 => 1,2,2'; +pwc-test './ch-2.raku', <3 1 3 2>, '1 1 1 2 2 2', 'Decompressed List: 3,1,3,2 => 1,1,1,2,2,2'; diff --git a/challenge-327/feng-chang/raku/ch-1.raku b/challenge-327/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..9f97b21c9f --- /dev/null +++ b/challenge-327/feng-chang/raku/ch-1.raku @@ -0,0 +1,5 @@ +#!/bin/env raku + +unit sub MAIN(*@ints); + +put ((1..+@ints) (-) +«@ints).keys.sort; diff --git a/challenge-327/feng-chang/raku/ch-2.raku b/challenge-327/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..2e47ca8804 --- /dev/null +++ b/challenge-327/feng-chang/raku/ch-2.raku @@ -0,0 +1,7 @@ +#!/bin/env raku + +unit sub MAIN(*@ints); + +@ints .= sort; +my $min-diff = @ints.rotor(2 => -1).map({ -[-] $_ }).min; +put @ints.rotor(2 => -1).map({ "[{.join(',')}]" if (-[-] $_) == $min-diff }).join(', '); diff --git a/challenge-327/feng-chang/raku/test.raku b/challenge-327/feng-chang/raku/test.raku new file mode 100755 index 0000000000..9520ed7c6a --- /dev/null +++ b/challenge-327/feng-chang/raku/test.raku @@ -0,0 +1,24 @@ +#!/bin/env raku + +# The Weekly Challenge 327 +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, Missing Integers +pwc-test './ch-1.raku', <1 2 1 3 2 5>, '4 6', 'Missing Integers: (1,2,1,3,2,5) => (4,6)'; +pwc-test './ch-1.raku', <1 1 1>, '2 3', 'Missing Integers: (1,1,1) => (2,3)'; +pwc-test './ch-1.raku', <2 2 1>, '3', 'Missing Integers: (2,2,1) => (3)'; + +# Task 2, MAD +pwc-test './ch-2.raku', <4 1 2 3>, '[1,2], [2,3], [3,4]', 'MAD: (4,1,2,3) => [1,2],[2,3],[3,4]'; +pwc-test './ch-2.raku', <1 3 7 11 15>, '[1,3]', 'MAD: (1,3,7,11,15) => [1,3]'; +pwc-test './ch-2.raku', <1 5 3 8>, '[1,3], [3,5]', 'MAD: (1,5,3,8) => [1,3], [3,5]'; |
