diff options
| author | 冯昶 <fengchang@novel-supertv.com> | 2024-01-30 10:01:49 +0800 |
|---|---|---|
| committer | 冯昶 <fengchang@novel-supertv.com> | 2024-01-30 10:01:49 +0800 |
| commit | 409a0635fc8d10d342a7b6dd72c1c23a2c0702e0 (patch) | |
| tree | db2be3146a2600f4aaf72deb37966205d9edf4c8 | |
| parent | 4fcb283e68607d4c866ede316ee75b5352106ec7 (diff) | |
| download | perlweeklychallenge-club-409a0635fc8d10d342a7b6dd72c1c23a2c0702e0.tar.gz perlweeklychallenge-club-409a0635fc8d10d342a7b6dd72c1c23a2c0702e0.tar.bz2 perlweeklychallenge-club-409a0635fc8d10d342a7b6dd72c1c23a2c0702e0.zip | |
challenge 254, raku solutions
| -rwxr-xr-x | challenge-254/feng-chang/raku/ch-1.raku | 5 | ||||
| -rwxr-xr-x | challenge-254/feng-chang/raku/ch-2.raku | 8 | ||||
| -rwxr-xr-x | challenge-254/feng-chang/raku/test.raku | 27 |
3 files changed, 40 insertions, 0 deletions
diff --git a/challenge-254/feng-chang/raku/ch-1.raku b/challenge-254/feng-chang/raku/ch-1.raku new file mode 100755 index 0000000000..a0243f7c40 --- /dev/null +++ b/challenge-254/feng-chang/raku/ch-1.raku @@ -0,0 +1,5 @@ +#!/bin/env raku + +unit sub MAIN(Int:D $n); + +put ($n**⅓ +0.5).Int³ == $n; diff --git a/challenge-254/feng-chang/raku/ch-2.raku b/challenge-254/feng-chang/raku/ch-2.raku new file mode 100755 index 0000000000..2b0452548c --- /dev/null +++ b/challenge-254/feng-chang/raku/ch-2.raku @@ -0,0 +1,8 @@ +#!/bin/env raku + +unit sub MAIN(Str:D $w); + +my @W = $w.lc.comb; +my @vowels = @W.grep(/<[aeiou]>/, :k); +@W[@vowels] .= reverse; +put @W.join.tc; diff --git a/challenge-254/feng-chang/raku/test.raku b/challenge-254/feng-chang/raku/test.raku new file mode 100755 index 0000000000..4fa27a474a --- /dev/null +++ b/challenge-254/feng-chang/raku/test.raku @@ -0,0 +1,27 @@ +#!/bin/env raku + +# The Weekly Challenge 254 +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, Three Power +pwc-test './ch-1.raku', 27, 'True', '27 = 3³'; +pwc-test './ch-1.raku', 0, 'True', '0 = 0³'; +pwc-test './ch-1.raku', 6, 'False', '6 is not a power of 3'; + +# Task 2, Reverse Vowels +pwc-test './ch-2.raku', 'Raku', 'Ruka', 'Reverse Vowels: Raku => Ruka'; +pwc-test './ch-2.raku', 'Perl', 'Perl', 'Reverse Vowels: Perl => Perl'; +pwc-test './ch-2.raku', 'Julia', 'Jaliu', 'Reverse Vowels: Julia => Jaliu'; +pwc-test './ch-2.raku', 'Uiua', 'Auiu', 'Reverse Vowels: Uiua => Auiu'; + +done-testing; |
