diff options
| -rw-r--r-- | challenge-120/lance-wicks/perl/lib/Bits.pm | 20 | ||||
| -rw-r--r-- | challenge-120/lance-wicks/perl/t/01-bits.t | 12 |
2 files changed, 32 insertions, 0 deletions
diff --git a/challenge-120/lance-wicks/perl/lib/Bits.pm b/challenge-120/lance-wicks/perl/lib/Bits.pm new file mode 100644 index 0000000000..27a272d6cc --- /dev/null +++ b/challenge-120/lance-wicks/perl/lib/Bits.pm @@ -0,0 +1,20 @@ +package Bits; + +use Moo; + +sub swap { + my ($self,$n) = @_; + + my $binary = sprintf("%08b",$n); + my $reversed_binary; + my @bits = $binary =~ /(\d{2})/g; + for (@bits ) { + my $rev = reverse $_; + $reversed_binary .= $rev + } + + + return oct "0b$reversed_binary"; +} + +1; diff --git a/challenge-120/lance-wicks/perl/t/01-bits.t b/challenge-120/lance-wicks/perl/t/01-bits.t new file mode 100644 index 0000000000..e2bc3e9414 --- /dev/null +++ b/challenge-120/lance-wicks/perl/t/01-bits.t @@ -0,0 +1,12 @@ +use Test2::V0 -target => 'Bits'; + +subtest 'Example 1' => sub { + is $CLASS->swap(101),154,'101 returns 154'; + note "Binary rep of 101 is '01100101' swapped is '10011010' -> 154 in decimal"; +}; + +subtest 'Example 2' => sub { + is $CLASS->swap(18),33,'18 returns 33'; + note "Binary rep of 18 is '00010010' swapped is '00100001' -> 33 in decimal"; +}; +done_testing; |
