Condition Coverage

blib/lib/Object/InsideOut.pm
Criterion Covered Total %
condition 160 282 56.7


and 3 conditions

line !l l&&!r l&&r condition
328 2590 7 3 my($restrict) = grep(/^RESTRICT(?:ED)?$/i, @attrs) and grep {$_ =~ /^CHAIN(?:ED)?$/i unless $_ =~ /^CUM(?:ULATIVE)?$/i;} @attrs
343 162 0 483 $attr =~ /^METHOD/ and $attribute ne 'method'
370 31 2 8 $arg && $arg =~ /BOTTOM/i
374 18 0 11 $arg && $arg =~ /BOTTOM/i
456 2600 0 0 @unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_CODE_ATTRIBUTES')
561 71 0 0 @unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_HASH_ATTRIBUTES')
658 195 0 0 @unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_ARRAY_ATTRIBUTES')
778 19 52 165 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID and not exists $$obj_ids{$id_subs->{$class}{'pkg'}}
846 0 0 0 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID && $id_subs->{$pkg}{'code'} == \&Object::InsideOut::_ID
916 0 0 0 exists $id_subs->{$flag_class} and $id_subs->{$flag_class}{'code'} == \&Object::InsideOut::_ID
936 0 0 0 not exists $GBL{'share'}{'obj'} and $] < 5.008009 || $threads::shared::VERSION lt '1.15'
1060 1358 570 0 *{$class_sym;}{'CODE'} and *{$class_sym;}{'CODE'} != \&{$sym;}
1103 53 0 2 defined $Want::VERSION && $Want::VERSION >= 0.12
1116 46 322 2 ref $fld eq 'ARRAY' and $do_ho
1133 368 0 0 is_sharing($pkg) and not threads::shared::is_shared($fld)
1236 0 0 0 $sharing and $threads::shared::threads_shared
0 0 0 $sharing and $threads::shared::threads_shared and $threads::shared::VERSION ge '0.95'
1251 0 0 0 exists $sh_cl->{$class} && $sh_cl->{$class}{'share'}
1276 0 0 0 $threads::shared::threads_shared and not $GBL{'share'}{'ok'}
1887 268 68 0 $fld_type ne 'ARRAY' and $fld_type ne 'HASH'
1895 333 3 0 $weak and not ref $data
1902 336 0 0 $GBL{'share'}{'ok'} and threads::shared::is_shared($field)
1945 225 0 0 $threads::shared::threads_shared and not $GBL{'term'}
2156 214 4 0 exists $dump->{$name} and $fld != $dump->{$name}{'fld'}
2244 9 18 13 not /^(?:new|clone|meta|set)$/ and $methods->{$_}{'class'} eq $class_delegated_to
2259 109 2 5 $kind =~ /^Type/i and $decl =~ /^(?:sub|\\&)/
2370 52 10 0 ref $val and ref $val ne 'CODE'
2447 0 5 9 $val and not &Scalar::Util::looks_like_number($val)
2502 46 0 14 $fld_type->{$field_ref} and not exists $g_args->{$arg}{'_T'}
2557 139 30 0 $return || $lvalue and not $set
2607 3 2 0 $type ne 'list' and $type ne 'ARRAY'
164 5 0 $subtype and ($type ne 'list' and $type ne 'ARRAY')
2617 3 27 88 $get && $get eq $set
2632 7 162 0 $get and !$set || $get ne $set
2669 3 24 77 $get and $get eq $set
2747 7 162 0 $get and !$set || $get ne $set
2855 19 2 3 $type eq 'HASH' and not $is_ref

or 2 conditions

line l !l condition
192 1 1 $1 || ''
204 1 0 $1 || ''
345 1 4 $arg || 'HIDDEN'
350 0 1 $arg || 'HIDDEN'
354 2 19 $arg || 'HIDDEN'
358 0 1 $arg || 'HIDDEN'
362 0 2 $arg || 'HIDDEN'
366 0 13 $arg || 'HIDDEN'
379 0 2 $arg || 'HIDDEN'
383 0 2 $arg || 'HIDDEN'
423 0 3 $arg || 'HIDDEN'
428 0 1 $arg || 'HIDDEN'
995 4 9 $info->{'exempt'} || ''
1012 1 1428 $info->{'exempt'} || ''
2524 171 64 $dump->{$pkg} ||= {}

