Branch Coverage

lib/Data/Deep.pm
Criterion Covered Total %
branch 285 358 79.6


line true false branch
248 0 0 unless @_ and $$Data::Deep::CFG{'zap'} = shift()
266 137 9 unless @_ and $$Data::Deep::CFG{'o_complex'} = shift()
12738 0 unless @_ and $$Data::Deep::CFG{'o_debug'} = shift()
0 1 unless @_ and $$Data::Deep::CFG{'o_follow_ref'} = shift()
317 11366 0 unless o_debug
320 0 0 $^O =~ /win/i ? :
326 0 0 unless (ref $l and out__("\n" . __d($l)))
328 0 0 if (length $l > $CONSOLE_LINE) { }
457 1 3 unless @_ and $$CFG{'o_key'} = shift()
623 8389 4687 unless ref $r
627 66 4621 if (exists $loop_ref{$r})
668 91 20 if ($ref)
669 49 42 if (not defined $open) { }
21 21 elsif ($open == 1) { }
21 0 elsif ($open == 0) { }
670 4 45 if $_[-1] eq '$loop'
671 2 43 if $ref eq 'CODE'
673 0 43 if $ref eq 'GLOB'
676 10 11 if $ref eq 'ARRAY'
677 9 2 if $ref eq 'HASH'
688 1 62 unless defined $node and $node = "'${node}'"
697 20 43 if $_[-2] eq '='
728 15774 7944 if ($ref)
729 9880 5894 if (not defined $open) { }
2947 2947 elsif ($open == 1) { }
2947 0 elsif ($open == 0) { }
730 681 0 if $realpack and $realtype and $id
732 566 9314 if $ref eq 'REF' or $ref eq 'SCALAR'
734 64 9250 if $ref eq 'CODE'
736 56 9194 if ($_[-1] eq '$loop')
740 4528 4666 if ($ref eq 'HASH' and $_[-2] eq '%')
744 1295 3233 if $is_first
750 3286 1373 if $ref eq 'ARRAY' and $_[-2] eq '@' and $_[-1] != 0
754 1544 1403 if $ref eq 'ARRAY'
755 1366 37 if $ref eq 'HASH'
757 0 37 if $realtype eq 'ARRAY'
758 37 0 if $realtype eq 'HASH'
761 1544 1403 if $ref eq 'ARRAY'
762 1366 37 if $ref eq 'HASH'
764 0 37 if $realtype eq 'ARRAY'
765 37 0 if $realtype eq 'HASH'
770 175 7769 unless defined $node
772 7769 0 if ($_[-2] eq '=')
774 4744 3025 if $node =~ /^\d+$/
797 7 26 defined $open ? :
7 33 $open == 1 ? :
850 9886 1840 if (@path) { }
865 315076 0 if (defined $_)
866 0 315076 unless $is_array
886 40 3 if ($realpack and $realtype and $id)
890 0 40 if ($realtype eq 'SCALAR') { }
40 0 elsif ($realtype eq 'HASH') { }
0 0 elsif ($realtype eq 'ARRAY') { }
913 60 11666 if (loop_det $where) { }
921 7973 3693 if (not $ref_type) { }
1418 2275 elsif ($ref_type eq 'HASH') { }
1557 718 elsif ($ref_type eq 'ARRAY') { }
572 146 elsif ($ref_type eq 'REF' or $ref_type eq 'SCALAR') { }
1005 66 80 if ($ref_type eq 'CODE') { }
80 0 elsif ($ref_type eq 'GLOB') { }
1022 80 66 if ($p[-2] eq '*')
1025 41 130 unless defined $gval
1026 57 73 if $k eq 'SCALAR' and not defined $$gval
1098 142 2599 unless @path
1100 0 2741 if defined $nb_occ and $nb_occ < 1
1109 676 2065 if ($ref_type) { }
1116 11 0 if ($realpack and $realtype and $id)
1127 2 674 if (loop_det $where) { }
272 402 elsif ($ref_type eq 'HASH') { }
263 139 elsif ($ref_type eq 'ARRAY') { }
110 29 elsif ($ref_type eq 'REF' or $ref_type eq 'SCALAR') { }
15 14 elsif ($ref_type eq 'CODE') { }
14 0 elsif ($ref_type eq 'GLOB') { }
1136 64 1340 if (defined &$matchPath($pattern, @p)) { }
1138 1 63 if defined $nb_occ and --$nb_occ < 1
1142 165 1175 if @res
1153 25 1145 if (defined &$matchPath($pattern, @p)) { }
1155 1 24 if defined $nb_occ and --$nb_occ < 1
1159 161 984 if @res
1178 4 10 if (defined *$where{'SCALAR'} and defined ${*$where{'SCALAR'};}) { }
4 6 elsif (defined *$where{'ARRAY'}) { }
4 2 elsif (defined *$where{'HASH'}) { }
1195 136 2070 if (defined &$matchPath($pattern, @p))
1197 135 1 if defined $nb_occ
1200 114 2092 if (defined $next)
1203 49 65 if @res
1216 20 88 unless my $father_nb = shift()
1270 0 153 unless ref $node eq 'ARRAY'
1280 0 153 if $@
1283 0 108 unless wantarray
1297 753 179 if (@_) { }
1304 55 124 if $$CFG{'o_complex'}
1346 0 0 unless $_ eq pop @a2 and unshift @common, $_
1359 8 94 if ($$p1{'action'} eq 'remove' and $$p2{'action'} eq 'add' and __d($$p1{'val_orig'}) eq __d($$p2{'val_dest'}))
1383 8 100 if $patch[$o]{'action'} eq 'erase' and splice @patch, $o, 1
1399 446 486 if ($ref_type)
1401 67 379 if $ref_type ne ref $d2
1410 2 0 if ($realpack and $realtype and $id)
1414 0 2 if $realtype ne $realtype2
1428 486 379 if (not $ref_type) { }
167 212 elsif ($ref_type eq 'HASH') { }
132 80 elsif ($ref_type eq 'ARRAY') { }
65 15 elsif ($ref_type eq 'REF' or $ref_type eq 'SCALAR') { }
14 1 elsif ($ref_type eq 'GLOB') { }
1 0 elsif ($ref_type eq 'CODE') { }
1430 83 403 if defined $d1 and $d1 ne $d2
1431 2 401 if not defined $d1 and defined $d2
1444 334 22 if (exists $$d2{$k}) { }
1446 0 334 if loop_det $$d1{$k}, @p1
1461 334 23 if exists $seen{$k}
1467 132 35 unless $do_resolv_patch
1474 63 69 unless ($$CFG{'o_complex'})
1477 4 59 if $#{$d2;} < $min
1482 2 118 if loop_det $$d1[$i], @p1
1512 155 6 if (exists $$d2[$i])
1515 153 2 unless loop_det $val1, @p1
1522 29 126 if (@res) { }
1532 24 78 if $i == $j
1533 17 61 if defined $seen_dst[$j]
1535 15 46 unless (compare($val1, $$d2[$j], [@p1, '@', $i], [@p2, '@', $j]))
1548 20 0 unless defined $seen_src[$i]
1563 141 24 if defined $seen_dst[$i]
1575 6 63 if $#seen_src > $max
1581 17 12 if (ref $res_Eq[$_] and ref $src and ref $dst)
1589 12 0 if $$src{'action'} eq 'remove' and $$dst{'action'} eq 'add' and push @msg, @{$res_Eq[$_];}
1592 23 136 if ref $src
1593 12 147 if ref $dst
1596 55 14 unless $do_resolv_patch
1602 0 65 if (loop_det $$d1, @p1) { }
1610 61 4 unless $do_resolv_patch
1628 5 9 if (defined *$d1{'SCALAR'} and defined ${*$d1{'SCALAR'};}) { }
4 5 elsif (defined *$d1{'ARRAY'}) { }
5 0 elsif (defined *$d1{'HASH'}) { }
0 0 elsif (defined *$d1{'GLOB'}) { }
1639 0 0 if loop_det $g_d1, @p1
1645 4 10 if (defined *$d2{'SCALAR'} and defined ${*$d2{'SCALAR'};}) { }
5 5 elsif (defined *$d2{'ARRAY'}) { }
5 0 elsif (defined *$d2{'HASH'}) { }
0 0 elsif (defined *$d2{'GLOB'}) { }
1663 14 0 unless $do_resolv_patch
1713 0 145 unless defined $p
1716 25 120 unless ref $p eq 'HASH'
1722 0 145 if $@
1743 12 11 if ($type eq '@') { }
1755 4 0 if (${$$a{'path_orig'};}[-2] eq '@')
1769 8 8 if ($type eq '@') { }
1803 0 41 if $@
1858 531 74 unless defined $$CFG{'o_key'}
1860 0 74 unless %{$$CFG{'o_key'};}
1890 79 1752 if (defined $min_index)
1956 0 262 unless exists $$patch{'action'}
1971 168 94 if ($action eq 'remove' or $action eq 'change')
1978 130 132 if $action eq 'change'
1980 193 69 if ($action eq 'add' or $action eq 'change')
1990 0 0 unless ref $patch eq 'HASH' and do { die 'domPatch2TEXT(): bad internal dom structure ' . __d($patch) unless exists $$patch{'action'}; my $action = $$patch{'action'}; my $v1 = $$patch{'val_orig'}; my $v2 = $$patch{'val_dest'}; my $txt = $action . '(' . patternDom2Text($$patch{'path_orig'}) . ',' . patternDom2Text($$patch{'path_dest'}) . ')='; if ($action eq 'remove' or $action eq 'change') { $v1 = __d($v1); $v1 =~ s[/=>][/\\054>]g; $v1 =~ s/\s=>\s/=>/gs; $txt .= $v1; } ; $txt .= '/=>' if $action eq 'change'; if ($action eq 'add' or $action eq 'change') { $v2 = __d($v2); $v2 =~ s[/=>][/\\054>]g; $v2 =~ s/\s=>\s/=>/gs; $txt .= $v2; } ; push @res, $txt; next }
1997 260 2 if wantarray
2032 0 0 unless /^add$/ and $msg .= __d($$patch{'val_orig'}) . ' added' or /^remove$/ and $msg .= __d($$patch{'val_orig'}) . ' removed' or /^move$/ and $msg .= 'Moved '
2043 0 0 if ($l > $MAX_COLS) { }
2065 0 82 if ref $pathTxt
2106 12 70 if ref $$CFG{'o_key'}
2114 3 424 if (defined $path[-1] and $path[-1] =~ /^\?/ and /^[\=\%\$\@\%\*]/) { }
22 402 elsif ($_ eq '$') { }
3 399 elsif ($_ eq '?') { }
3 396 elsif ($_ eq '&') { }
144 252 elsif (m[([%\@\=\|\*/])]) { }
2130 3 249 if ($path[-2] eq '/' and exists $keys{$path[-1]})
2143 56 263 if ($path[$i] eq '@') { }
16 247 elsif ($path[$i] eq '/') { }
2148 0 16 unless exists $keys{$keyname}
2201 0 27 unless defined $patch
2206 0 27 unless $patch =~ s/^(\w+)\(//
2210 27 0 if $patch =~ s/^([^,]*?),//
2213 27 0 if $patch =~ s/^([^\(]*?)\)=//
2216 27 0 if ($action ne 'move')
2218 19 8 if ($i == -1) { }
2219 2 17 unless $action eq 'add' and $v2 = $patch
2227 0 27 if $@
2230 0 27 if $@
2236 27 0 if wantarray