From fa97ecd56d4adbabd4879dc24110d019624a3113 Mon Sep 17 00:00:00 2001 From: lancew Date: Sun, 4 Jun 2023 11:17:57 +0100 Subject: Perl version for Challenge 219wq My thoughts are with you Mohammad and your family. --- challenge-219/lance-wicks/perl/ch-1.pl | 13 +++++++++++++ challenge-219/lance-wicks/perl/lib/My/Sorted/Square.pm | 16 ++++++++++++++++ challenge-219/lance-wicks/perl/t/01-sorted-squares.t | 15 +++++++++++++++ 3 files changed, 44 insertions(+) create mode 100644 challenge-219/lance-wicks/perl/ch-1.pl create mode 100644 challenge-219/lance-wicks/perl/lib/My/Sorted/Square.pm create mode 100644 challenge-219/lance-wicks/perl/t/01-sorted-squares.t diff --git a/challenge-219/lance-wicks/perl/ch-1.pl b/challenge-219/lance-wicks/perl/ch-1.pl new file mode 100644 index 0000000000..a395832ee2 --- /dev/null +++ b/challenge-219/lance-wicks/perl/ch-1.pl @@ -0,0 +1,13 @@ +use strict; +use warnings; + +use lib './lib'; +use My::Sorted::Square; + +my $list_txt = join ", ", @ARGV; +print "Input: \@list = ($list_txt)\n"; + +my @squares = My::Sorted::Square->run(@ARGV); +my $output_txt = join ", ", @squares; +print "Output: ($output_txt)\n"; + diff --git a/challenge-219/lance-wicks/perl/lib/My/Sorted/Square.pm b/challenge-219/lance-wicks/perl/lib/My/Sorted/Square.pm new file mode 100644 index 0000000000..33077048ea --- /dev/null +++ b/challenge-219/lance-wicks/perl/lib/My/Sorted/Square.pm @@ -0,0 +1,16 @@ +package My::Sorted::Square; +use Moo; + +sub run { + my ( $self, @list ) = @_; + + my @squared_list; + for my $num (@list) { + push @squared_list, $num**2; + } + + @squared_list = sort { $a <=> $b } @squared_list; + return @squared_list; +} + +1; diff --git a/challenge-219/lance-wicks/perl/t/01-sorted-squares.t b/challenge-219/lance-wicks/perl/t/01-sorted-squares.t new file mode 100644 index 0000000000..801b4739b1 --- /dev/null +++ b/challenge-219/lance-wicks/perl/t/01-sorted-squares.t @@ -0,0 +1,15 @@ +use Test2::V0 -target => 'My::Sorted::Square'; + +subtest 'Example 1' => sub { + my @list = ( -2, -1, 0, 3, 4 ); + my @squares = $CLASS->run(@list); + is \@squares, [ 0, 1, 4, 9, 16 ]; +}; + +subtest 'Example 2' => sub { + my @list = ( 5, -4, -1, 3, 6 ); + my @squares = $CLASS->run(@list); + is \@squares, [ 1, 9, 16, 25, 36 ]; +}; + +done_testing; -- cgit