or 3 conditions

line l !l&&r !l&&!r condition
146 0 0 194 not $class or $class eq 'main'
831 0 0 660 $id_subs->{$class}{'code'} != $id_subs->{$pkg}{'code'} or $id_subs->{$class}{'pkg'} ne $id_subs->{$pkg}{'pkg'}
835 0 0 0 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID or $id_subs->{$pkg}{'code'} == \&Object::InsideOut::_ID
936 0 0 0 $] < 5.008009 || $threads::shared::VERSION lt '1.15'
960 0 479 0 $info->{'name'} ||= sub_name($info->{'code'}, ':METHOD', $info->{'loc'})
968 0 1848 0 $info->{'name'} ||= sub_name($info->{'code'}, ':SUB', $info->{'loc'})
976 0 82 0 $info->{'name'} ||= sub_name($info->{'code'}, ':MergeArgs', $info->{'loc'})
991 5 8 0 $info->{'name'} ||= sub_name($info->{'code'}, ':RESTRICTED', $info->{'loc'})
1008 1417 12 0 $info->{'name'} ||= sub_name($info->{'code'}, ':PRIVATE', $info->{'loc'})
1025 0 48 0 $info->{'name'} ||= sub_name($info->{'code'}, ':HIDDEN', $info->{'loc'})
1069 187 13 640 $sym eq 'clone' or $sym eq 'dump'
8 32 600 $sym =~ /^STORABLE_/ or $sym eq 'AUTOLOAD'
39 187 374 $sym =~ /herit/ or $sym eq 'set'
1335 0 0 0 not $g_id->[$tid] or $g_id->[$tid] < $$obj
1509 0 0 3 $@ or @errs
1510 0 0 0 $@ || join(' | ', @errs)
1559 0 2 14 $@ or @errs
1560 0 2 0 $@ || join(' | ', @errs)
1663 0 219 0 ref $thing || $thing
1682 2 110 107 $cache{'pre'} or not $have_cache
1702 22 110 87 $cache{'def'} or not $have_cache
1814 4 0 3 $is_deep || $deep->{$fld}
1850 10 0 9 ref $_[0] || $_[0]
1887 0 0 336 not $fld_type or $fld_type ne 'ARRAY' and $fld_type ne 'HASH'
1983 0 0 0 $_ == 0 or 'threads'->object($_)
2058 53 0 172 $err or $@
2294 0 0 235 $@ or @errs
2295 0 0 0 $@ || join(' | ', @errs)
2330 0 0 120 $key_uc eq 'COPY' or $key_uc eq 'CLONE'
2370 0 0 62 not $val or ref $val and ref $val ne 'CODE'
2478 0 0 222 not defined $val or $val eq ''
2487 22 38 175 $arg or $kind =~ /^ARG$/i
2527 0 4 27 $return || $lvalue || $delegate
2535 24 0 39 $get or $set
0 0 39 $get or $set or $return
0 0 39 $get or $set or $return or $lvalue
2557 28 2 139 $return || $lvalue
2579 141 9 19 not defined $return or $return eq 'NEW'
8 2 9 $return eq 'OLD' or $return =~ /^PREV(?:IOUS)?$/
10 0 9 $return eq 'OLD' or $return =~ /^PREV(?:IOUS)?$/ or $return eq 'PRIOR'
3 6 0 $return eq 'SELF' or $return =~ /^OBJ(?:ECT)?$/
2632 47 27 88 !$set || $get ne $set
2747 47 27 88 !$set || $get ne $set
2796 0 0 169 $@ or @errs
2797 0 0 0 $@ || join(' | ', @errs)
3042 2 11 26 grep {$_ eq $caller;} @$exempt or $caller->isa($pkg)
13 22 4 grep {$_ eq $caller;} @$exempt or $caller->isa($pkg) or $pkg->isa($caller)