Condition Coverage

File:blib/lib/Params/Validate/Strict.pm
Coverage:77.1%

line%coveragecondition
1218100
ABdec
000
011
1X1
$params->{'schema'} || $params->{'members'}
1219100
ABdec
000
011
1X1
$params->{'args'} || $params->{'input'}
1245100
Adec
00
11
$params->{'description'} || 'validate_strict'
124825
ABCdec
0XX0
1000
1011
11X1
$schema->{'members'} and $schema->{'description'} || $schema->{'error_msg'}
1258100
ABdec
0X0
100
111
ref $args ne "HASH" and ref $args ne "ARRAY"
100
ABdec
0X0
100
111
exists $params->{'args'} and not defined $args
126133
ABdec
000
011
1X1
$error_msg || "${schema_description}: args must be a hash or array reference"
1270100
ABdec
0X0
100
111
ref $r eq "HASH" and ref $r->{'aliases'} eq "ARRAY"
1276100
ABdec
000
011
1X1
exists $schema->{$key} or exists $_alias_to_canonical{$key}
129967
ABdec
0X0
100
111
$rules->{'slurp'} and not defined $rules->{'position'}
1328100
ABCDdec
0XXX0
10XX0
110X0
11100
11111
$are_positional_args != 1 and ref $rules eq "HASH" and ref $rules->{'aliases'} eq "ARRAY" and not exists $args->{$key}
134467
ABdec
0X0
100
111
ref $rules eq "HASH" and $rules->{'slurp'}
1377100
ABdec
0X0
100
111
defined $value && defined $rules->{'type'} && !ref($rules->{'type'}) && lc $rules->{'type'} eq 'stringref'
1385100
ABdec
0X0
100
111
$rules->{'transform'} and defined $value
139275
ABCdec
0XX0
10X0
1100
1111
defined $rules->{'type'} and not ref $rules->{'type'} and lc $rules->{'type'} eq "void"
1412100
ABdec
0X0
100
111
ref $args eq "HASH" and not exists $args->{$lookup_key}
100
ABdec
0X0
100
111
ref $rules eq "HASH" and $is_optional
143067
ABdec
000
011
1X1
$validated_args{$key} //= $rules->{'default'}
145480
ABCDdec
0XXX0
10XX0
110X0
11100
11111
ref $rules eq "HASH" and not ref $rules->{'type'} and defined $rules->{'type'} and $rules->{'type'} =~ /\|/
1457100
ABdec
0X0
100
111
ref $rules eq "HASH" and ref $rules->{'type'} eq "ARRAY"
1469100
ABdec
0X0
100
111
defined(my $min = $rules->{'min'} // $rules->{'minimum'}) and defined(my $max = $rules->{'max'})
100
ABdec
000
011
1X1
$rules->{'min'} // $rules->{'minimum'}
1476100
ABCdec
0000
0011
01X1
1XX1
$rules->{'memberof'} or $rules->{'enum'} or $rules->{'values'}
147767
ABdec
000
011
1X1
$rules->{'min'} // $rules->{'minimum'}
1488100
ABCDEFdec
0XXXXX0
10XXXX0
110XXX0
1110XX0
11110X0
1111100
1111111
ref $rule_value eq "CODE" and $rule_name ne "validate" and $rule_name ne "callback" and $rule_name ne "validator" and $rule_name ne "transform" and $rule_name ne "optional"
1498100
ABdec
0X0
100
111
&Scalar::Util::blessed($rule_value) and $rule_value->can("as_string")
1502100
ABdec
000
011
1X1
$rule_name eq "matches" or $rule_name eq "regex"
100
ABCdec
0000
0011
01X1
1XX1
$rule_name eq "memberof" or $rule_name eq "enum" or $rule_name eq "values"
100
ABdec
000
011
1X1
$rule_name eq "validate" or $rule_name eq "validator"
100
ABdec
000
011
1X1
$rule_name eq "min" or $rule_name eq "minimum"
1505100
ABdec
000
011
1X1
$type eq "number" or $type eq "float"
100
ABCdec
0000
0011
01X1
1XX1
$type eq "number" or $type eq "float" or $type eq "num" or $type eq "double"
100
ABdec
000
011
1X1
$type eq "boolean" or $type eq "bool"
100
ABdec
000
011
1X1
$type eq "string" or $type eq "str"
100
ABdec
000
011
1X1
$type eq "integer" or $type eq "int"
150925
ABCdec
00X0
0100
0111
1XX1
ref $value eq "" or defined $value and length $value
1516100
ABCdec
0000
0011
01X1
1XX1
not &Scalar::Util::looks_like_number($value) or $value - $value != 0 or $value != int $value
160333
ABdec
0X0
100
111
&Scalar::Util::blessed($value) and $value->isa("IO::Handle")
67
ABdec
0X0
100
111
ref $value eq "GLOB" and defined fileno $value
161750
ABCdec
00X0
0100
0111
1XX1
ref $value eq "ARRAY" or &Scalar::Util::blessed($value) and overload::Method($value, "\@{}")
162450
ABCdec
00X0
0100
0111
1XX1
ref $value eq "HASH" or &Scalar::Util::blessed($value) and overload::Method($value, "%{}")
163150
ABCdec
00X0
0100
0111
1XX1
ref $value eq "CODE" or &Scalar::Util::blessed($value) and overload::Method($value, "&{}")
163875
ABCdec
00X0
0100
0111
1XX1
&Scalar::Util::blessed($value) or not ref $value and $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/
166667
ABdec
000
011
1X1
exists $custom_types->{$type}{'min'} or exists $custom_types->{$type}{'minimum'}
166733
ABdec
000
011
1X1
$custom_types->{$type}{'min'} // $custom_types->{$type}{'minimum'}
1670100
ABCdec
0000
0011
01X1
1XX1
$type eq "string" or $type eq "str" or $type eq "stringref"
100
ABCdec
0000
0011
01X1
1XX1
$type eq "integer" or $type eq "number" or $type eq "float"
1675100
ABdec
0X0
100
111
$rule_value > 0 and not $is_optional
169233
ABdec
0X0
100
111
$rule_value > 0 and not $is_optional
170433
ABdec
0X0
100
111
$rule_value > 0 and not $is_optional
171633
ABdec
0X0
100
111
$rule_value > 0 and not $is_optional
172467
ABdec
0X0
100
111
$type eq "integer" and $value == 1
100
ABdec
0X0
100
111
$type eq "integer" and $value == 0
175275
ABCdec
0000
0011
01X1
1XX1
$type eq "string" or $type eq "str" or $type eq "stringref"
100
ABCdec
0000
0011
01X1
1XX1
$type eq "integer" or $type eq "number" or $type eq "float"
178767
ABdec
0X0
100
111
$type eq "integer" and $value == -1
67
ABdec
0X0
100
111
$type eq "integer" and $value == 0
181267
ABdec
000
011
1X1
$rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
183467
ABdec
000
011
1X1
$rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
186750
Adec
00
11
$rules->{'type'} // ""
187950
Adec
00
11
$rules->{'type'} // ""
192767
ABdec
0X0
100
111
&Scalar::Util::blessed($value) and $value->DOES($rule_value)
193850
ABCdec
0XX0
10X0
1100
1111
not ref $value and $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/ and $value->isa($rule_value)
194640
ABCDdec
0XXX0
10XX0
110X0
11100
11111
not ref $value and $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/ and $value ne $rule_value and $value->isa($rule_value)
195550
ABCdec
0XX0
10X0
1100
1111
not ref $value and $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/ and $value->DOES($rule_value)
196367
ABdec
0X0
100
111
not ref $value and $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/
198167
ABdec
000
011
1X1
$rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
198467
ABdec
0X0
100
111
$custom_type and $custom_type->{'type'}
1988100
ABdec
0X0
100
111
$custom_type and $custom_type->{'transform'}
1996100
ABdec
000
011
1X1
$type eq "number" or $rule_value eq "float"
67
ABdec
000
011
1X1
$type eq "string" or $type eq "Str"
200267
ABdec
000
011
1X1
ref $member or $member =~ /\D/
200767
ABdec
000
011
1X1
ref $member or not $member =~ /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/
2041100
ABdec
000
011
1X1
$value < 0 or $value > 2147483647
204567
ABdec
0X0
100
111
defined $value and not $value =~ /\A[A-Za-z_]\w*\z/
204967
ABdec
0X0
100
111
defined $value and not $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/
205767
ABdec
000
011
1X1
$rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef"
206667
ABdec
0X0
100
111
ref $rule_value eq 'HASH' && !exists $rule_value->{'type'}
210733
ABdec
000
011
1X1
"${rule_description}: Parameter ${param_label}: 'validate' only supports coderef, not " . ref($rule_value) // $rule_value
212733
ABdec
0X0
100
111
$rule_value and $are_positional_args != 1
218667
ABdec
000
011
1X1
not ref $validator or ref $validator ne "CODE"
227067
ABdec
000
011
1X1
ref $schema eq "HASH" or ref $schema eq "ARRAY"
233675
ABCdec
0XX0
10X0
1100
1111
ref $rules eq "HASH" and exists $rules->{'default'} and not exists $result{$key}
233767
ABdec
000
011
1X1
$result{$key} //= $rules->{'default'}
234175
ABCdec
0XX0
10X0
1100
1111
ref $rules eq "HASH" and $rules->{'schema'} and ref $result{$key} eq "HASH"
238467
ABdec
000
011
1X1
$rel->{'description'} || 'Cannot specify both ' . join(' and ', @present)
239967
ABdec
000
011
1X1
$rel->{'description'} || 'Must specify at least one of: ' . join(', ', @params)
241633
ABdec
000
011
1X1
$rel->{'description'} || "When $if_param is specified, $then_param is required"
243267
ABdec
000
011
1X1
$rel->{'description'} || "$param requires $requires to be specified"
2448100
ABdec
0X0
100
111
_param_defined($args, $if_param) and $args->{$if_param}
246967
ABdec
000
011
1X1
$rel->{'description'} || "When $if_param is specified, $then_param must be $operator $value (got $actual)"
249067
ABdec
000
011
1X1
$rel->{'description'} || "When $if_param equals '${equals}', $then_param is required"
250367
ABdec
000
011
1X1
$rules->{'error_msg'} || join('', @default_parts)
2520100
ABdec
000
011
1X1
$type eq 'integer' || $type eq 'number' || $type eq 'float'
2521100
ABdec
0X0
100
111
!$is_numeric && defined $case_sensitive && !$case_sensitive
253067
ABdec
0X0
100
111
defined $entry and not defined $entry->[0]
256267
ABdec
0X0
100
111
exists $args->{$param} && defined $args->{$param}