Condition Coverage

blib/lib/Class/Prototyped.pm
Criterion Covered Total %
condition 77 119 64.7


and 3 conditions

line !l l&&!r l&&r condition
153 84 4 6 ref $class && substr(ref $class, 0, 5) ne 'PKG0x'
158 0 56 38 not grep({$$_[0] eq 'class*';} @$parsedSlots) and $classstar ne 'Class::Prototyped'
184 1 0 108 substr($package, 0, 5) eq 'PKG0x' and $package ne 'Class::Prototyped'
219 23 123 26 defined $code and $code != \&DESTROY
403 1 7 1 exists $$slots{$_[1]} and UNIVERSAL::isa($$slots{$_[1]}, 'CODE')
426 0 0 0 UNIVERSAL::isa($$slots{$_[1]}, 'CODE') and (caller 0)[0] ne 'Data::Dumper'
571 2 0 0 $package eq $_[0] and scalar keys %{"${package}::";} == 0
681 5 1 0 scalar grep({UNIVERSAL::isa($_, 'Class::Prototyped');} @$isa) and $$isa[-1] ne 'Class::Prototyped'
695 2 3 1 scalar @isa and $isa[-1] eq 'Class::Prototyped'
990 142 71 35 $slotType eq 'METHOD' and substr($slotName, -1) eq '!'
996 171 77 0 $slotType eq 'FIELD' and substr($slotName, -1) eq '&'
1003 183 61 4 $slotType eq 'PARENT' and substr($slotName, -2) eq '**'
1009 238 172 0 $slotType eq 'METHOD' and exists $Class::Prototyped::overloadable_symbols{$slotName}
1013 410 0 0 $$slotAttribs{'overload'} and not exists $Class::Prototyped::overloadable_symbols{$slotName}
1017 407 0 3 (substr($slotName, -1) eq '*') != ($slotType eq 'PARENT') and not $$slotAttribs{'overload'}
1061 401 0 0 exists $Class::Prototyped::overloadable_symbols{$slotName} and $slotType ne 'METHOD'
1068 0 0 2 ref \$slotValue eq 'SCALAR' and defined $slotValue
1082 169 0 0 $slotName eq 'DESTROY' and substr($package, 0, 5) eq 'PKG0x'
1204 94 0 0 $$parentOrder[$index] ne $slot and $index++ < @$parentOrder

or 2 conditions

line l !l condition
252 2 137 $_[1] || {'package', undef, 'isa', undef, 'parentOrder', [], 'otherOrder', [], 'slots', {}, 'types', {}, 'attribs', {}, 'defaults', undef, 'vivified_parents', 0, 'vivified_methods', 0}
476 0 3 $Class::Prototyped::Mirror::mirrors{$entity} ||= bless(\$entity, 'Class::Prototyped::Mirror')
513 8 29 $Class::Prototyped::Mirror::mirrors{$entity} ||= bless(\$object, 'Class::Prototyped::Mirror')
941 153 10 $$slotThing[1] || ''
1370 20 4 shift() || []
1371 20 4 shift() || {}
1478 0 3 $mirror->class || 'Class::Prototyped'

or 3 conditions

line l !l&&r !l&&!r condition
148 75 14 21 scalar @_ || $isClone
170 199 916 0 $Class::Prototyped::Mirror::mirrors{$_[0]} || 'Class::Prototyped::Mirror'->new($_[0])
198 55 36 0 ref $parent || $parent
566 2 0 0 {'default', 'Class::Prototyped::Tied::Default', 'autovivify', 'Class::Prototyped::Tied::AutoVivify'}->{$_[0]} || $_[0]
700 3 0 9 exists $$slots{$slot} or $slot eq 'self*'
726 0 0 1 not UNIVERSAL::isa($$slots{$slot}, 'CODE') or $$slots{$slot} != $code
942 57 46 60 $temp eq 'METHOD' or $temp eq 'FIELD'
103 20 40 $temp eq 'METHOD' or $temp eq 'FIELD' or $temp eq 'PARENT'
1021 9 1 0 ref $slotValue || $slotValue
1068 94 0 2 UNIVERSAL::isa($slotValue, 'Class::Prototyped') or ref \$slotValue eq 'SCALAR' and defined $slotValue
1105 58 38 0 ref $slotValue || $slotValue
1117 0 0 38 ref $slotValue or scalar keys %{"${parentPackage}::";}
1410 0 0 150 not defined $format or $format eq 'default'
1432 0 24 22 defined $type or defined $format
1456 0 0 0 $seen{$slot} > 1 or not exists $$slots{$slot}
1525 6 3 0 $mirror->getSlot($value) || $value