aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-106/lance-wicks/perl/ch-1.pl9
-rw-r--r--challenge-106/lance-wicks/perl/lib/Maxgap.pm20
-rw-r--r--challenge-106/lance-wicks/perl/t/01-max_gap.t19
3 files changed, 48 insertions, 0 deletions
diff --git a/challenge-106/lance-wicks/perl/ch-1.pl b/challenge-106/lance-wicks/perl/ch-1.pl
new file mode 100644
index 0000000000..185f23a01d
--- /dev/null
+++ b/challenge-106/lance-wicks/perl/ch-1.pl
@@ -0,0 +1,9 @@
+use strict;
+use warnings;
+
+use lib './lib';
+use Maxgap;
+
+my $maxgap = Maxgap::maxgap(@ARGV);
+
+print "Output: $maxgap\n";
diff --git a/challenge-106/lance-wicks/perl/lib/Maxgap.pm b/challenge-106/lance-wicks/perl/lib/Maxgap.pm
new file mode 100644
index 0000000000..db51d4bf36
--- /dev/null
+++ b/challenge-106/lance-wicks/perl/lib/Maxgap.pm
@@ -0,0 +1,20 @@
+package Maxgap;
+
+sub maxgap {
+ my ($self, @integers) = @_;
+
+ @integers = sort @integers;
+
+ my $maxgap = 0;
+ for my $i (1 .. @integers-1){
+ my $gap = $integers[$i] - $integers[$i-1];
+ if ( $gap > $maxgap) {
+ $maxgap = $gap;
+ }
+ }
+
+ return $maxgap;
+}
+
+
+1;
diff --git a/challenge-106/lance-wicks/perl/t/01-max_gap.t b/challenge-106/lance-wicks/perl/t/01-max_gap.t
new file mode 100644
index 0000000000..e349d01d12
--- /dev/null
+++ b/challenge-106/lance-wicks/perl/t/01-max_gap.t
@@ -0,0 +1,19 @@
+use Test2::V0 -target => Maxgap;
+
+my @example1 = (2, 9, 3, 5);
+my $expected1 = 4;
+
+is $CLASS->maxgap(@example1), $expected1, 'Example 1';
+
+my @example2 = (1, 3, 8, 2, 0);
+my $expected2 = 5;
+
+is $CLASS->maxgap(@example2), $expected2, 'Example 2';
+
+
+my @example3 = (5);
+my $expected3 = 0;
+
+is $CLASS->maxgap(@example3), $expected3, 'Example 3';
+
+done_testing;