File Coverage

blib/lib/List/Utils/MoveElement/PP.pm
Criterion Covered Total %
statement 33 33 100.0
branch 16 24 66.6
condition 4 12 33.3
subroutine 8 8 100.0
pod 0 4 0.0
total 61 81 75.3


line stmt bran cond sub pod time code
1             package List::Utils::MoveElement::PP;
2              
3 1     1   72707 use 5.008;
  1         4  
4 1     1   5 use strict;
  1         2  
  1         20  
5 1     1   5 use warnings;
  1         2  
  1         57  
6             our @VERSION = 0.01;
7              
8 1     1   7 use Carp qw/croak/;
  1         1  
  1         388  
9              
10             sub to_beginning {
11 12     12 0 39 my ($i, @array) = @_;
12 12 50 33     54 croak 'Usage: to_beginning($n, @list)' if !defined($i) or !@array;
13 12 50       28 croak 'Array index out of range' if $i > $#array;
14 12 100       38 return @array if $i == 0; #no-op
15 10         95 return @array[$i, 0 .. $i-1, $i+1 .. $#array];
16             }
17              
18             sub to_end {
19 12     12 0 37 my ($i, @array) = @_;
20 12 50 33     58 croak 'Usage: to_end($n, @list)' if !defined($i) or !@array;
21 12 50       30 croak 'Array index out of range' if $i > $#array;
22 12 100       37 return @array if $i == $#array; #no-op
23 10         90 return @array[0 .. $i-1, $i+1 .. $#array, $i];
24             }
25              
26             sub left {
27 12     12 0 671 my ($i, @array) = @_;
28 12 50 33     61 croak 'Usage: move_left($n, @list)' if !defined($i) or !@array;
29 12 50       30 croak 'Array index out of range' if $i > $#array;
30 12 100       39 return @array if $i == 0; #no-op
31 10         29 ($array[$i-1], $array[$i]) = ($array[$i], $array[$i-1]);
32 10         73 return @array;
33             }
34              
35             sub right {
36 12     12 0 37 my ($i, @array) = @_;
37 12 50 33     56 croak 'Usage: move_left($n, @list)' if !defined($i) or !@array;
38 12 50       31 croak 'Array index out of range' if $i > $#array;
39 12 100       40 return @array if $i == $#array; #no-op
40 10         28 ($array[$i+1], $array[$i]) = ($array[$i], $array[$i+1]);
41 10         91 return @array;
42             }
43              
44             1;