Branch Coverage

blib/lib/Hash/Wrap.pm
Criterion Covered Total %
branch 181 234 77.3


line true false branch
53 148 50 defined $_->[0] && defined $_->[1] ? :
99 0 if defined $candidate and 2 == grep({defined $_->[0] && defined $_->[1] ? $_->[0] eq $_->[1] : 1;} [$reftype->[0], &Scalar::Util::reftype($candidate)], [$reftype->[1], &Scalar::Util::reftype($$candidate)])
71 0 77 if $@
87 0 4 if $@
99 0 61 unless &Scalar::Util::blessed($object)
102 4 57 if (exists $REGISTRY{$hash_class}{'predicate_template'} and $key =~ /^has_(.*)/)
109 7 50 unless $REGISTRY{$hash_class}{'validate'}->($object, $key)
118 0 55 unless defined $class
120 23 32 unless (exists $self->{$key})
122 12 11 if (exists $REGISTRY{$class}{'methods'}{$key})
144 4 52 unless @imports
149 5 54 if (not ref $args) { }
0 54 elsif ('HASH' ne ref $args) { }
151 1 4 unless grep {/$args/;} @EXPORT
161 0 0 unless grep {/$args/;} @EXPORT
169 1 3 if not !$args->{'-base'} and exists $args->{'-class'}
173 13 44 unless exists $args->{'-as'}
176 56 1 if (defined $name)
178 9 47 if (defined(my $reftype = &Scalar::Util::reftype($name))) { }
10 37 elsif ($name eq '-return') { }
180 1 0 if $reftype ne "SCALAR" and $reftype ne "VSTRING" and $reftype ne "REF" and $reftype ne "GLOB" and $reftype ne "LVALUE" and $reftype ne "REGEXP"
199 3 53 if ($args->{'-base'}) { }
201 0 3 if $args->{'-as_return'}
203 3 0 if not $args->{'-new'}
209 47 1 if (defined $name)
211 10 35 if $args->{'-as_return'}
222 1 48 if (keys %$args)
238 14 42 if (exists $attr->{'-recurse'})
240 1 13 unless &Scalar::Util::looks_like_number($attr->{'-recurse'})
241 4 9 if $attr->{'-recurse'} == 0
244 42 13 if (not defined $attr->{'-class'}) { }
2 11 elsif ($attr->{'-class'} eq '-caller') { }
248 74 0 defined $attr->{$_} ? :
256 1 1 if ref $name
263 2 52 if defined $REGISTRY{$class}
281 5 47 if ($attr->{'-lvalue'})
282 0 5 if ($] lt '5.016000') { }
284 0 0 if $attr->{'-lvalue'} < 0
292 7 45 if ($attr->{'-undef'})
297 14 38 if ($attr->{'-exists'})
298 13 1 $attr->{'-exists'} =~ /\A([^\W\d]\w*+)\z/ ? :
303 2 50 if ($attr->{'-defined'})
304 1 1 $attr->{'-defined'} =~ /\A([^\W\d]\w*+)\z/ ? :
309 1 51 if ($attr->{'-immutable'})
318 8 44 if ($attr->{'-recurse'})
326 2 6 --$attr->{'-recurse'} < 0 ? :
355 5 3 --$attr->{'-recurse'} < 0 ? :
362 1 51 if ($attr->{'-predicate'})
441 0 52 unless _compile_from_tpl(\$class_template, \%dict, \%closures)
444 5 47 unless (not $attr->{'-new'})
445 0 5 $attr->{'-new'} =~ /\A([^\W\d]\w*+)\z/ ? :
449 16 36 if ($attr->{'-methods'})
452 1 15 unless "HASH" eq ref $methods
456 1 15 unless $mth =~ /\A([^\W\d]\w*+)\z/
460 1 14 unless "CODE" eq ref $code
473 1 48 if ($attr->{'-predicate'})
492 1 1 if exists $args->{'-copy'} and exists $args->{'-clone'}
502 5 46 if ($args->{'-as_method'}) { }
512 1 50 if ($args->{'-copy'}) { }
3 47 elsif (exists $args->{'-clone'}) { }
517 1 2 if ('CODE' eq ref $args->{'-clone'}) { }
529 1 50 if ($args->{'-immutable'}) { }
3 47 elsif (defined $args->{'-lockkeys'}) { }
535 2 1 if ('ARRAY' eq ref $args->{'-lockkeys'}) { }
1 0 elsif ($args->{'-lockkeys'}) { }
553 17 33 if ($args->{'-as_scalar_ref'} or $args->{'-as_return'})
588 7 43 if $args->{'-as_scalar_ref'}
610 58 125 if (defined $closures and %$closures)
617 0 183 if ($DEBUG)
624 0 29 unless &Scalar::Util::blessed($self)
1 28 if @_
2 23 unless &Scalar::Util::blessed($self)
1 23 if @_
1 23 if ("HASH" ne &Scalar::Util::reftype($hash))
1 15 if ("HASH" ne &Scalar::Util::reftype($hash))
0 7 if ("HASH" ne &Scalar::Util::reftype($hash))
0 8 if ("HASH" ne &Scalar::Util::reftype($hash))
1 8 if ("HASH" ne &Scalar::Util::reftype($hash))
1 15 if ("HASH" ne &Scalar::Util::reftype($hash))
0 9 if ("HASH" ne &Scalar::Util::reftype($hash))
2 18 if ("HASH" ne &Scalar::Util::reftype($hash))
3 15 if ("HASH" ne &Scalar::Util::reftype($hash))
0 14 unless &Scalar::Util::blessed($self)
0 13 unless exists $self->{'answer'}
0 9 if @_
0 8 unless &Scalar::Util::blessed($self)
0 5 unless exists $self->{'answer'}
0 3 if @_
0 2 unless &Scalar::Util::blessed($self)
0 2 unless exists $self->{'a'}
0 1 if @_
0 1 unless &Scalar::Util::blessed($self)
0 1 unless exists $self->{'a'}
0 1 if @_
0 1 unless &Scalar::Util::blessed($self)
0 1 unless exists $self->{'a'}
0 1 if @_
0 1 unless &Scalar::Util::blessed($self)
0 1 unless exists $self->{'a'}
0 1 if @_
0 1 unless &Scalar::Util::blessed($self)
0 1 unless exists $self->{'a'}
0 1 if @_
0 1 unless &Scalar::Util::blessed($self)
0 1 unless exists $self->{'a'}
0 1 if @_
0 1 unless &Scalar::Util::blessed($self)
0 1 unless exists $self->{'b'}
0 1 if @_
0 1 unless &Scalar::Util::blessed($self)
0 1 unless exists $self->{'b'}
0 1 if @_
629 183 1900 unless defined $work
633 440 1943 if (defined $1) { }
639 1892 54 if (defined $v) { }
640 155 1754 if "ARRAY" eq ref $v
644 2 1908 if $work->{'loop'}{$key}++