exercism-perl5

Repository for my Perl 5 Exercism exercises
git clone git://git.samirparikh.com/exercism-perl5
Log | Files | Refs | README

commit 8d5a702385178e91a19be9325f1edb6f82b9e90a
parent f5b3878cfb3ba3674bdbace7cf8364c2ae2d4a7a
Author: Samir Parikh <noreply@samirparikh.com>
Date:   Sun, 23 Jan 2022 15:21:44 +0000

make updates

Diffstat:
Mpalindrome-products/Palindrome.pm | 25++++++++++++++++++-------
Dpalindrome-products/ptest.pl | 83-------------------------------------------------------------------------------
Dpalindrome-products/ptest2.pl | 81-------------------------------------------------------------------------------
3 files changed, 18 insertions(+), 171 deletions(-)

diff --git a/palindrome-products/Palindrome.pm b/palindrome-products/Palindrome.pm @@ -12,17 +12,17 @@ sub new { return $self; } -sub _init { - my ( $self, $arg ) = @_; +#sub _init { +# my ( $self, $arg ) = @_; # my $min_factor = $arg->{min_factor}; # unless (defined $min_factor ) { # $self->{min_factor} = 1; # } - $self->{min_factor} = defined $arg->{min_factor} ? - $arg->{min_factor} : - 1; - $self->{max_factor} = $arg->{max_factor}; -} +# $self->{min_factor} = defined $arg->{min_factor} ? +# $arg->{min_factor} : +# 1; +# $self->{max_factor} = $arg->{max_factor}; +#} sub largest { my $self = shift; @@ -43,4 +43,15 @@ sub smallest { return undef; } +sub _init { + my ( $self, $arg ) = @_; + $self->{min_factor} = + defined $arg->{min_factor} ? $arg->{min_factor} : 1; + $self->{max_factor} = $arg->{max_factor}; +} + +sub is_palindrome { + return $_[0] eq reverse $_[0]; +} + 1; diff --git a/palindrome-products/ptest.pl b/palindrome-products/ptest.pl @@ -1,83 +0,0 @@ -#!/usr/bin/env perl -use strict; -use warnings; - -use Test2::Bundle::More; -use FindBin qw($Bin); -use lib $Bin, "$Bin/local/lib/perl5"; - -my $module = 'Palindrome'; -use Palindrome; - -#plan 15; -# -#ok -e "$Bin/$module.pm", "Missing $module.pm" -# or BAIL_OUT "You need to create file: $module.pm"; -# -#eval "use $module"; -#ok !$@, "Cannot load $module" -# or BAIL_OUT -# "Cannot load $module. Does it compile? Does it end with 1;?"; -# -#can_ok $module, "new" -# or BAIL_OUT "Missing package $module or missing sub new()"; -#can_ok $module, "largest" -# or BAIL_OUT "Missing package $module or missing sub largest()"; -#can_ok $module, "smallest" -# or BAIL_OUT "Missing package $module or missing sub smallest()"; - -my $palindrome; -my ( $largest, $smallest ); - -#$palindrome = $module->new( { max_factor => 9 } ); -#$largest = $palindrome->largest; -#is $largest->{value}, 9, -# "largest palindrome value from single digit factors"; -#is_deeply( -# $largest->{factors}, -# [ [ 1, 9 ], [ 3, 3 ] ], -# "largest single digit palindrome factors" -#) or diag explain $largest->{factors}; - -$palindrome = $module->new( { max_factor => 9, min_factor => 1 } ); -$largest = $palindrome->largest; -print "largest palindrome product, which should be 9, is '$largest->{value}'\n"; -#is $largest->{value}, 9009, -# "largest palindrome value from double digit factors"; -#is_deeply( -# [ sort @{ $largest->{factors} } ], -# [ [ 91, 99 ] ], -# "largest double digit palindrome factors" -#) or diag explain $largest->{factors}; - -#$palindrome -# = $module->new( { max_factor => 999, min_factor => 100 } ); -#$largest = $palindrome->largest; -#is $largest->{value}, 906609, -# "largest palindrome value from triple digit factors"; -#is_deeply( -# $largest->{factors}, -# [ [ 913, 993 ] ], -# "largest triple digit palindrome factors" -#) or diag explain $largest->{factors}; - -$palindrome = $module->new( { max_factor => 99, min_factor => 10 } ); -$smallest = $palindrome->smallest; -is $smallest->{value}, 121, - "smallest palindrome value from double digit factors"; -is_deeply( - $smallest->{factors}, - [ [ 11, 11 ] ], - "smallest double digit palindrome factors" -) or diag explain $smallest->{factors}; - -#$palindrome -# = $module->new( { max_factor => 999, min_factor => 100 } ); -#$smallest = $palindrome->smallest; -#is $smallest->{value}, 10201, -# "smallest palindrome value from triple digit factors"; -#is_deeply( -# $smallest->{factors}, -# [ [ 101, 101 ] ], -# "smallest triple digit palindrome factors" -#) or diag explain $smallest->{factors}; diff --git a/palindrome-products/ptest2.pl b/palindrome-products/ptest2.pl @@ -1,81 +0,0 @@ -#!/usr/bin/env perl -use strict; -use warnings; - -use Test2::Bundle::More; -use FindBin qw($Bin); -use lib $Bin, "$Bin/local/lib/perl5"; - -my $module = 'Palindrome'; - -plan 9; - -ok -e "$Bin/$module.pm", "Missing $module.pm" - or BAIL_OUT "You need to create file: $module.pm"; - -eval "use $module"; -ok !$@, "Cannot load $module" - or BAIL_OUT - "Cannot load $module. Does it compile? Does it end with 1;?"; - -can_ok $module, "new" - or BAIL_OUT "Missing package $module or missing sub new()"; -can_ok $module, "largest" - or BAIL_OUT "Missing package $module or missing sub largest()"; -can_ok $module, "smallest" - or BAIL_OUT "Missing package $module or missing sub smallest()"; - -my $palindrome; -my ( $largest, $smallest ); - -$palindrome = $module->new( { max_factor => 9 } ); -$largest = $palindrome->largest; -is $largest->{value}, 9, - "largest palindrome value from single digit factors"; -is_deeply( - $largest->{factors}, - [ [ 1, 9 ], [ 3, 3 ] ], - "largest single digit palindrome factors" -) or diag explain $largest->{factors}; - -$palindrome = $module->new( { max_factor => 99, min_factor => 10 } ); -$largest = $palindrome->largest; -is $largest->{value}, 9009, - "largest palindrome value from double digit factors"; -is_deeply( - [ sort @{ $largest->{factors} } ], - [ [ 91, 99 ] ], - "largest double digit palindrome factors" -) or diag explain $largest->{factors}; - -#$palindrome -# = $module->new( { max_factor => 999, min_factor => 100 } ); -#$largest = $palindrome->largest; -#is $largest->{value}, 906609, -# "largest palindrome value from triple digit factors"; -#is_deeply( -# $largest->{factors}, -# [ [ 913, 993 ] ], -# "largest triple digit palindrome factors" -#) or diag explain $largest->{factors}; -# -#$palindrome = $module->new( { max_factor => 99, min_factor => 10 } ); -#$smallest = $palindrome->smallest; -#is $smallest->{value}, 121, -# "smallest palindrome value from double digit factors"; -#is_deeply( -# $smallest->{factors}, -# [ [ 11, 11 ] ], -# "smallest double digit palindrome factors" -#) or diag explain $smallest->{factors}; -# -#$palindrome -# = $module->new( { max_factor => 999, min_factor => 100 } ); -#$smallest = $palindrome->smallest; -#is $smallest->{value}, 10201, -# "smallest palindrome value from triple digit factors"; -#is_deeply( -# $smallest->{factors}, -# [ [ 101, 101 ] ], -# "smallest triple digit palindrome factors" -#) or diag explain $smallest->{factors};