Branch Coverage

blib/lib/Data/Hash/Patch/Smart/Engine.pm
Criterion Covered Total %
branch 66 140 47.1


line true false branch
24 0 46 unless my $op = $c->{'op'}
25 0 46 unless my $path = $c->{'path'}
34 12 34 if (grep {$_ eq "*";} @parts)
42 6 28 if ($leaf eq "*")
43 2 4 if ($op eq 'add') { }
4 0 elsif ($op eq 'remove') { }
54 23 5 if ($op eq 'change') { }
5 0 elsif ($op eq 'add') { }
0 0 elsif ($op eq 'remove') { }
68 0 46 if not defined $path or $path eq ""
87 32 9 $is_last ? :
92 39 2 if (ref $cur eq "HASH")
95 5 34 unless (exists $cur->{$p})
96 5 0 if ($opts->{'create_missing'}) { }
0 0 elsif ($opts->{'strict'}) { }
98 3 2 if (defined $next and $next =~ /^\d+$/) { }
119 2 0 if (ref $cur eq "ARRAY")
122 0 2 unless ($p =~ /^\d+$/)
124 0 0 if $opts->{'strict'}
129 1 1 if ($p > $cur->$#*)
130 1 0 if ($opts->{'create_missing'}) { }
0 0 elsif ($opts->{'strict'}) { }
135 0 1 if (defined $next and $next =~ /^\d+$/) { }
156 0 0 unless (defined $cur)
158 0 0 if $opts->{'strict'}
163 0 0 if $opts->{'strict'}
175 23 13 if (ref $parent eq "HASH")
176 1 1 if (not exists $parent->{$leaf} and $opts->{'strict'})
183 13 0 if (ref $parent eq "ARRAY")
184 1 12 if (not $leaf =~ /^\d+$/ or $leaf > $parent->$#*)
186 0 1 if $opts->{'strict'}
192 0 0 if $opts->{'strict'}
198 2 5 if (ref $parent eq "HASH")
199 0 0 if (exists $parent->{$leaf} and $opts->{'strict'})
206 5 0 if (ref $parent eq "ARRAY")
208 0 5 unless ($leaf =~ /^\d+$/)
210 0 0 if $opts->{'strict'}
215 5 0 if ($leaf > $parent->$#*)
224 0 0 if $opts->{'strict'}
230 2 0 if (ref $parent eq "HASH")
231 0 0 if (not exists $parent->{$leaf} and $opts->{'strict'})
238 0 0 if (ref $parent eq "ARRAY")
239 0 0 if (not $leaf =~ /^\d+$/ or $leaf > $parent->$#*)
246 0 0 if $opts->{'strict'}
254 0 2 unless ref $parent eq "ARRAY"
264 0 4 unless ref $parent eq "ARRAY"
268 0 0 unless (defined $parent->[$i] or defined $value)
272 3 4 if (defined $parent->[$i] and defined $value and $parent->[$i] eq $value)
278 1 0 if $opts->{'strict'}
294 0 0 if ($depth == @$parts)
299 0 0 if ($op eq 'change') { }
0 0 elsif ($op eq 'add') { }
0 0 elsif ($op eq 'remove') { }
318 0 0 if ($seg ne "*")
319 0 0 if (ref $cur eq 'HASH' and exists $cur->{$seg}) { }
0 0 elsif (ref $cur eq 'ARRAY' and $seg =~ /^\d+$/ and $seg <= $cur->$#*) { }
328 0 0 if (ref $cur eq 'HASH') { }
0 0 elsif (ref $cur eq 'ARRAY') { }
347 41 0 if (ref $cur)
349 2 39 if ($seen->{$addr}++)
351 2 0 if $opts->{'strict'}
357 17 22 if ($depth == @$parts)
364 13 9 if ($seg ne "*")
365 12 1 if (ref $cur eq 'HASH' and exists $cur->{$seg}) { }
0 1 elsif (ref $cur eq 'ARRAY' and $seg =~ /^\d+$/ and $seg <= $cur->$#*) { }
374 8 1 if (ref $cur eq 'HASH') { }
1 0 elsif (ref $cur eq 'ARRAY') { }
391 13 4 if ($op eq 'change') { }
2 2 elsif ($op eq 'add') { }
2 0 elsif ($op eq 'remove') { }