aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <Mohammad.Anwar@yahoo.com>2025-06-24 23:30:13 +0100
committerGitHub <noreply@github.com>2025-06-24 23:30:13 +0100
commit85d39f2fc722611afa6cdcb2751444226288e536 (patch)
tree59af36e8f6261920389c4248deb4fd112a3ba966
parent129efeec865de25f04cc44cfacdc657b31d034ed (diff)
parent8bf0962ce81eb91f96c8f7e78882f881cfc31259 (diff)
downloadperlweeklychallenge-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.raku0
-rwxr-xr-x[-rw-r--r--]challenge-326/feng-chang/raku/ch-2.raku0
-rwxr-xr-xchallenge-326/feng-chang/raku/test.raku24
-rwxr-xr-xchallenge-327/feng-chang/raku/ch-1.raku5
-rwxr-xr-xchallenge-327/feng-chang/raku/ch-2.raku7
-rwxr-xr-xchallenge-327/feng-chang/raku/test.raku24
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]';