Condition Coverage

blib/lib/Object/Hybrid.pm
Criterion Covered Total %
condition 76 296 25.6


and 2 conditions

line l !l condition
986 0 0 $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 $METHOD_is_lc and $Object::Hybrid::Portable and return
0 2 $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 $METHOD_is_lc and $Object::Hybrid::Portable and return
0 6 $METHOD_is_lc and $Object::Hybrid::Portable and return
0 2 $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 $METHOD_is_lc and $Object::Hybrid::Portable and return

and 3 conditions

line !l l&&!r l&&r condition
839 44 0 0 defined $_[1] and not $_[0]->isa($_[1])
986 0 3 0 !$can_method && $Object::Hybrid::HASTE
0 0 0 $METHOD_is_lc and $Object::Hybrid::Portable
0 0 0 !$can_method && $Object::Hybrid::HASTE
0 0 0 $METHOD_is_lc and $Object::Hybrid::Portable
5 78 0 !$can_method && $Object::Hybrid::HASTE
2 2 0 $METHOD_is_lc and $Object::Hybrid::Portable
0 72 0 !$can_method && $Object::Hybrid::HASTE
0 0 0 $METHOD_is_lc and $Object::Hybrid::Portable
0 0 0 !$can_method && $Object::Hybrid::HASTE
6 6 0 $METHOD_is_lc and $Object::Hybrid::Portable
0 0 0 !$can_method && $Object::Hybrid::HASTE
2 2 0 $METHOD_is_lc and $Object::Hybrid::Portable
234 0 0 !$can_method && $Object::Hybrid::HASTE
0 0 0 $METHOD_is_lc and $Object::Hybrid::Portable

or 2 conditions

line l !l condition
694 30 83 $class || 'Object::Hybrid::CLASS'
815 0 0 eval { do { tied %{$_[0];} } } || eval { do { tied ${$_[0];} } } || eval { do { tied @{$_[0];} } } || eval { do { tied *{$_[0];} } } || undef
824 80 25 tied %{$_[0];} || 0
0 0 tied ${$_[0];} || 0
0 0 tied @{$_[0];} || 0
2 2 tied *{$_[0];} || 0

or 3 conditions

