| line | % | coverage | condition |
| 1218 | 100 | | $params->{'schema'} || $params->{'members'} |
| 1219 | 100 | | $params->{'args'} || $params->{'input'} |
| 1245 | 100 | | $params->{'description'} || 'validate_strict' |
| 1248 | 25 | | $schema->{'members'} and $schema->{'description'} || $schema->{'error_msg'} |
| 1258 | 100 | | ref $args ne "HASH" and ref $args ne "ARRAY" |
| 100 | | exists $params->{'args'} and not defined $args |
| 1261 | 33 | | $error_msg || "${schema_description}: args must be a hash or array reference" |
| 1270 | 100 | | ref $r eq "HASH" and ref $r->{'aliases'} eq "ARRAY" |
| 1276 | 100 | | exists $schema->{$key} or exists $_alias_to_canonical{$key} |
| 1299 | 67 | | $rules->{'slurp'} and not defined $rules->{'position'} |
| 1328 | 100 | | A | B | C | D | dec |
|---|
| 0 | X | X | X | 0 | | 1 | 0 | X | X | 0 | | 1 | 1 | 0 | X | 0 | | 1 | 1 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 |
| $are_positional_args != 1 and ref $rules eq "HASH" and ref $rules->{'aliases'} eq "ARRAY" and not exists $args->{$key} |
| 1344 | 67 | | ref $rules eq "HASH" and $rules->{'slurp'} |
| 1377 | 100 | | defined $value && defined $rules->{'type'} && !ref($rules->{'type'}) && lc $rules->{'type'} eq 'stringref' |
| 1385 | 100 | | $rules->{'transform'} and defined $value |
| 1392 | 75 | | defined $rules->{'type'} and not ref $rules->{'type'} and lc $rules->{'type'} eq "void" |
| 1412 | 100 | | ref $args eq "HASH" and not exists $args->{$lookup_key} |
| 100 | | ref $rules eq "HASH" and $is_optional |
| 1430 | 67 | | $validated_args{$key} //= $rules->{'default'} |
| 1454 | 80 | | A | B | C | D | dec |
|---|
| 0 | X | X | X | 0 | | 1 | 0 | X | X | 0 | | 1 | 1 | 0 | X | 0 | | 1 | 1 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 |
| ref $rules eq "HASH" and not ref $rules->{'type'} and defined $rules->{'type'} and $rules->{'type'} =~ /\|/ |
| 1457 | 100 | | ref $rules eq "HASH" and ref $rules->{'type'} eq "ARRAY" |
| 1469 | 100 | | defined(my $min = $rules->{'min'} // $rules->{'minimum'}) and defined(my $max = $rules->{'max'}) |
| 100 | | $rules->{'min'} // $rules->{'minimum'} |
| 1476 | 100 | | $rules->{'memberof'} or $rules->{'enum'} or $rules->{'values'} |
| 1477 | 67 | | $rules->{'min'} // $rules->{'minimum'} |
| 1488 | 100 | | A | B | C | D | E | F | dec |
|---|
| 0 | X | X | X | X | X | 0 | | 1 | 0 | X | X | X | X | 0 | | 1 | 1 | 0 | X | X | X | 0 | | 1 | 1 | 1 | 0 | X | X | 0 | | 1 | 1 | 1 | 1 | 0 | X | 0 | | 1 | 1 | 1 | 1 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 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" |
| 1498 | 100 | | &Scalar::Util::blessed($rule_value) and $rule_value->can("as_string") |
| 1502 | 100 | | $rule_name eq "matches" or $rule_name eq "regex" |
| 100 | | $rule_name eq "memberof" or $rule_name eq "enum" or $rule_name eq "values" |
| 100 | | $rule_name eq "validate" or $rule_name eq "validator" |
| 100 | | $rule_name eq "min" or $rule_name eq "minimum" |
| 1505 | 100 | | $type eq "number" or $type eq "float" |
| 100 | | $type eq "number" or $type eq "float" or $type eq "num" or $type eq "double" |
| 100 | | $type eq "boolean" or $type eq "bool" |
| 100 | | $type eq "string" or $type eq "str" |
| 100 | | $type eq "integer" or $type eq "int" |
| 1509 | 25 | | ref $value eq "" or defined $value and length $value |
| 1516 | 100 | | not &Scalar::Util::looks_like_number($value) or $value - $value != 0 or $value != int $value |
| 1603 | 33 | | &Scalar::Util::blessed($value) and $value->isa("IO::Handle") |
| 67 | | ref $value eq "GLOB" and defined fileno $value |
| 1617 | 50 | | ref $value eq "ARRAY" or &Scalar::Util::blessed($value) and overload::Method($value, "\@{}") |
| 1624 | 50 | | ref $value eq "HASH" or &Scalar::Util::blessed($value) and overload::Method($value, "%{}") |
| 1631 | 50 | | ref $value eq "CODE" or &Scalar::Util::blessed($value) and overload::Method($value, "&{}") |
| 1638 | 75 | | &Scalar::Util::blessed($value) or not ref $value and $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/ |
| 1666 | 67 | | exists $custom_types->{$type}{'min'} or exists $custom_types->{$type}{'minimum'} |
| 1667 | 33 | | $custom_types->{$type}{'min'} // $custom_types->{$type}{'minimum'} |
| 1670 | 100 | | $type eq "string" or $type eq "str" or $type eq "stringref" |
| 100 | | $type eq "integer" or $type eq "number" or $type eq "float" |
| 1675 | 100 | | $rule_value > 0 and not $is_optional |
| 1692 | 33 | | $rule_value > 0 and not $is_optional |
| 1704 | 33 | | $rule_value > 0 and not $is_optional |
| 1716 | 33 | | $rule_value > 0 and not $is_optional |
| 1724 | 67 | | $type eq "integer" and $value == 1 |
| 100 | | $type eq "integer" and $value == 0 |
| 1752 | 75 | | $type eq "string" or $type eq "str" or $type eq "stringref" |
| 100 | | $type eq "integer" or $type eq "number" or $type eq "float" |
| 1787 | 67 | | $type eq "integer" and $value == -1 |
| 67 | | $type eq "integer" and $value == 0 |
| 1812 | 67 | | $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef" |
| 1834 | 67 | | $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef" |
| 1867 | 50 | | $rules->{'type'} // "" |
| 1879 | 50 | | $rules->{'type'} // "" |
| 1927 | 67 | | &Scalar::Util::blessed($value) and $value->DOES($rule_value) |
| 1938 | 50 | | not ref $value and $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/ and $value->isa($rule_value) |
| 1946 | 40 | | A | B | C | D | dec |
|---|
| 0 | X | X | X | 0 | | 1 | 0 | X | X | 0 | | 1 | 1 | 0 | X | 0 | | 1 | 1 | 1 | 0 | 0 | | 1 | 1 | 1 | 1 | 1 |
| 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) |
| 1955 | 50 | | not ref $value and $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/ and $value->DOES($rule_value) |
| 1963 | 67 | | not ref $value and $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/ |
| 1981 | 67 | | $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef" |
| 1984 | 67 | | $custom_type and $custom_type->{'type'} |
| 1988 | 100 | | $custom_type and $custom_type->{'transform'} |
| 1996 | 100 | | $type eq "number" or $rule_value eq "float" |
| 67 | | $type eq "string" or $type eq "Str" |
| 2002 | 67 | | ref $member or $member =~ /\D/ |
| 2007 | 67 | | ref $member or not $member =~ /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)$/ |
| 2041 | 100 | | $value < 0 or $value > 2147483647 |
| 2045 | 67 | | defined $value and not $value =~ /\A[A-Za-z_]\w*\z/ |
| 2049 | 67 | | defined $value and not $value =~ /\A[A-Za-z_]\w*(?:::[A-Za-z_]\w*)*\z/ |
| 2057 | 67 | | $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef" |
| 2066 | 67 | | ref $rule_value eq 'HASH' && !exists $rule_value->{'type'} |
| 2107 | 33 | | "${rule_description}: Parameter ${param_label}: 'validate' only supports coderef, not " . ref($rule_value) // $rule_value |
| 2127 | 33 | | $rule_value and $are_positional_args != 1 |
| 2186 | 67 | | not ref $validator or ref $validator ne "CODE" |
| 2270 | 67 | | ref $schema eq "HASH" or ref $schema eq "ARRAY" |
| 2336 | 75 | | ref $rules eq "HASH" and exists $rules->{'default'} and not exists $result{$key} |
| 2337 | 67 | | $result{$key} //= $rules->{'default'} |
| 2341 | 75 | | ref $rules eq "HASH" and $rules->{'schema'} and ref $result{$key} eq "HASH" |
| 2384 | 67 | | $rel->{'description'} || 'Cannot specify both ' . join(' and ', @present) |
| 2399 | 67 | | $rel->{'description'} || 'Must specify at least one of: ' . join(', ', @params) |
| 2416 | 33 | | $rel->{'description'} || "When $if_param is specified, $then_param is required" |
| 2432 | 67 | | $rel->{'description'} || "$param requires $requires to be specified" |
| 2448 | 100 | | _param_defined($args, $if_param) and $args->{$if_param} |
| 2469 | 67 | | $rel->{'description'} || "When $if_param is specified, $then_param must be $operator $value (got $actual)" |
| 2490 | 67 | | $rel->{'description'} || "When $if_param equals '${equals}', $then_param is required" |
| 2503 | 67 | | $rules->{'error_msg'} || join('', @default_parts) |
| 2520 | 100 | | $type eq 'integer' || $type eq 'number' || $type eq 'float' |
| 2521 | 100 | | !$is_numeric && defined $case_sensitive && !$case_sensitive |
| 2530 | 67 | | defined $entry and not defined $entry->[0] |
| 2562 | 67 | | exists $args->{$param} && defined $args->{$param} |