| line | % | coverage | condition |
| 1012 | 100 | | $params->{'schema'} || $params->{'members'} |
| 1013 | 100 | | $params->{'args'} || $params->{'input'} |
| 1039 | 100 | | $params->{'description'} || 'validate_strict' |
| 1042 | 25 | | $schema->{'members'} and $schema->{'description'} || $schema->{'error_msg'} |
| 1052 | 100 | | ref $args ne "HASH" and ref $args ne "ARRAY" |
| 100 | | exists $params->{'args'} and not defined $args |
| 1055 | 33 | | $error_msg || "${schema_description}: args must be a hash or array reference" |
| 1138 | 100 | | defined $value && defined $rules->{'type'} && !ref($rules->{'type'}) && lc $rules->{'type'} eq 'stringref' |
| 1142 | 67 | | $rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a string reference, not $got" |
| 1146 | 100 | | $rules->{'transform'} and defined $value |
| 1169 | 100 | | ref $args eq "HASH" and not exists $args->{$key} |
| 100 | | ref $rules eq "HASH" and $is_optional |
| 1214 | 100 | | ref $rules eq "HASH" and ref $rules->{'type'} eq "ARRAY" |
| 1226 | 100 | | defined(my $min = $rules->{'min'} // $rules->{'minimum'}) and defined(my $max = $rules->{'max'}) |
| 100 | | $rules->{'min'} // $rules->{'minimum'} |
| 1233 | 100 | | $rules->{'memberof'} or $rules->{'enum'} or $rules->{'values'} |
| 1234 | 67 | | $rules->{'min'} // $rules->{'minimum'} |
| 1245 | 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" |
| 1255 | 67 | | &Scalar::Util::blessed($rule_value) and $rule_value->can("as_string") |
| 1259 | 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" |
| 1262 | 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" |
| 1264 | 33 | | $rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a string" |
| 1266 | 25 | | ref $value eq "" or defined $value and length $value |
| 1267 | 0 | | $rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a string" |
| 1273 | 100 | | not &Scalar::Util::looks_like_number($value) or $value - $value != 0 or $value != int $value |
| 1321 | 67 | | $rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a scalar, not a " . ref($value) . ' reference' |
| 1329 | 67 | | $rules->{'error_msg'} || "${rule_description}: Parameter '${key}' must be a scalar reference, not $got" |
| 1338 | 33 | | $rules->{'error_msg'} || "${rule_description}: Parameter '${key}' stringref transform must return a plain string, not a " . ref($value) . ' reference' |
| 1394 | 67 | | exists $custom_types->{$type}{'min'} or exists $custom_types->{$type}{'minimum'} |
| 1395 | 33 | | $custom_types->{$type}{'min'} // $custom_types->{$type}{'minumum'} |
| 1398 | 100 | | $type eq "string" or $type eq "str" or $type eq "stringref" |
| 100 | | $type eq "integer" or $type eq "number" or $type eq "float" |
| 1411 | 67 | | $rules->{'error_msg'} || "${rule_description}: String parameter '${key}' too short, ($len characters), must be at least $rule_value characters" |
| 1415 | 0 | | $rules->{'error_msg'} || "${rule_description}: '${key}' can't be decoded" |
| 1455 | 67 | | $type eq "integer" and $value == 1 |
| 100 | | $type eq "integer" and $value == 0 |
| 1487 | 75 | | $type eq "string" or $type eq "str" or $type eq "stringref" |
| 100 | | $type eq "integer" or $type eq "number" or $type eq "float" |
| 1493 | 67 | | $rules->{'error_msg'} || "${rule_description}: String parameter '${key}' too long, ($len characters), must be no longer than $rule_value" |
| 1497 | 0 | | $rules->{'error_msg'} || "${rule_description}: '${key}' can't be decoded" |
| 1537 | 67 | | $type eq "integer" and $value == -1 |
| 67 | | $type eq "integer" and $value == 0 |
| 1566 | 67 | | $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef" |
| 1596 | 67 | | $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef" |
| 1619 | 100 | | $rules->{'type'} eq "integer" or $rules->{'type'} eq "number" or $rules->{'type'} eq "float" |
| 1625 | 100 | | !defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1 |
| 1651 | 75 | | $rules->{'type'} eq "integer" or $rules->{'type'} eq "number" or $rules->{'type'} eq "float" |
| 1657 | 100 | | !defined($rules->{'case_sensitive'}) || $rules->{'case_sensitive'} == 1 |
| 1714 | 67 | | $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef" |
| 1717 | 100 | | $custom_type and $custom_type->{'type'} |
| 1721 | 100 | | $custom_type and $custom_type->{'transform'} |
| 1730 | 67 | | $type eq "number" or $rule_value eq "float" |
| 67 | | $type eq "string" or $type eq "Str" |
| 1740 | 67 | | ref $member or $member =~ /\D/ |
| 1749 | 67 | | ref $member or not $member =~ /^[-+]?(\d*\.\d+|\d+\.?\d*)$/ |
| 1782 | 33 | | $value < 0 or $value > 2147483647 |
| 1790 | 67 | | $rules->{'type'} eq "arrayref" or $rules->{'type'} eq "ArrayRef" |
| 1799 | 67 | | ref $rule_value eq 'HASH' && !exists $rule_value->{'type'} |
| 1840 | 0 | | "${rule_description}: Parameter '${key}': 'validate' only supports coderef, not " . ref($rule_value) // $rule_value |
| 1918 | 67 | | not ref $validator or ref $validator ne "CODE" |
| 2011 | 75 | | ref $rules eq "HASH" and exists $rules->{'default'} and not exists $result{$key} |
| 2016 | 75 | | ref $rules eq "HASH" and $rules->{'schema'} and ref $result{$key} eq "HASH" |
| 2059 | 67 | | $rel->{'description'} || 'Cannot specify both ' . join(' and ', @present) |
| 2074 | 67 | | $rel->{'description'} || 'Must specify at least one of: ' . join(', ', @params) |
| 2086 | 67 | | exists $args->{$if_param} and defined $args->{$if_param} |
| 2090 | 67 | | exists $args->{$then_param} and defined $args->{$then_param} |
| 2091 | 33 | | $rel->{'description'} || "When $if_param is specified, $then_param is required" |
| 2105 | 67 | | exists $args->{$param} and defined $args->{$param} |
| 2106 | 67 | | exists $args->{$requires} and defined $args->{$requires} |
| 2107 | 67 | | $rel->{'description'} || "$param requires $requires to be specified" |
| 2123 | 75 | | exists $args->{$if_param} and defined $args->{$if_param} and $args->{$if_param} |
| 2125 | 33 | | exists $args->{$then_param} and defined $args->{$then_param} |
| 2144 | 67 | | $rel->{'description'} || "When $if_param is specified, $then_param must be $operator $value (got $actual)" |
| 2160 | 67 | | exists $args->{$if_param} and defined $args->{$if_param} |
| 2163 | 67 | | exists $args->{$then_param} and defined $args->{$then_param} |
| 2165 | 67 | | $rel->{'description'} || "When $if_param equals '${equals}', $then_param is required" |