| line | % | coverage | branch |
| 1628 | 50 | T | F | if scalar @_ == 0 |
| 1634 | 50 | T | F | ref $_[0] ne 'HASH' ? : |
| 1640 | 100 | T | F | if (ref $_[0] eq 'HASH' or defined $_[2]) { } |
| 1652 | 100 | T | F | if ($params->{'schema_file'}) { } |
| 100 | T | F | elsif ($params->{'input_file'}) { } |
| 50 | T | F | elsif ($params->{'schema'}) { } |
| 1661 | 100 | T | F | if (defined $schema_file) |
| 1668 | 100 | T | F | if (defined $schema_file) { } |
| 1681 | 100 | T | F | if exists $schema->{'cases'} |
| 1682 | 50 | T | F | if exists $schema->{'edge_cases'} |
| 1683 | 100 | T | F | if exists $schema->{'type_edge_cases'} |
| 1685 | 100 | T | F | if exists $schema->{'module'} and length $schema->{'module'} |
| 1686 | 100 | T | F | if exists $schema->{'function'} |
| 1687 | 100 | T | F | if (exists $schema->{'new'}) |
| 1688 | 100 | T | F | defined $schema->{'new'} ? : |
| 1690 | 100 | T | F | if exists $schema->{'yaml_cases'} |
| 1691 | 100 | T | F | if exists $schema->{'seed'} |
| 1692 | 100 | T | F | if exists $schema->{'iterations'} |
| 1694 | 100 | T | F | if exists $schema->{'edge_case_array'} |
| 1697 | 100 | T | F | if exists $schema->{'config'} |
| 1702 | 100 | T | F | if (not $module) { } |
| 100 | T | F | elsif ($module eq $MODULE_BUILTIN) { } |
| 1703 | 100 | T | F | if ($schema_file) |
| 1708 | 100 | T | F | if (_is_perl_builtin($module)) |
| 1716 | 50 | T | F | if ($module and length $module and $module ne "builtin") |
| 1723 | 100 | T | F | if defined $module and length $module |
| 1732 | 50 | T | F | if defined $seed and $seed eq "" |
| 1736 | 100 | T | F | if (defined $yaml_cases) |
| 1737 | 100 | T | F | unless -f $yaml_cases |
| 1740 | 50 | T | F | if ($yaml_data and ref $yaml_data eq "HASH") |
| 1746 | 100 | T | F | unless ($outputs and ref $outputs eq "ARRAY") |
| 1759 | 50 | T | F | if (exists $cases{$k} and ref $cases{$k} eq "ARRAY" and ref $yaml_corpus_data{$k} eq "ARRAY") |
| 1764 | 100 | T | F | if (my $hints = delete $schema->{'_yamltest_hints'}) |
| 1765 | 50 | T | F | if (my $boundaries = $hints->{'boundary_values'}) |
| 1768 | 50 | T | F | if (my $invalid = $hints->{'invalid'}) |
| 1774 | 100 | T | F | if ($schema->{'type'} and $schema->{'type'} =~ /^(integer|number|float)$/u) |
| 1776 | 50 | T | F | unless defined $_ |
| 1777 | 100 | T | F | if &Scalar::Util::looks_like_number($_) |
| 1785 | 50 | T | F | if (exists $schema->{'relationships'} and ref $schema->{'relationships'} eq "ARRAY") |
| 1800 | 0 | T | F | if ($type eq 'mutually_exclusive') { } |
| 0 | T | F | elsif ($type eq 'required_group') { } |
| 0 | T | F | elsif ($type eq 'conditional_requirement') { } |
| 0 | T | F | elsif ($type eq 'dependency') { } |
| 0 | T | F | elsif ($type eq 'value_constraint') { } |
| 0 | T | F | elsif ($type eq 'value_conditional') { } |
| 1847 | 100 | T | F | &Scalar::Util::looks_like_number($_) ? : |
| 50 | T | F | defined $_ ? : |
| 1853 | 50 | T | F | unless defined $a |
| 1854 | 50 | T | F | unless defined $b |
| 1859 | 100 | T | F | if $na and $nb |
| 1860 | 100 | T | F | if $na |
| 1861 | 100 | T | F | if $nb |
| 1870 | 100 | T | F | if (scalar @edge_case_array) |
| 1879 | 100 | T | F | if (ref $config{$key} eq "HASH") |
| 1882 | 100 | T | F | if (not defined $config{$key} && $config{$key}) { } |
| 1893 | 100 | T | F | if (scalar keys %input == 1 and exists $input{'type'} and not ref $input{'type'}) { } |
| 1902 | 50 | T | F | if (defined(my $re = $output{'matches'})) |
| 1903 | 0 | T | F | if (ref $re ne "Regexp") |
| 1907 | 0 | T | F | if ($@) { } |
| 1919 | 50 | T | F | if (defined(my $re = $output{'nomatch'})) |
| 1920 | 0 | T | F | if (ref $re ne "Regexp") |
| 1924 | 0 | T | F | if ($@) { } |
| 1933 | 100 | T | F | $new && ref $new eq 'HASH' ? : |
| 1936 | 100 | T | F | if (keys %transforms) |
| 1940 | 100 | T | F | if ($transforms_code) |
| 1957 | 100 | T | F | if (keys %transforms and $config{'properties'}{'enable'} // 0) |
| 1974 | 100 | T | F | if (keys %accessor) |
| 1979 | 50 | T | F | unless (defined $new) |
| 1984 | 100 | T | F | if ($type eq "getset") |
| 1985 | 100 | T | F | if (scalar keys %input != 1) |
| 1988 | 100 | T | F | if (scalar keys %output == 0) |
| 1995 | 100 | T | F | $module ? : |
| 1999 | 100 | T | F | if (defined $new and defined $module) { } |
| 100 | T | F | elsif (defined $module and length $module) { } |
| 2001 | 100 | T | F | if ($new_code eq '') { } |
| 2007 | 100 | T | F | if ($has_positions) { } |
| 2009 | 50 | T | F | if (defined $accessor{'type'}) |
| 2010 | 0 | T | F | if ($accessor{'type'} eq 'getter') { } |
| 0 | T | F | elsif ($accessor{'type'} eq 'getset') { } |
| 2017 | 0 | T | F | if ($accessor{'type'} eq "getset" or $accessor{'type'} eq "getter") |
| 2021 | 0 | T | F | if ($accessor{'type'} eq "getter") |
| 2026 | 0 | T | F | if ($output{'_returns_self'}) |
| 2032 | 50 | T | F | if ($output{'_returns_self'}) { } |
| 100 | T | F | elsif (defined $accessor{'type'} and $accessor{'type'} eq 'getset') { } |
| 2037 | 100 | T | F | if (scalar keys %input == 0) |
| 2038 | 100 | T | F | if (defined $accessor{'type'} and $accessor{'type'} eq "getter") |
| 2044 | 100 | T | F | if ($function eq 'new') { } |
| 2045 | 50 | T | F | if ($has_positions) { } |
| 2051 | 100 | T | F | if ($has_positions) { } |
| 2058 | 100 | T | F | if ($has_positions) { } |
| 2067 | 100 | T | F | if (($output{'type'} // "") eq "array") |
| 2068 | 50 | T | F | if (defined $call_code) |
| 2071 | 50 | T | F | if (defined $position_code) |
| 2078 | 100 | T | F | if (%all_cases) |
| 2084 | 50 | T | F | unless $inputs |
| 2088 | 50 | T | F | if ($expected_str eq q['_STATUS:DIES']) { } |
| 50 | T | F | elsif ($expected_str eq q['_STATUS:WARNS']) { } |
| 2094 | 50 | T | F | if (ref $inputs eq "HASH") |
| 2098 | 50 | T | F | if (ref $inputs eq 'ARRAY') { } |
| 0 | T | F | elsif (ref $inputs eq 'HASH') { } |
| 2111 | 50 | T | F | if ($input_str eq "undef" and not $config{'test_undef'}) |
| 2114 | 50 | T | F | if ($new) { } |
| 2115 | 0 | T | F | if ($status eq 'DIES') { } |
| 0 | T | F | elsif ($status eq 'WARNS') { } |
| 2126 | 0 | T | F | if (($output{'type'} // '') eq 'boolean') { } |
| 2127 | 0 | T | F | if ($expected_str eq '1') { } |
| 0 | T | F | elsif ($expected_str eq '0') { } |
| 2139 | 50 | T | F | if ($status eq 'DIES') { } |
| 50 | T | F | elsif ($status eq 'WARNS') { } |
| 2140 | 0 | T | F | if ($module) { } |
| 2148 | 0 | T | F | if ($module) { } |
| 2157 | 50 | T | F | ref $inputs eq 'ARRAY' ? : |
| 2160 | 50 | T | F | if (($output{'type'} // '') eq 'boolean') { } |
| 2161 | 0 | T | F | if ($expected_str eq '1') { } |
| 0 | T | F | elsif ($expected_str eq '0') { } |
| 2178 | 100 | T | F | if (defined $seed) |
| 2184 | 100 | T | F | defined $position_code ? : |
| 2220 | 50 | T | F | unless $tt->process($template, $vars, \$test) |
| 2222 | 100 | T | F | if ($test_file) { } |
| 2227 | 50 | T | F | unless open my $fh, ">:encoding(UTF-8)", $test_file |
| 2230 | 100 | T | F | if ($module) { } |
| 2255 | 100 | T | F | unless defined $name |
| 2324 | 100 | T | F | unless defined $schema_file |
| 2326 | 100 | T | F | unless length $schema_file |
| 2330 | 100 | T | F | unless -r $schema_file |
| 2335 | 50 | T | F | if (my $schema = "Config::Abstraction"->new("config_dirs", [".", ""], "config_file", $schema_file, "no_fixate", 1)) |
| 2340 | 50 | T | F | if ($schema = $schema->all) |
| 2343 | 100 | T | F | if (exists $schema->{$LEGACY_PERL_KEY_1} or exists $schema->{$LEGACY_PERL_KEY_2}) |
| 2384 | 100 | T | F | unless exists $schema->{$section} |
| 2388 | 100 | T | F | if ref $schema->{$section} eq "HASH" |
| 2393 | 100 | T | F | if defined $schema->{$section} and $schema->{$section} eq "undef" |
| 2435 | 100 | T | F | unless (defined $schema->{'module'} or defined $schema->{'function'}) |
| 2441 | 100 | T | F | unless (defined $schema->{'input'} or defined $schema->{'output'}) |
| 2446 | 100 | T | F | if ($schema->{'input'} and ref $schema->{'input'} ne "HASH") |
| 2447 | 100 | T | F | if ($schema->{'input'} eq 'undef') { } |
| 2455 | 100 | T | F | if ($schema->{'input'}) |
| 2462 | 100 | T | F | if (exists $schema->{'transforms'} and ref $schema->{'transforms'} eq "HASH") |
| 2467 | 100 | T | F | if (ref $schema->{'config'} eq "HASH") |
| 2471 | 100 | T | F | unless $VALID_CONFIG_KEYS{$k} |
| 2493 | 100 | T | F | unless length $param |
| 2499 | 100 | T | F | if (ref $spec) { } |
| 2501 | 100 | T | F | unless defined $spec->{'type'} |
| 2503 | 50 | T | F | if $spec->{'type'} eq "coderef" |
| 2505 | 100 | T | F | unless _valid_type($spec->{'type'}) |
| 2507 | 50 | T | F | unless _valid_type($spec) |
| 2538 | 100 | T | F | unless ref $spec eq "HASH" and defined $spec->{'position'} |
| 2544 | 100 | T | F | unless $pos =~ /^\d+$/u |
| 2549 | 100 | T | F | if exists $positions{$pos} |
| 2555 | 100 | T | F | if ($has_positions) |
| 2558 | 100 | T | F | unless (ref $spec eq "HASH" and defined $spec->{'position'}) |
| 2568 | 100 | T | F | if ($sorted[$i] != $i) |
| 2596 | 100 | T | F | unless ref $spec eq "HASH" |
| 2600 | 100 | T | F | if (defined $spec->{'semantic'}) |
| 2602 | 100 | T | F | unless (exists $semantic_generators->{$semantic}) |
| 2611 | 100 | T | F | if ($spec->{'enum'} and $spec->{'memberof'}) |
| 2617 | 100 | T | F | if (exists $spec->{$type}) |
| 2619 | 100 | T | F | unless ref $spec->{$type} eq "ARRAY" |
| 2648 | 100 | T | F | unless exists $transform->{'properties'} |
| 2651 | 100 | T | F | unless ref $transform->{'properties'} eq "ARRAY" |
| 2654 | 100 | T | F | if (not ref $prop) { } |
| 100 | T | F | elsif (ref $prop eq 'HASH') { } |
| 2656 | 100 | T | F | unless (exists $builtin_props->{$prop}) |
| 2663 | 100 | T | F | unless ($prop->{'name'} and $prop->{'code'}) |
| 2706 | 100 | T | F | if $field eq $CONFIG_PROPERTIES_KEY |
| 2707 | 100 | T | F | if $field eq "timeout" |
| 2709 | 100 | T | F | if (exists $config->{$field} and defined $config->{$field}) { } |
| 2712 | 50 | T | F | if (defined(my $b = $Readonly::Values::Boolean::booleans{$config->{$field}})) |
| 2725 | 100 | T | F | unless ref $config->{$CONFIG_PROPERTIES_KEY} eq "HASH" |
| 2757 | 100 | T | F | unless defined $type |
| 2798 | 100 | T | F | unless defined $name and length $name |
| 2802 | 100 | T | F | $opts{'package'} ? : |
| 2805 | 100 | T | F | unless $name =~ /$re/u |
| 2862 | 100 | T | F | unless $module |
| 2867 | 100 | T | F | if ($schema_file and not $mod_info) |
| 2882 | 50 | T | F | if ($verbose) |
| 2891 | 100 | T | F | if ($ENV{$ENV_VALIDATE_LOAD}) |
| 2894 | 50 | T | F | unless ($loaded) |
| 2903 | 50 | T | F | if ($verbose) |
| 2964 | 100 | T | F | unless defined $v |
| 3035 | 100 | T | F | unless $href and ref $href eq "HASH" |
| 3045 | 100 | T | F | unless (defined $def and ref $def eq "HASH") |
| 3046 | 100 | T | F | if (defined $def and not ref $def and _valid_type($def)) { } |
| 3059 | 100 | T | F | unless defined $def->{$subk} |
| 3063 | 50 | T | F | if (ref $def->{$subk}) |
| 3064 | 0 | T | F | unless (ref $def->{$subk} eq "ARRAY" or ref $def->{$subk} eq "Regexp") |
| 3077 | 100 | T | F | if ($subk eq $KEY_MATCHES or $subk eq $KEY_NOMATCH) { } |
| 3080 | 50 | T | F | ref $def->{$subk} eq 'Regexp' ? : |
| 3081 | 50 | T | F | if ($@ or not defined $re) |
| 3148 | 100 | T | F | unless $href and ref $href eq "HASH" |
| 3208 | 100 | T | F | unless $href and ref $href eq "HASH" |
| 3216 | 100 | T | F | unless ref $aref eq "ARRAY" |
| 3253 | 100 | T | F | unless defined $input_spec and ref $input_spec eq "HASH" |
| 3258 | 100 | T | F | unless ref $input_spec->{$field} eq "HASH" |
| 3261 | 100 | T | F | if defined $input_spec->{$field}{'position'} |
| 3293 | 50 | T | F | if ref $s |
| 3302 | 100 | T | F | unless defined $s |
| 3310 | 100 | T | F | unless $s =~ /\Q$l\E|\Q$r\E/u |
| 3318 | 100 | T | F | if index($s, $d) == $INDEX_NOT_FOUND |
| 3353 | 50 | T | F | if ref $s |
| 3357 | 100 | T | F | unless defined $s |
| 3421 | 100 | T | F | if $depth > 100 |
| 3424 | 100 | T | F | unless defined $v |
| 3428 | 100 | T | F | if $v eq "true" |
| 3429 | 100 | T | F | if $v eq "false" |
| 3431 | 100 | T | F | if (ref $v) |
| 3433 | 100 | T | F | if (ref $v eq "ARRAY") |
| 3439 | 100 | T | F | if (ref $v eq "Regexp") |
| 3444 | 100 | T | F | if $mods |
| 3455 | 100 | T | F | &looks_like_number($v) ? : |
| 3526 | 100 | T | F | if (not defined $input_spec or not ref $input_spec and $input_spec eq "undef") |
| 3535 | 100 | T | F | unless ref $input_spec eq "HASH" |
| 3551 | 50 | T | F | if (exists $transform->{'properties'} and ref $transform->{'properties'} eq "ARRAY") |
| 3568 | 50 | T | F | unless @all_props |
| 3580 | 50 | T | F | unless ref $spec eq "HASH" |
| 3589 | 50 | T | F | if (defined $gen and length $gen) |
| 3604 | 100 | T | F | if ($module and defined $new) { } |
| 50 | T | F | elsif ($module and $module ne $MODULE_BUILTIN) { } |
| 3619 | 50 | T | F | if (_has_positions($input_spec)) { } |
| 4084 | 100 | T | F | unless defined $spec and ref $spec eq "HASH" |
| 4094 | 100 | T | F | if ($type eq "string" and defined $spec->{'semantic'}) |
| 4098 | 50 | T | F | if (exists $generators->{$semantic_type}) { } |
| 4118 | 100 | T | F | if ($type eq "integer") |
| 4122 | 100 | T | F | if (not defined $min || defined $max) { } |
| 100 | T | F | elsif (not defined $min) { } |
| 100 | T | F | elsif (not defined $max) { } |
| 4141 | 100 | T | F | if ($type eq "number" or $type eq "float") |
| 4145 | 100 | T | F | if (not defined $min || defined $max) { } |
| 100 | T | F | elsif (not defined $min) { } |
| 100 | T | F | elsif (not defined $max) { } |
| 4151 | 100 | T | F | if ($max == $ZERO_BOUNDARY) { } |
| 100 | T | F | elsif ($max > $ZERO_BOUNDARY) { } |
| 4164 | 100 | T | F | if ($min == $ZERO_BOUNDARY) { } |
| 100 | T | F | elsif ($min > $ZERO_BOUNDARY) { } |
| 4178 | 100 | T | F | if ($range <= $ZERO_BOUNDARY) |
| 4191 | 100 | T | F | if ($type eq "string") |
| 4197 | 100 | T | F | if (defined $spec->{'matches'}) |
| 4207 | 100 | T | F | ref $pattern eq 'Regexp' ? : |
| 4208 | 50 | T | F | if ($@ or not defined $compiled) |
| 4215 | 100 | T | F | if (defined $spec->{'max'}) { } |
| 100 | T | F | elsif (defined $spec->{'min'}) { } |
| 4230 | 100 | T | F | if ($type eq "boolean") |
| 4237 | 100 | T | F | if ($type eq "arrayref") |
| 4248 | 100 | T | F | if ($type eq "hashref") |
| 4380 | 100 | T | F | unless defined $spec and ref $spec eq "HASH" |
| 4384 | 100 | T | F | if defined $spec->{'type'} |
| 4389 | 100 | T | F | unless ref $spec->{$field} eq "HASH" |
| 4391 | 100 | T | F | if defined $spec->{$field}{'type'} |
| 4433 | 100 | T | F | unless defined $properties and ref $properties eq "ARRAY" |
| 4434 | 100 | T | F | unless @{$properties;} |
| 4446 | 100 | T | F | if ($prop->{'should_die'}) { } |
| 4508 | 100 | T | F | unless defined $input_spec |
| 4509 | 100 | T | F | if not ref $input_spec and $input_spec eq "undef" |
| 4518 | 100 | T | F | if (_is_numeric_transform($input_spec, $output_spec)) |
| 4519 | 100 | T | F | if (defined $output_spec->{'min'}) |
| 4527 | 100 | T | F | if (defined $output_spec->{'max'}) |
| 4537 | 100 | T | F | if ($transform_name =~ /$TRANSFORM_POSITIVE_PATTERN/iu) |
| 4548 | 100 | T | F | if (defined $output_spec->{'value'}) |
| 4553 | 50 | T | F | ref $expected ? : |
| 4564 | 100 | T | F | if (_is_string_transform($input_spec, $output_spec)) |
| 4565 | 100 | T | F | if (defined $output_spec->{'min'}) |
| 4572 | 50 | T | F | if (defined $output_spec->{'max'}) |
| 4579 | 50 | T | F | if (defined $output_spec->{'matches'}) |
| 4586 | 0 | T | F | ref $pattern eq 'Regexp' ? : |
| 4587 | 0 | T | F | if ($@ or not defined $compiled) { } |
| 4603 | 100 | T | F | if (_same_type($input_spec, $output_spec)) |
| 4608 | 100 | T | F | if ($type eq "number" or $type eq "integer" or $type eq "float") |
| 4622 | 100 | T | F | unless (($output_spec->{'type'} // "") eq "undef") |
| 4688 | 100 | T | F | if (not ref $prop_def) { } |
| 100 | T | F | elsif (ref $prop_def eq 'HASH') { } |
| 4692 | 100 | T | F | unless (exists $builtin_properties->{$prop_name}) |
| 4702 | 50 | T | F | if (_has_positions($input_spec)) { } |
| 4713 | 50 | T | F | if ($module and defined $new) { } |
| 50 | T | F | elsif ($module and $module ne $MODULE_BUILTIN) { } |
| 4737 | 100 | T | F | unless ($prop_code) |
| 4744 | 50 | T | F | unless ($prop_code =~ /\$/u or $prop_code =~ /\w+/u) |