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   133 use strict;
  18         41  
  18         848  
2 18     18   134 use warnings;
  18         40  
  18         1479  
3              
4             package Test::Deep::ArrayElementsOnly 1.205;
5              
6 18     18   114 use Test::Deep::Ref;
  18         73  
  18         173  
7              
8             sub init
9             {
10 118     118 0 207 my $self = shift;
11              
12 118         214 my $val = shift;
13              
14 118         1296 $self->{val} = $val;
15             }
16              
17             sub descend
18             {
19 118     118 0 213 my $self = shift;
20 118         202 my $got = shift;
21              
22 118         238 my $exp = $self->{val};
23              
24 118         410 my $data = $self->data;
25              
26 118         337 for my $i (0..$#{$exp})
  118         450  
27             {
28 199         480 $data->{index} = $i;
29              
30 199         425 my $got_elem = $got->[$i];
31 199         357 my $exp_elem = $exp->[$i];
32              
33 199 100       502 return 0 unless Test::Deep::descend($got_elem, $exp_elem)
34             }
35              
36 78         245 return 1;
37             }
38              
39             sub render_stack
40             {
41 31     31 0 58 my $self = shift;
42 31         90 my ($var, $data) = @_;
43 31 100       114 $var .= "->" unless $Test::Deep::Stack->incArrow;
44 31         104 $var .= "[$data->{index}]";
45              
46 31         105 return $var;
47             }
48              
49             sub reset_arrow
50             {
51 31     31 0 95 return 0;
52             }
53              
54             1;
55              
56             __END__