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
324 2590 7 3 my($restrict) = grep(/^RESTRICT(?:ED)?$/i, @attrs) and grep {$_ =~ /^CHAIN(?:ED)?$/i unless $_ =~ /^CUM(?:ULATIVE)?$/i;} @attrs
339 162 0 483 $attr =~ /^METHOD/ and $attribute ne 'method'
366 31 2 8 $arg && $arg =~ /BOTTOM/i
370 18 0 11 $arg && $arg =~ /BOTTOM/i
452 2600 0 0 @unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_CODE_ATTRIBUTES')
557 71 0 0 @unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_HASH_ATTRIBUTES')
654 195 0 0 @unused_attrs and 'Attribute::Handlers::UNIVERSAL'->can('MODIFY_ARRAY_ATTRIBUTES')
774 19 52 165 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID and not exists $$obj_ids{$id_subs->{$class}{'pkg'}}
842 0 0 0 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID && $id_subs->{$pkg}{'code'} == \&Object::InsideOut::_ID
912 0 0 0 exists $id_subs->{$flag_class} and $id_subs->{$flag_class}{'code'} == \&Object::InsideOut::_ID
932 0 0 0 not exists $GBL{'share'}{'obj'} and $] < 5.008009 || $threads::shared::VERSION lt '1.15'
1056 1492 436 0 *{$class_sym;}{'CODE'} and *{$class_sym;}{'CODE'} != \&{$sym;}
1099 53 0 2 defined $Want::VERSION && $Want::VERSION >= 0.12
1112 46 322 2 ref $fld eq 'ARRAY' and $do_ho
1129 368 0 0 is_sharing($pkg) and not threads::shared::is_shared($fld)
1232 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'
1247 0 0 0 exists $sh_cl->{$class} && $sh_cl->{$class}{'share'}
1272 0 0 0 $threads::shared::threads_shared and not $GBL{'share'}{'ok'}
1883 269 66 0 $fld_type ne 'ARRAY' and $fld_type ne 'HASH'
1891 332 3 0 $weak and not ref $data
1898 335 0 0 $GBL{'share'}{'ok'} and threads::shared::is_shared($field)
1941 225 0 0 $threads::shared::threads_shared and not $GBL{'term'}
2152 214 4 0 exists $dump->{$name} and $fld != $dump->{$name}{'fld'}
2240 9 18 13 not /^(?:new|clone|meta|set)$/ and $methods->{$_}{'class'} eq $class_delegated_to
2255 109 2 5 $kind =~ /^Type/i and $decl =~ /^(?:sub|\\&)/
2366 52 10 0 ref $val and ref $val ne 'CODE'
2443 0 5 9 $val and not &Scalar::Util::looks_like_number($val)
2498 46 0 14 $fld_type->{$field_ref} and not exists $g_args->{$arg}{'_T'}
2553 139 30 0 $return || $lvalue and not $set
2603 3 2 0 $type ne 'list' and $type ne 'ARRAY'
164 5 0 $subtype and ($type ne 'list' and $type ne 'ARRAY')
2613 3 27 88 $get && $get eq $set
2628 7 162 0 $get and !$set || $get ne $set
2665 3 24 77 $get and $get eq $set
2743 7 162 0 $get and !$set || $get ne $set
2851 19 2 3 $type eq 'HASH' and not $is_ref

or 2 conditions

line l !l condition
188 1 1 $1 || ''
200 1 0 $1 || ''
341 1 4 $arg || 'HIDDEN'
346 0 1 $arg || 'HIDDEN'
350 2 19 $arg || 'HIDDEN'
354 0 1 $arg || 'HIDDEN'
358 0 2 $arg || 'HIDDEN'
362 0 13 $arg || 'HIDDEN'
375 0 2 $arg || 'HIDDEN'
379 0 2 $arg || 'HIDDEN'
419 0 3 $arg || 'HIDDEN'
424 0 1 $arg || 'HIDDEN'
991 4 9 $info->{'exempt'} || ''
1008 1 1428 $info->{'exempt'} || ''
2520 171 64 $dump->{$pkg} ||= {}

or 3 conditions

line l !l&&r !l&&!r condition
142 0 0 194 not $class or $class eq 'main'
827 0 0 662 $id_subs->{$class}{'code'} != $id_subs->{$pkg}{'code'} or $id_subs->{$class}{'pkg'} ne $id_subs->{$pkg}{'pkg'}
831 0 0 0 $id_subs->{$class}{'code'} == \&Object::InsideOut::_ID or $id_subs->{$pkg}{'code'} == \&Object::InsideOut::_ID
932 0 0 0 $] < 5.008009 || $threads::shared::VERSION lt '1.15'
956 0 479 0 $info->{'name'} ||= sub_name($info->{'code'}, ':METHOD', $info->{'loc'})
964 0 1848 0 $info->{'name'} ||= sub_name($info->{'code'}, ':SUB', $info->{'loc'})
972 0 82 0 $info->{'name'} ||= sub_name($info->{'code'}, ':MergeArgs', $info->{'loc'})
987 5 8 0 $info->{'name'} ||= sub_name($info->{'code'}, ':RESTRICTED', $info->{'loc'})
1004 1417 12 0 $info->{'name'} ||= sub_name($info->{'code'}, ':PRIVATE', $info->{'loc'})
1021 0 48 0 $info->{'name'} ||= sub_name($info->{'code'}, ':HIDDEN', $info->{'loc'})
1065 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'
1331 0 0 0 not $g_id->[$tid] or $g_id->[$tid] < $$obj
1505 0 0 3 $@ or @errs
1506 0 0 0 $@ || join(' | ', @errs)
1555 0 2 14 $@ or @errs
1556 0 2 0 $@ || join(' | ', @errs)
1659 0 219 0 ref $thing || $thing
1678 2 110 107 $cache{'pre'} or not $have_cache
1698 22 110 87 $cache{'def'} or not $have_cache
1810 4 0 3 $is_deep || $deep->{$fld}
1846 10 0 9 ref $_[0] || $_[0]
1883 0 0 335 not $fld_type or $fld_type ne 'ARRAY' and $fld_type ne 'HASH'
1979 0 0 0 $_ == 0 or 'threads'->object($_)
2054 53 0 172 $err or $@
2290 0 0 235 $@ or @errs
2291 0 0 0 $@ || join(' | ', @errs)
2326 0 0 120 $key_uc eq 'COPY' or $key_uc eq 'CLONE'
2366 0 0 62 not $val or ref $val and ref $val ne 'CODE'
2474 0 0 222 not defined $val or $val eq ''
2483 22 38 175 $arg or $kind =~ /^ARG$/i
2523 0 4 27 $return || $lvalue || $delegate
2531 24 0 39 $get or $set
0 0 39 $get or $set or $return
0 0 39 $get or $set or $return or $lvalue
2553 28 2 139 $return || $lvalue
2575 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)?$/
2628 47 27 88 !$set || $get ne $set
2743 47 27 88 !$set || $get ne $set
2792 0 0 169 $@ or @errs
2793 0 0 0 $@ || join(' | ', @errs)
3038 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)