Condition Coverage

blib/lib/Class/Tangram.pm
Criterion Covered Total %
condition 140 274 51.0


and 3 conditions

line !l l&&!r l&&r condition
497 13 0 0 $t and $t =~ /^Tangram/
511 15 0 0 $t and $t =~ /^Tangram/
553 112 0 0 $t and $t =~ /^Tangram/
561 0 0 3 defined $key and @members
589 11 0 0 $t and $t =~ /^Tangram/
686 14 0 6 $companion and refaddr($$self{$X}) != refaddr $old
691 5 0 1 $old and $old->can($remove)
5 0 1 $old and $old->can($remove) and $old->can($includes)
0 1 0 $old and $old->can($remove) and $old->can($includes) and $old->$includes($self)
696 1 0 5 $chosen and $chosen->can($insert)
1 0 5 $chosen and $chosen->can($insert) and $chosen->can($includes)
0 3 2 $chosen and $chosen->can($insert) and $chosen->can($includes) and not $chosen->$includes($self)
716 32 34 27 @_ == 1 and not $companion
66 2 25 @_ == 1 and not $companion and UNIVERSAL::isa($_[0], 'Set::Object')
776 2 0 7 $gonner->can($remove_func) and $gonner->can($includes_func)
2 2 5 $gonner->can($remove_func) and $gonner->can($includes_func) and $gonner->$includes_func($self)
787 2 0 22 $new_mate->can($insert_func) and $new_mate->can($includes_func)
2 7 15 $new_mate->can($insert_func) and $new_mate->can($includes_func) and not $new_mate->$includes_func($self)
809 1 6 0 @_ == 1 and not $companion
7 0 0 @_ == 1 and not $companion and ref $_[0] eq 'ARRAY'
872 0 0 0 $gonner->can($remove_func) and $gonner->can($includes_func)
0 0 0 $gonner->can($remove_func) and $gonner->can($includes_func) and $gonner->$includes_func($self)
883 0 0 7 $new_mate->can($insert_func) and $new_mate->can($includes_func)
0 6 1 $new_mate->can($insert_func) and $new_mate->can($includes_func) and not $new_mate->$includes_func($self)
905 2 0 1 @_ == 1 and not $companion
2 1 0 @_ == 1 and not $companion and ref $_[0] eq 'HASH'
918 0 1 3 blessed $item and $item->can(my $meth = "${X}_hek")
977 0 0 0 $gonner->can($remove_func) and $gonner->can($includes_func)
0 0 0 $gonner->can($remove_func) and $gonner->can($includes_func) and $gonner->$includes_func($self)
988 0 0 3 $new_mate->can($insert_func) and $new_mate->can($includes_func)
0 0 3 $new_mate->can($insert_func) and $new_mate->can($includes_func) and not $new_mate->$includes_func($self)
1060 0 0 0 $x >= 0 and $x < @$a
1872 1 0 0 defined $t and $t =~ /Tangram::CollOnDemand/
1889 34 0 0 defined $t and $t =~ /Tangram::CollOnDemand/
1906 2 0 0 defined $t and $t =~ /Tangram::CollOnDemand/
2003 0 0 0 ${$_[0];} and length ${$_[0];} > $max_length
2125 143 0 48 defined $cleaners{$class}{$k} and exists $$self{$k}
2158 0 0 1 defined $cleaners{$class}{$k} and exists $$self{$k}
2420 25 2 0 $check_func && $cleaner
87 0 27 $$def{'parse'} and not $check_func && $cleaner
2448 3 111 0 $^W and exists $types{$class}{$attribute}
114 0 0 $^W and exists $types{$class}{$attribute} and not $dontcarp
2486 0 10 122 defined $value and length $value
2575 22 2 0 @_ and looks_like_KVKV(@_)

or 2 conditions

line l !l condition
280 47 0 scalar caller $i || ';->'
508 9 6 $$self{$X} ||= []
586 8 3 $$self{$X} ||= {}
955 3 0 $$self{$X} || {}
1050 7 0 $self->$getter || []
1075 4 0 $self->$getter || {}
1130 3 0 $_[0] || scalar $self->$getter
2387 26 7 $cleaners{$class} ||= {}
2406 60 54 $options ||= {}
2494 0 4 $value || ''
2512 0 0 $value || ''
2525 4 1 $$self{$attribute} ||= {}
2532 4 1 $$self{$attribute} ||= []
2610 114 0 $options || {}

or 3 conditions

line l !l&&r !l&&!r condition
211 3 82 0 ref $invocant || $invocant
300 3 0 0 $types{$class} || do { import_schema($class); $types{$class} }
348 146 0 1 $self->can($setter) or $self->can('AUTOLOAD')
378 0 0 0 $self->can($getter) or $self->can('AUTOLOAD')
529 0 0 0 wantarray or @rv > 1
550 109 3 0 $$self{$X} ||= 'Set::Object'->new
565 1 0 1 wantarray or @rv > 1
599 0 0 2 wantarray or @rv > 1
1011 42 0 0 $self->$getter || 'Set::Object'->new
1016 42 0 0 blessed($item = shift()) or reftype $item
1057 0 7 0 $members ||= 'Set::Object'->new(@$a)
1082 0 4 0 $members ||= 'Set::Object'->new(values %$a)
1675 7 1 1 is_int ${$_[0];} or ${$_[0];} + 0 eq ${$_[0];}
1694 0 0 7 is_double ${$_[0];} or is_int ${$_[0];}
0 6 1 is_double ${$_[0];} or is_int ${$_[0];} or ${$_[0];} =~ /$real_re/
1707 19 0 1 blessed ${$_[0];} or not ${$_[0];}
1785 1 0 1 ${$_[0];} =~ /^\d{10}:\d\d:\d\d$|$rawdatetime_re/o or Date::Manip::ParseDate(${$_[0];})
1800 0 0 0 ref $k or ref $v
2017 6 0 3 $1 || $2
2038 6 0 3 $1 || $2
2082 0 0 0 tied $$self{$k} || (ref $$self{$k} ? $$self{$k} : (defined $$self{$k} ? q['] . $$self{$k} . q['] : 'undef'))
2293 14 15 4 ${"${class}::fields";} || $${"${class}::schema";}{'fields'}
2295 0 4 29 ${"${class}::abstract";} || $${"${class}::schema";}{'abstract'}
2304 17 0 26 defined ${"${super}::schema";} or defined ${"${super}::fields";}
2312 29 0 4 $fields or @$bases
2407 111 0 3 ref $options eq 'HASH' or UNIVERSAL::isa($options, 'Tangram::Type')
2422 2 25 0 $check_func ||= $a[0]
2423 0 0 27 $cleaner ||= $a[1]
2427 0 113 1 $load ||= $$def{'load'}
2428 29 85 0 $check_func ||= $$def{'check_func'}
2429 0 51 63 $cleaner ||= $$def{'destroy_func'}
2434 107 0 7 $no_tangram or not defined $load
2477 51 0 63 $is_assoc or $set_closure
2575 22 2 0 not @_ or looks_like_KK(@_)
2733 0 0 0 ref $_[0] || $_[0]
2746 0 0 0 ref $_[0] || $_[0]
2759 0 0 0 ref $_[0] || $_[0]
2801 1 1 0 ref $invocant || $invocant