Branch Coverage

blib/lib/Params/Smart.pm
Criterion Covered Total %
branch 60 90 66.6


line true false branch
24 17 54 if (ref $param eq 'HASH') { }
54 0 elsif (not ref $param) { }
41 0 54 if defined $4
43 0 54 if (defined $def and $def =~ /$Params::Smart::RE{'quoted'}{'-keep'}/)
48 0 54 unless (defined $name)
51 0 54 if ($name =~ /^\_\w+/)
55 0 54 if (exists $self->{'names'}{$name}) { }
82 0 73 unless ref $info eq "HASH"
94 73 4 unless defined $info->{'name'}
95 0 77 if (exists $self->{'names'}{$name}) { }
100 67 10 unless ($info->{'name_only'})
106 4 73 if (@names)
130 71 0 if ($info) { }
131 2 69 if ($info->{'slurp'})
132 0 2 if @_
134 0 43 if ($last and $info->{'required'} and not $last->{'required'})
137 0 4 if ($info->{'name_only'} and $info->{'slurp'})
140 0 71 if ($last and $info->{'_parsed'} != $last->{'_parsed'})
164 0 81 unless $_
190 6 2 unless $self->{'names'}{$name}{'required'}
191 0 8 if $self->{'names'}{$name}{'slurp'}
205 2 0 if (ref $callback eq 'CODE') { }
226 1 40 unless (defined $_[$i])
229 20 9 if ($named)
234 2 38 if $n =~ /^\-/
235 36 4 if (exists $self->{'names'}{$n}) { }
238 2 34 if ($self->{'names'}{$truename}{'callback'})
244 0 2 if $@
257 0 2 if ($named and keys %unknown)
259 0 0 if (exists $self->{'names'}{$n})
262 0 0 if ($self->{'names'}{$truename}{'callback'})
268 0 0 if $@
276 2 18 if ($named and keys %unknown and keys %vals) { }
2 16 elsif ($named and keys %unknown) { }
286 11 16 unless ($named)
290 0 21 unless (defined $n)
294 1 20 if ($self->{'names'}{$truename}{'slurp'}) { }
300 0 21 if ($self->{'names'}{$truename}{'callback'})
306 0 0 if $@
316 22 54 unless (exists $vals{$name})
318 0 22 if $name eq $info->{'name'} and defined $info->{'default'}
320 0 76 if ($info->{'required'} and not exists $vals{$name})
323 4 72 if (defined $info->{'needs'})
325 2 2 unless (ref $info->{'needs'})
328 2 3 unless (exists $vals{$dep})