line l !l&&r !l&&!r condition
572 36 15 0 $primitive || ()
630 0 0 0 ref $self || $self
0 0 0 $opt->{$feature} || $self->CLASS_HASH
0 0 0 $opt->{$feature} || $self->CLASS_SCALAR
0 0 0 $opt->{$feature} || $self->CLASS_ARRAY
635 0 0 0 ref $self || $self
643 0 0 0 @{$opt->{$feature};} || ()
667 0 0 2 @symbols or @{(ref $self || $self) . '::EXPORT';}
0 0 2 @symbols or @{(ref $self || $self) . '::EXPORT';} or @{'Object::Hybrid::EXPORT';}
668 0 2 0 ref $self || $self
697 69 44 0 not _ref_isa($primitive) or $self->Class->is($primitive)
708 0 10 0 $primitive_type ||= _ref_type($primitive)
20 10 0 _can_tie($class, $primitive) or $class4type{$primitive_type ||= _ref_type($primitive)}
30 0 0 _can_tie($class, $primitive) or $class4type{$primitive_type ||= _ref_type($primitive)} or $self->Class->is($class)
715 10 103 0 $primitive_type ||= _ref_type($primitive)
733 3 0 0 $nontied_class4type{$primitive_type} || ()
3 0 0 $class4type{$primitive_type} || ()
746 2 0 0 $nontied_class4type{$primitive_type} || ()
2 0 0 $class4type{$primitive_type} || ()
758 109 4 0 $_[0] ||= $primitive
784 0 0 0 $fh->OPEN(@open_args) or Object::Hybrid::croak($!)
0 0 0 ref $elf || $elf
0 0 0 ref $_[0] || $_[0]
857 383 0 0 ref $subs->{$method} eq 'CODE' or ref($subs->{$method} = $$subs{$subs->{$method}}) eq 'CODE'
870 10 0 0 ref $_[0] || $_[0]
10 0 0 ref $_[0] || $_[0]
986 2 0 0 ref $_[0] || $_[0]
0 0 3 $_[0]->UNIVERSAL::can($can_method || $METHOD) || $_[0]->UNIVERSAL::can(_alter_case($can_method || $METHOD))
3 0 0 $swap or $can_method
3 0 0 'Object::Hybrid::GLOB'->UNIVERSAL::can($can_method || $METHOD) || 'Object::Hybrid::GLOB'->UNIVERSAL::can(_alter_case($can_method || $METHOD))
3 0 0 $sub_method or $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 0 ref $_[0] || $_[0]
0 0 0 ref $_[0] || $_[0]
0 0 0 $_[0]->UNIVERSAL::can($can_method || $METHOD) || $_[0]->UNIVERSAL::can(_alter_case($can_method || $METHOD))
0 0 0 $swap or $can_method
0 0 0 'Object::Hybrid::HASH'->UNIVERSAL::can($can_method || $METHOD) || 'Object::Hybrid::HASH'->UNIVERSAL::can(_alter_case($can_method || $METHOD))
0 0 0 $sub_method or $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 0 ref $_[0] || $_[0]
37 37 9 $_[0]->UNIVERSAL::can($can_method || $METHOD) || $_[0]->UNIVERSAL::can(_alter_case($can_method || $METHOD))
81 2 0 $swap or $can_method
1 0 8 'Object::Hybrid::GLOB'->UNIVERSAL::can($can_method || $METHOD) || 'Object::Hybrid::GLOB'->UNIVERSAL::can(_alter_case($can_method || $METHOD))
74 0 4 $sub_method or $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 0 ref $_[0] || $_[0]
0 0 0 tied *{$_[0];} || $_[0]
0 0 0 eval { do { tied %{$_[0];} } } || eval { do { tied ${$_[0];} } } || eval { do { tied @{$_[0];} } } || eval { do { tied *{$_[0];} } } || $_[0]
0 0 0 tied %{$_[0];} || $_[0]
0 0 0 tied ${$_[0];} || $_[0]
0 0 0 tied @{$_[0];} || $_[0]
0 0 0 tied *{$_[0];} || $_[0]
0 0 0 tied %{$_[0];} || $_[0]
0 0 0 eval { do { tied %{$_[0];} } } || eval { do { tied ${$_[0];} } } || eval { do { tied @{$_[0];} } } || eval { do { tied *{$_[0];} } } || $_[0]
0 0 0 tied %{$_[0];} || $_[0]
0 0 0 tied ${$_[0];} || $_[0]
0 0 0 tied @{$_[0];} || $_[0]
0 0 0 tied *{$_[0];} || $_[0]
36 0 36 $_[0]->UNIVERSAL::can($can_method || $METHOD) || $_[0]->UNIVERSAL::can(_alter_case($can_method || $METHOD))
72 0 12 $swap or $can_method
48 0 0 'Object::Hybrid::HASH'->UNIVERSAL::can($can_method || $METHOD) || 'Object::Hybrid::HASH'->UNIVERSAL::can(_alter_case($can_method || $METHOD))
84 0 0 $sub_method or $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 0 ref $_[0] || $_[0]
0 0 0 $_[0]->UNIVERSAL::can($can_method || $METHOD) || $_[0]->UNIVERSAL::can(_alter_case($can_method || $METHOD))
0 0 12 $swap or $can_method
0 0 12 'Object::Hybrid::HASH'->UNIVERSAL::can($can_method || $METHOD) || 'Object::Hybrid::HASH'->UNIVERSAL::can(_alter_case($can_method || $METHOD))
0 0 12 $sub_method or $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 0 ref $_[0] || $_[0]
0 0 0 $_[0]->UNIVERSAL::can($can_method || $METHOD) || $_[0]->UNIVERSAL::can(_alter_case($can_method || $METHOD))
0 0 4 $swap or $can_method
0 0 4 'Object::Hybrid::GLOB'->UNIVERSAL::can($can_method || $METHOD) || 'Object::Hybrid::GLOB'->UNIVERSAL::can(_alter_case($can_method || $METHOD))
0 0 4 $sub_method or $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 0 ref $_[0] || $_[0]
59 41 134 $_[0]->UNIVERSAL::can($can_method || $METHOD) || $_[0]->UNIVERSAL::can(_alter_case($can_method || $METHOD))
132 102 0 $swap or $can_method
62 0 72 'Object::Hybrid::HASH'->UNIVERSAL::can($can_method || $METHOD) || 'Object::Hybrid::HASH'->UNIVERSAL::can(_alter_case($can_method || $METHOD))
0 0 0 $sub_method or $METHOD_is_lc and $Object::Hybrid::Portable and return
0 0 0 ref $_[0] || $_[0]