Branch Coverage

blib/lib/Hash/Wrap.pm
Criterion Covered Total %
branch 179 234 76.5


line true false branch
53 144 48 defined $_->[0] && defined $_->[1] ? :
96 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 0 if $@
99 0 57 unless &Scalar::Util::blessed($object)
102 0 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 51 unless @imports
149 5 53 if (not ref $args) { }
0 53 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 12 44 unless exists $args->{'-as'}
176 55 1 if (defined $name)
178 9 46 if (defined(my $reftype = &Scalar::Util::reftype($name))) { }
10 36 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 52 if ($args->{'-base'}) { }
201 0 3 if $args->{'-as_return'}
203 3 0 if not $args->{'-new'}
209 46 1 if (defined $name)
211 10 34 if $args->{'-as_return'}
222 1 47 if (keys %$args)
238 14 41 if (exists $attr->{'-recurse'})
240 1 13 unless &Scalar::Util::looks_like_number($attr->{'-recurse'})
241 4 9 if $attr->{'-recurse'} == 0
244 41 13 if (not defined $attr->{'-class'}) { }
2 11 elsif ($attr->{'-class'} eq '-caller') { }
248 73 0 defined $attr->{$_} ? :
256 1 1 if ref $name
263 2 51 if defined $REGISTRY{$class}
281 5 46 if ($attr->{'-lvalue'})
282 0 5 if ($] lt '5.016000') { }
284 0 0 if $attr->{'-lvalue'} < 0
292 7 44 if ($attr->{'-undef'})
297 14 37 if ($attr->{'-exists'})
298 13 1 $attr->{'-exists'} =~ /\A([^\W\d]\w*+)\z/ ? :
303 2 49 if ($attr->{'-defined'})
304 1 1 $attr->{'-defined'} =~ /\A([^\W\d]\w*+)\z/ ? :
309 1 50 if ($attr->{'-immutable'})
318 8 43 if ($attr->{'-recurse'})
326 2 6 --$attr->{'-recurse'} < 0 ? :
355 5 3 --$attr->{'-recurse'} < 0 ? :
362 0 51 if ($attr->{'-predicate'})
441 0 51 unless _compile_from_tpl(\$class_template, \%dict, \%closures)
444 5 46 unless (not $attr->{'-new'})
445 0 5 $attr->{'-new'} =~ /\A([^\W\d]\w*+)\z/ ? :
449 16 35 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 0 48 if ($attr->{'-predicate'})
492 1 1 if exists $args->{'-copy'} and exists $args->{'-clone'}
502 5 45 if ($args->{'-as_method'}) { }
512 1 49 if ($args->{'-copy'}) { }
3 46 elsif (exists $args->{'-clone'}) { }
517 1 2 if ('CODE' eq ref $args->{'-clone'}) { }
529 1 49 if ($args->{'-immutable'}) { }
3 46 elsif (defined $args->{'-lockkeys'}) { }
535 2 1 if ('ARRAY' eq ref $args->{'-lockkeys'}) { }
1 0 elsif ($args->{'-lockkeys'}) { }
553 17 32 if ($args->{'-as_scalar_ref'} or $args->{'-as_return'})
588 7 42 if $args->{'-as_scalar_ref'}
610 57 120 if (defined $closures and %$closures)
617 0 177 if ($DEBUG)
624 0 31 unless &Scalar::Util::blessed($self)
1 30 if @_
2 25 unless &Scalar::Util::blessed($self)
2 24 if @_
1 24 if ("HASH" ne &Scalar::Util::reftype($hash))
2 16 if ("HASH" ne &Scalar::Util::reftype($hash))
1 7 if ("HASH" ne &Scalar::Util::reftype($hash))
0 6 if ("HASH" ne &Scalar::Util::reftype($hash))
1 6 if ("HASH" ne &Scalar::Util::reftype($hash))
1 14 if ("HASH" ne &Scalar::Util::reftype($hash))
0 9 if ("HASH" ne &Scalar::Util::reftype($hash))
1 18 if ("HASH" ne &Scalar::Util::reftype($hash))
1 16 if ("HASH" ne &Scalar::Util::reftype($hash))
0 11 unless &Scalar::Util::blessed($self)
0 10 unless exists $self->{'answer'}
1 6 if @_
0 5 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 3 if @_
0 3 unless &Scalar::Util::blessed($self)
0 3 unless exists $self->{'b'}
0 3 if @_
629 177 1854 unless defined $work
633 424 1894 if (defined $1) { }
639 1845 50 if (defined $v) { }
640 152 1710 if "ARRAY" eq ref $v
644 3 1858 if $work->{'loop'}{$key}++