File Coverage

blib/lib/Test/Deep/ArrayElementsOnly.pm
Criterion Covered Total %
statement 29 29 100.0
branch 4 4 100.0
condition n/a
subroutine 7 7 100.0
pod 0 4 0.0
total 40 44 90.9


line stmt bran cond sub pod time code
1 18     18   120 use strict;
  18         38  
  18         832  
2 18     18   109 use warnings;
  18         33  
  18         724  
3              
4             package Test::Deep::ArrayElementsOnly 1.202;
5              
6 18     18   113 use Test::Deep::Ref;
  18         35  
  18         107  
7              
8             sub init
9             {
10 118     118 0 199 my $self = shift;
11              
12 118         179 my $val = shift;
13              
14 118         956 $self->{val} = $val;
15             }
16              
17             sub descend
18             {
19 118     118 0 191 my $self = shift;
20 118         197 my $got = shift;
21              
22 118         211 my $exp = $self->{val};
23              
24 118         310 my $data = $self->data;
25              
26 118         198 for my $i (0..$#{$exp})
  118         369  
27             {
28 199         387 $data->{index} = $i;
29              
30 199         387 my $got_elem = $got->[$i];
31 199         295 my $exp_elem = $exp->[$i];
32              
33 199 100       438 return 0 unless Test::Deep::descend($got_elem, $exp_elem)
34             }
35              
36 78         205 return 1;
37             }
38              
39             sub render_stack
40             {
41 31     31 0 51 my $self = shift;
42 31         63 my ($var, $data) = @_;
43 31 100       95 $var .= "->" unless $Test::Deep::Stack->incArrow;
44 31         95 $var .= "[$data->{index}]";
45              
46 31         76 return $var;
47             }
48              
49             sub reset_arrow
50             {
51 31     31 0 99 return 0;
52             }
53              
54             1;
55              
56             __END__