Branch Coverage

blib/lib/Struct/Path.pm
Criterion Covered Total %
branch 110 110 100.0


line true false branch
120 2 7 if (ref $_[0] eq 'ARRAY') { }
6 1 elsif (ref $_[0] eq 'HASH') { }
121 1 1 unless @{$_[0];}
123 1 5 if exists $_[0]{'R'} and @{$_[0]{'R'};}
124 1 4 unless exists $_[0]{'K'}
125 1 3 unless @{$_[0]{'K'};}
157 4 3 defined $opts{'depth'} ? :
160 18 48 if (ref ${$ref;} eq 'HASH' and @{$path;} != $depth and keys %{${$ref;};}) { }
9 39 elsif (ref ${$ref;} eq 'ARRAY' and @{$path;} != $depth and @{${$ref;};}) { }
222 1 72 unless ref $path eq 'ARRAY'
224 1 71 if $opts{'delete'} and not @{$path;}
232 1 164 unless ref $refs->[-1]
235 72 92 if (($step_type = ref $step) eq 'ARRAY') { }
81 11 elsif ($step_type eq 'HASH') { }
10 1 elsif ($step_type eq 'CODE') { }
236 17 55 if (ref ${$refs->[-1];} ne 'ARRAY')
238 2 15 if $opts{'strict'}
239 8 7 unless $opts{'expand'}
243 51 11 @{$step;} ? :
245 68 5 $_ >= 0 ? :
7 80 unless ($opts{'expand'} or @{${$refs->[-1];};} > ($_ >= 0 ? $_ : abs $_ + 1))
249 2 5 if $opts{'strict'}
253 6 74 if ($_ < 0)
254 3 3 if (@{${$refs->[-1];};} < abs $_) { }
265 9 51 if ($opts{'delete'} and $sc == $#{$path;})
266 13 2 if $_ < @{${$refs->[-1];};}
270 9 72 if (ref ${$refs->[-1];} ne 'HASH')
272 2 7 if $opts{'strict'}
273 3 4 unless $opts{'expand'}
278 1 75 if @types != keys %{$step;}
282 2 66 unless (ref $step->{$t} eq 'ARRAY')
283 1 1 $t eq 'K' ? :
287 58 8 if ($t eq 'K') { }
289 4 59 if (ref $i eq 'Regexp') { }
293 6 39 unless ($opts{'expand'} or exists ${$$refs[-1];}->{$i})
294 1 5 if $opts{'strict'}
307 64 8 @types ? :
309 8 78 if $opts{'delete'} and $sc == $#{$path;}
314 7 3 if &$step($steps, $refs)
326 7 72 if exists $opts{'assign'}
328 2 77 if ($opts{'stack'}) { }
329 1 1 if $opts{'deref'}
331 5 72 $opts{'deref'} ? :
334 8 71 $opts{'paths'} ? :
352 1 15 unless ref $scnd eq 'ARRAY'
353 1 14 unless defined $frst
354 1 13 unless ref $frst eq 'ARRAY'
362 10 21 if (ref $frst->[$i] eq 'ARRAY') { }
18 3 elsif (ref $frst->[$i] eq 'HASH') { }
2 1 elsif (ref $frst->[$i] eq 'CODE') { }
363 2 8 unless @{$frst->[$i];} == @{$scnd->[$i];}
365 1 14 unless $frst->[$i][$_] == $scnd->[$i][$_]
368 2 16 unless @{$frst->[$i]{'K'};} == @{$scnd->[$i]{'K'};}
372 2 19 unless $frst->[$i]{'K'}[$_] eq $scnd->[$i]{'K'}[$_]
377 1 1 unless $deparse->coderef2text($frst->[$i]) eq $deparse->coderef2text($scnd->[$i])