Branch Coverage

blib/lib/Class/EHierarchy.pm
Criterion Covered Total %
branch 220 316 69.6


line true false branch
105 4 20 @recoveredIDs ? :
115 10 14 if $id == 0
126 0 24 unless defined $isaref
128 7 17 if $tclass ne 'Class::EHierarchy' and "$tclass"->isa('Class::EHierarchy')
139 0 7 unless defined $isaref
141 0 7 if $nclass ne 'Class::EHierarchy' and "$nclass"->isa('Class::EHierarchy')
172 5 19 if defined $pid
173 0 24 if @children
208 31 0 if defined $class and not grep(/^$class$/s, @{$objects[$$obj][3];})
236 0 9 if $child->isStale
237 9 0 if (not defined $objects[$$child][1]) { }
246 0 0 if ($objects[$$child][1] != $$obj)
272 9 0 if (defined $objects[$$child][1] and $objects[$$child][1] == $$obj)
300 1 3 if ($obj->isStale) { }
305 1 2 defined $parent ? :
323 1 80 if ($obj->isStale) { }
342 1 0 if ($obj->isStale) { }
347 0 0 if defined $parent
350 0 1 defined $parent ? :
363 1 98 if ($obj->isStale) { }
376 62 36 unless defined $parent
390 25 0 defined $id ? :
406 0 10 if ($obj->isStale) { }
411 1 9 if (grep {$$obj == $$_;} @children) { }
2 7 elsif (grep {$root eq $_;} @children) { }
0 7 elsif (grep {not defined $_ && $_->isa('Class::EHierarchy');} @children) { }
449 0 4 if ($obj->isStale) { }
454 0 4 if (grep {not defined $_ && $_->isa('Class::EHierarchy');} @children) { }
475 1 28 if ($obj->isStale) { }
507 31 0 unless ($classes{$tclass})
515 14 17 defined *{"${tclass}::_initialize";} ? :
525 0 31 unless $rv
547 8 23 if defined *{"${tclass}::_deconstruct";}
577 0 23 defined $alias ? :
594 4 20 if defined $alias and $amaps[$$root]{$alias} == $$obj
618 12 4 unless defined $aliases[$$child]
624 0 4 if (exists $amaps[$$root]{$alias} and $amaps[$$root]{$alias} != $$child) { }
655 0 11 if $$child == $$root
660 3 8 if (defined $alias)
663 3 0 if defined $alias and $amaps[$$root]{$alias} == $$child
681 0 6 if ($obj->isStale) { }
686 2 4 if (defined $aliases[$$obj] and length $aliases[$$obj]) { }
0 4 elsif (not defined $alias && length $alias) { }
702 1 3 if ($$root != $$obj)
707 0 1 if (exists $amaps[$$root]{$alias} and $amaps[$$root]{$alias} != $$obj) { }
733 0 32 if ($obj->isStale) { }
31 1 elsif (defined $alias) { }
740 25 6 if exists $amaps[$$root]{$alias}
741 25 6 if defined $rv
770 4 16 if $attr & 4
773 0 20 unless ($attr ^ 504) > 0
775 0 20 unless ($attr ^ 7) > 0
782 2 16 $attr & 32 ? :
2 18 $attr & 16 ? :
804 1 0 if ($rv) { }
805 1 0 if (defined $name and length $name) { }
832 90 0 if (defined $name and length $name) { }
836 7 83 if exists $properties[$$obj]{"$caller*$name"}
838 85 5 if (exists $properties[$$obj]{$name}) { }
848 1 65 "$caller"->isa($class) ? :
19 66 $caller eq $class ? :
854 81 4 if ($cscope >= $pscope) { }
888 25 6 if ($ptype != 16 and $ptype != 32) { }
892 24 1 if not $pundef or defined $val[0]
894 24 1 if ($rv)
897 2 0 $ptype == 128 ? :
2 2 $ptype == 256 ? :
2 4 $ptype == 64 ? :
15 6 $ptype == 8 ? :
3 21 !defined($val[0]) ? :
906 4 20 unless $rv
916 26 5 if ($rv)
917 3 23 if ($ptype == 16) { }
3 20 elsif ($ptype == 32) { }
941 24 0 if ($rv) { }
943 24 0 if (defined $name) { }
973 6 26 $ptype == 16 ? :
6 32 $ptype == 32 ? :
976 6 26 $ptype == 16 ? :
6 32 $ptype == 32 ? :
992 47 0 if (not $obj->isStale) { }
994 38 9 if (defined $name)
1002 12 35 wantarray ? :
1017 3 0 if ($rv) { }
1020 3 0 if (defined $name)
1021 3 0 if (ref $properties[$$obj]{$name}[2] eq 'ARRAY') { }
1048 1 0 if ($rv) { }
1051 1 0 if (defined $name)
1052 1 0 if (ref $properties[$$obj]{$name}[2] eq 'ARRAY') { }
1079 3 0 if ($rv) { }
1082 3 0 if (defined $name)
1083 3 0 if (ref $properties[$$obj]{$name}[2] eq 'ARRAY') { }
1112 1 0 if ($rv) { }
1115 1 0 if (defined $name)
1116 1 0 if (ref $properties[$$obj]{$name}[2] eq 'ARRAY') { }
1144 2 0 if ($rv) { }
1147 2 0 if (defined $name)
1148 2 0 if (ref $properties[$$obj]{$name}[2] eq 'HASH') { }
1176 1 0 if (not $obj->isStale) { }
1178 1 0 if (defined $name)
1179 1 0 if (ref $properties[$$obj]{$name}[2] eq 'HASH') { }
1209 2 0 if ($rv) { }
1211 2 0 if (defined $name)
1212 1 1 if (ref $properties[$$obj]{$name}[2] eq 'ARRAY') { }
1 0 elsif (ref $properties[$$obj]{$name}[2] eq 'HASH') { }
1248 2 0 if (not $obj->isStale) { }
1250 2 0 if (defined $name)
1251 1 1 if (ref $properties[$$obj]{$name}[2] eq 'ARRAY') { }
1 0 elsif (ref $properties[$$obj]{$name}[2] eq 'HASH') { }
1256 4 0 $k <= $l ? :
1266 2 0 exists $properties[$$obj]{$name}[2]{$k} ? :
1298 2 0 if ($rv) { }
1300 2 0 if (defined $name)
1301 1 1 if (ref $properties[$$obj]{$name}[2] eq 'ARRAY') { }
1 0 elsif (ref $properties[$$obj]{$name}[2] eq 'HASH') { }
1304 3 0 unless $k > $l
1336 2 0 if ($rv) { }
1338 2 0 if (defined $name)
1339 1 1 if (ref $properties[$$obj]{$name}[2] eq 'ARRAY') { }
1 0 elsif (ref $properties[$$obj]{$name}[2] eq 'HASH') { }
1373 2 1 if ($caller eq ref $obj or "$caller"->isa($obj))
1381 2 1 if ($caller eq ref $obj)
1414 5 26 defined *{"${class}::_properties";} ? :
1420 0 19 unless defined $prop
1422 0 19 unless (__declProperty($class, $obj, @$prop[1, 0]))
1431 7 12 if ($rv and defined $prop->[2])
1436 0 7 $pscope == 4 ? :
1444 1 5 $pattr == 32 ? :
1 6 $pattr == 16 ? :
1448 0 19 unless $rv
1487 9 0 if (defined $attr and defined $method and length $method) { }
1500 3 6 if exists $methods{$mfqn}
1502 6 0 if (defined $code)
1505 2 4 if ($attr == 4) { }
2 2 elsif ($attr == 2) { }
2 0 elsif ($attr == 1) { }
1510 2 3 if $caller eq $pkg
1522 3 2 if "$caller"->isa($pkg)
1539 6 0 if $rv
1563 6 0 if (defined $method and length $method) { }
1589 20 11 if exists $classes{$class}
1596 1 10 if defined *{"${class}::_methods";}
1601 0 3 unless defined $method
1602 0 3 unless (__declMethod($class, @$method[0, 1]))
1637 23 0 if $rv
1640 23 0 if $rv
1643 23 0 if $rv
1646 23 0 if $rv
1648 23 0 $rv ? :
1664 1 0 if $rv
1667 1 0 if $rv
1670 1 0 if $rv
1673 1 0 if $rv
1676 1 0 if $rv
1678 1 0 $rv ? :
1691 24 6 unless (not defined $$obj or $obj->isStale)
1694 5 0 if defined $_
1713 0 0 if defined $_