Branch Coverage

blib/lib/Params/Smart.pm
Criterion Covered Total %
branch 63 90 70.0


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 71 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 35 5 if (exists $$self{'names'}{$n}) { }
238 2 33 if ($$self{'names'}{$truename}{'callback'})
244 0 2 if $@
257 1 1 if ($named and keys %unknown)
259 1 0 if (exists $$self{'names'}{$n})
262 0 1 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 20 54 unless (exists $vals{$name})
317 0 20 if $name eq $$info{'name'} and defined $$info{'default'}
320 0 74 if ($$info{'required'} and not exists $vals{$name})
323 4 70 if (defined $$info{'needs'})
325 2 2 unless (ref $$info{'needs'})
328 2 3 unless (exists $vals{$dep})