| line | % | coverage | branch |
| 1570 | 50 | T | F | if scalar @_ == 0 |
| 1576 | 50 | T | F | ref $_[0] ne 'HASH' ? : |
| 1582 | 100 | T | F | if (ref $_[0] eq 'HASH' or defined $_[2]) { } |
| 1594 | 100 | T | F | if ($params->{'schema_file'}) { } |
| 100 | T | F | elsif ($params->{'input_file'}) { } |
| 50 | T | F | elsif ($params->{'schema'}) { } |
| 1603 | 100 | T | F | if (defined $schema_file) |
| 1610 | 100 | T | F | if (defined $schema_file) { } |
| 1623 | 100 | T | F | if exists $schema->{'cases'} |
| 1624 | 50 | T | F | if exists $schema->{'edge_cases'} |
| 1625 | 100 | T | F | if exists $schema->{'type_edge_cases'} |
| 1627 | 100 | T | F | if exists $schema->{'module'} and length $schema->{'module'} |
| 1628 | 100 | T | F | if exists $schema->{'function'} |
| 1629 | 100 | T | F | if (exists $schema->{'new'}) |
| 1630 | 100 | T | F | defined $schema->{'new'} ? : |
| 1632 | 100 | T | F | if exists $schema->{'yaml_cases'} |
| 1633 | 100 | T | F | if exists $schema->{'seed'} |
| 1634 | 100 | T | F | if exists $schema->{'iterations'} |
| 1636 | 100 | T | F | if exists $schema->{'edge_case_array'} |
| 1639 | 100 | T | F | if exists $schema->{'config'} |
| 1644 | 100 | T | F | if (not $module) { } |
| 100 | T | F | elsif ($module eq $MODULE_BUILTIN) { } |
| 1645 | 50 | T | F | if ($schema_file) |
| 1650 | 0 | T | F | if (_is_perl_builtin($module)) |
| 1658 | 50 | T | F | if ($module and length $module and $module ne "builtin") |
| 1665 | 100 | T | F | if defined $module and length $module |
| 1674 | 50 | T | F | if defined $seed and $seed eq "" |
| 1678 | 100 | T | F | if (defined $yaml_cases) |
| 1679 | 100 | T | F | unless -f $yaml_cases |
| 1682 | 50 | T | F | if ($yaml_data and ref $yaml_data eq "HASH") |
| 1688 | 100 | T | F | unless ($outputs and ref $outputs eq "ARRAY") |
| 1701 | 50 | T | F | if (exists $cases{$k} and ref $cases{$k} eq "ARRAY" and ref $yaml_corpus_data{$k} eq "ARRAY") |
| 1706 | 100 | T | F | if (my $hints = delete $schema->{'_yamltest_hints'}) |
| 1707 | 50 | T | F | if (my $boundaries = $hints->{'boundary_values'}) |
| 1710 | 50 | T | F | if (my $invalid = $hints->{'invalid'}) |
| 1716 | 50 | T | F | if ($schema->{'type'} and $schema->{'type'} =~ /^(integer|number|float)$/u) |
| 1718 | 0 | T | F | unless defined $_ |
| 1719 | 0 | T | F | if &Scalar::Util::looks_like_number($_) |
| 1727 | 50 | T | F | if (exists $schema->{'relationships'} and ref $schema->{'relationships'} eq "ARRAY") |
| 1742 | 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') { } |
| 1789 | 100 | T | F | &Scalar::Util::looks_like_number($_) ? : |
| 50 | T | F | defined $_ ? : |
| 1795 | 50 | T | F | unless defined $a |
| 1796 | 50 | T | F | unless defined $b |
| 1801 | 100 | T | F | if $na and $nb |
| 1802 | 50 | T | F | if $na |
| 1803 | 50 | T | F | if $nb |
| 1812 | 100 | T | F | if (scalar @edge_case_array) |
| 1821 | 100 | T | F | if (ref $config{$key} eq "HASH") |
| 1824 | 100 | T | F | if (not defined $config{$key} && $config{$key}) { } |
| 1835 | 100 | T | F | if (scalar keys %input == 1 and exists $input{'type'} and not ref $input{'type'}) { } |
| 1844 | 50 | T | F | if (defined(my $re = $output{'matches'})) |
| 1845 | 0 | T | F | if (ref $re ne "Regexp") |
| 1849 | 0 | T | F | if ($@) { } |
| 1861 | 50 | T | F | if (defined(my $re = $output{'nomatch'})) |
| 1862 | 0 | T | F | if (ref $re ne "Regexp") |
| 1866 | 0 | T | F | if ($@) { } |
| 1875 | 100 | T | F | $new && ref $new eq 'HASH' ? : |
| 1878 | 100 | T | F | if (keys %transforms) |
| 1882 | 100 | T | F | if ($transforms_code) |
| 1899 | 100 | T | F | if (keys %transforms and $config{'properties'}{'enable'} // 0) |
| 1916 | 100 | T | F | if (keys %accessor) |
| 1921 | 50 | T | F | unless (defined $new) |
| 1924 | 50 | T | F | if ($type eq "getset") |
| 1925 | 0 | T | F | if (scalar keys %input != 1) |
| 1928 | 0 | T | F | if (scalar keys %output == 0) |
| 1935 | 100 | T | F | $module ? : |
| 1939 | 100 | T | F | if (defined $new and defined $module) { } |
| 100 | T | F | elsif (defined $module and length $module) { } |
| 1941 | 100 | T | F | if ($new_code eq '') { } |
| 1947 | 100 | T | F | if ($has_positions) { } |
| 1949 | 50 | T | F | if (defined $accessor{'type'}) |
| 1950 | 0 | T | F | if ($accessor{'type'} eq 'getter') { } |
| 0 | T | F | elsif ($accessor{'type'} eq 'getset') { } |
| 1957 | 0 | T | F | if ($accessor{'type'} eq "getset" or $accessor{'type'} eq "getter") |
| 1961 | 0 | T | F | if ($accessor{'type'} eq "getter") |
| 1966 | 0 | T | F | if ($output{'_returns_self'}) |
| 1972 | 50 | T | F | if ($output{'_returns_self'}) { } |
| 50 | T | F | elsif (defined $accessor{'type'} and $accessor{'type'} eq 'getset') { } |
| 1977 | 100 | T | F | if (scalar keys %input == 0) |
| 1978 | 100 | T | F | if (defined $accessor{'type'} and $accessor{'type'} eq "getter") |
| 1984 | 100 | T | F | if ($function eq 'new') { } |
| 1985 | 50 | T | F | if ($has_positions) { } |
| 1991 | 50 | T | F | if ($has_positions) { } |
| 1998 | 100 | T | F | if ($has_positions) { } |
| 2007 | 100 | T | F | if (($output{'type'} // "") eq "array") |
| 2008 | 50 | T | F | if (defined $call_code) |
| 2011 | 50 | T | F | if (defined $position_code) |
| 2018 | 100 | T | F | if (%all_cases) |
| 2024 | 50 | T | F | unless $inputs |
| 2028 | 50 | T | F | if ($expected_str eq q['_STATUS:DIES']) { } |
| 50 | T | F | elsif ($expected_str eq q['_STATUS:WARNS']) { } |
| 2034 | 50 | T | F | if (ref $inputs eq "HASH") |
| 2038 | 50 | T | F | if (ref $inputs eq 'ARRAY') { } |
| 0 | T | F | elsif (ref $inputs eq 'HASH') { } |
| 2051 | 50 | T | F | if ($input_str eq "undef" and not $config{'test_undef'}) |
| 2054 | 50 | T | F | if ($new) { } |
| 2055 | 0 | T | F | if ($status eq 'DIES') { } |
| 0 | T | F | elsif ($status eq 'WARNS') { } |
| 2066 | 0 | T | F | if (($output{'type'} // '') eq 'boolean') { } |
| 2067 | 0 | T | F | if ($expected_str eq '1') { } |
| 0 | T | F | elsif ($expected_str eq '0') { } |
| 2079 | 50 | T | F | if ($status eq 'DIES') { } |
| 50 | T | F | elsif ($status eq 'WARNS') { } |
| 2080 | 0 | T | F | if ($module) { } |
| 2088 | 0 | T | F | if ($module) { } |
| 2097 | 50 | T | F | ref $inputs eq 'ARRAY' ? : |
| 2100 | 50 | T | F | if (($output{'type'} // '') eq 'boolean') { } |
| 2101 | 0 | T | F | if ($expected_str eq '1') { } |
| 0 | T | F | elsif ($expected_str eq '0') { } |
| 2118 | 100 | T | F | if (defined $seed) |
| 2124 | 100 | T | F | defined $position_code ? : |
| 2160 | 50 | T | F | unless $tt->process($template, $vars, \$test) |
| 2162 | 100 | T | F | if ($test_file) { } |
| 2167 | 50 | T | F | unless open my $fh, ">:encoding(UTF-8)", $test_file |
| 2170 | 100 | T | F | if ($module) { } |
| 2195 | 100 | T | F | unless defined $name |
| 2264 | 100 | T | F | unless defined $schema_file |
| 2266 | 100 | T | F | unless length $schema_file |
| 2270 | 100 | T | F | unless -r $schema_file |
| 2275 | 50 | T | F | if (my $schema = "Config::Abstraction"->new("config_dirs", [".", ""], "config_file", $schema_file, "no_fixate", 1)) |
| 2280 | 50 | T | F | if ($schema = $schema->all) |
| 2283 | 100 | T | F | if (exists $schema->{$LEGACY_PERL_KEY_1} or exists $schema->{$LEGACY_PERL_KEY_2}) |
| 2324 | 100 | T | F | unless exists $schema->{$section} |
| 2328 | 100 | T | F | if ref $schema->{$section} eq "HASH" |
| 2333 | 100 | T | F | if defined $schema->{$section} and $schema->{$section} eq "undef" |
| 2375 | 100 | T | F | unless (defined $schema->{'module'} or defined $schema->{'function'}) |
| 2381 | 100 | T | F | unless (defined $schema->{'input'} or defined $schema->{'output'}) |
| 2386 | 100 | T | F | if ($schema->{'input'} and ref $schema->{'input'} ne "HASH") |
| 2387 | 100 | T | F | if ($schema->{'input'} eq 'undef') { } |
| 2395 | 100 | T | F | if ($schema->{'input'}) |
| 2402 | 100 | T | F | if (exists $schema->{'transforms'} and ref $schema->{'transforms'} eq "HASH") |
| 2407 | 100 | T | F | if (ref $schema->{'config'} eq "HASH") |
| 2411 | 100 | T | F | unless grep {$_ eq $k;} ('test_nuls', 'test_undef', 'test_empty', 'test_non_ascii', 'dedup', 'properties', 'close_stdin', 'test_security', 'timeout') |
| 2433 | 100 | T | F | unless length $param |
| 2439 | 100 | T | F | if (ref $spec) { } |
| 2441 | 100 | T | F | unless defined $spec->{'type'} |
| 2443 | 50 | T | F | if $spec->{'type'} eq "coderef" |
| 2445 | 100 | T | F | unless _valid_type($spec->{'type'}) |
| 2447 | 50 | T | F | unless _valid_type($spec) |
| 2478 | 100 | T | F | unless ref $spec eq "HASH" and defined $spec->{'position'} |
| 2484 | 100 | T | F | unless $pos =~ /^\d+$/u |
| 2489 | 100 | T | F | if exists $positions{$pos} |
| 2495 | 100 | T | F | if ($has_positions) |
| 2498 | 100 | T | F | unless (ref $spec eq "HASH" and defined $spec->{'position'}) |
| 2508 | 100 | T | F | if ($sorted[$i] != $i) |
| 2536 | 100 | T | F | unless ref $spec eq "HASH" |
| 2540 | 100 | T | F | if (defined $spec->{'semantic'}) |
| 2542 | 100 | T | F | unless (exists $semantic_generators->{$semantic}) |
| 2551 | 100 | T | F | if ($spec->{'enum'} and $spec->{'memberof'}) |
| 2557 | 100 | T | F | if (exists $spec->{$type}) |
| 2559 | 100 | T | F | unless ref $spec->{$type} eq "ARRAY" |
| 2588 | 100 | T | F | unless exists $transform->{'properties'} |
| 2591 | 100 | T | F | unless ref $transform->{'properties'} eq "ARRAY" |
| 2594 | 100 | T | F | if (not ref $prop) { } |
| 100 | T | F | elsif (ref $prop eq 'HASH') { } |
| 2596 | 100 | T | F | unless (exists $builtin_props->{$prop}) |
| 2603 | 100 | T | F | unless ($prop->{'name'} and $prop->{'code'}) |
| 2646 | 100 | T | F | if $field eq $CONFIG_PROPERTIES_KEY |
| 2647 | 100 | T | F | if $field eq "timeout" |
| 2649 | 100 | T | F | if (exists $config->{$field} and defined $config->{$field}) { } |
| 2652 | 50 | T | F | if (defined(my $b = $Readonly::Values::Boolean::booleans{$config->{$field}})) |
| 2665 | 100 | T | F | unless ref $config->{$CONFIG_PROPERTIES_KEY} eq "HASH" |
| 2697 | 100 | T | F | unless defined $type |
| 2738 | 100 | T | F | unless defined $name and length $name |
| 2742 | 100 | T | F | $opts{'package'} ? : |
| 2745 | 100 | T | F | unless $name =~ /$re/u |
| 2802 | 100 | T | F | unless $module |
| 2807 | 100 | T | F | if ($schema_file and not $mod_info) |
| 2822 | 50 | T | F | if ($verbose) |
| 2831 | 50 | T | F | if ($ENV{$ENV_VALIDATE_LOAD}) |
| 2834 | 0 | T | F | unless ($loaded) |
| 2843 | 0 | T | F | if ($verbose) |
| 2904 | 100 | T | F | unless defined $v |
| 2979 | 100 | T | F | unless $href and ref $href eq "HASH" |
| 2989 | 100 | T | F | unless (defined $def and ref $def eq "HASH") |
| 2990 | 100 | T | F | if (defined $def and not ref $def and _valid_type($def)) { } |
| 3003 | 100 | T | F | unless defined $def->{$subk} |
| 3007 | 50 | T | F | if (ref $def->{$subk}) |
| 3008 | 0 | T | F | unless (ref $def->{$subk} eq "ARRAY" or ref $def->{$subk} eq "Regexp") |
| 3021 | 100 | T | F | if ($subk eq $KEY_MATCHES or $subk eq $KEY_NOMATCH) { } |
| 3024 | 50 | T | F | ref $def->{$subk} eq 'Regexp' ? : |
| 3025 | 50 | T | F | if ($@ or not defined $re) |
| 3092 | 100 | T | F | unless $href and ref $href eq "HASH" |
| 3152 | 100 | T | F | unless $href and ref $href eq "HASH" |
| 3160 | 100 | T | F | unless ref $aref eq "ARRAY" |
| 3197 | 100 | T | F | unless defined $input_spec and ref $input_spec eq "HASH" |
| 3202 | 100 | T | F | unless ref $input_spec->{$field} eq "HASH" |
| 3205 | 100 | T | F | if defined $input_spec->{$field}{'position'} |
| 3237 | 50 | T | F | if ref $s |
| 3246 | 100 | T | F | unless defined $s |
| 3254 | 100 | T | F | unless $s =~ /\Q$l\E|\Q$r\E/u |
| 3262 | 100 | T | F | if index($s, $d) == $INDEX_NOT_FOUND |
| 3297 | 50 | T | F | if ref $s |
| 3301 | 100 | T | F | unless defined $s |
| 3364 | 100 | T | F | if $depth > 100 |
| 3367 | 100 | T | F | unless defined $v |
| 3371 | 100 | T | F | if $v eq "true" |
| 3372 | 100 | T | F | if $v eq "false" |
| 3374 | 100 | T | F | if (ref $v) |
| 3376 | 100 | T | F | if (ref $v eq "ARRAY") |
| 3382 | 100 | T | F | if (ref $v eq "Regexp") |
| 3387 | 100 | T | F | if $mods |
| 3398 | 100 | T | F | &looks_like_number($v) ? : |
| 3469 | 100 | T | F | if (not defined $input_spec or not ref $input_spec and $input_spec eq "undef") |
| 3478 | 100 | T | F | unless ref $input_spec eq "HASH" |
| 3494 | 50 | T | F | if (exists $transform->{'properties'} and ref $transform->{'properties'} eq "ARRAY") |
| 3511 | 50 | T | F | unless @all_props |
| 3523 | 50 | T | F | unless ref $spec eq "HASH" |
| 3532 | 50 | T | F | if (defined $gen and length $gen) |
| 3547 | 100 | T | F | if ($module and defined $new) { } |
| 50 | T | F | elsif ($module and $module ne $MODULE_BUILTIN) { } |
| 3562 | 50 | T | F | if (_has_positions($input_spec)) { } |
| 4068 | 100 | T | F | unless defined $spec and ref $spec eq "HASH" |
| 4078 | 100 | T | F | if ($type eq "string" and defined $spec->{'semantic'}) |
| 4082 | 50 | T | F | if (exists $generators->{$semantic_type}) { } |
| 4102 | 100 | T | F | if ($type eq "integer") |
| 4106 | 100 | T | F | if (not defined $min || defined $max) { } |
| 50 | T | F | elsif (not defined $min) { } |
| 50 | T | F | elsif (not defined $max) { } |
| 4125 | 100 | T | F | if ($type eq "number" or $type eq "float") |
| 4129 | 100 | T | F | if (not defined $min || defined $max) { } |
| 100 | T | F | elsif (not defined $min) { } |
| 100 | T | F | elsif (not defined $max) { } |
| 4135 | 50 | T | F | if ($max == $ZERO_BOUNDARY) { } |
| 0 | T | F | elsif ($max > $ZERO_BOUNDARY) { } |
| 4148 | 50 | T | F | if ($min == $ZERO_BOUNDARY) { } |
| 0 | T | F | elsif ($min > $ZERO_BOUNDARY) { } |
| 4162 | 50 | T | F | if ($range <= $ZERO_BOUNDARY) |
| 4175 | 100 | T | F | if ($type eq "string") |
| 4181 | 100 | T | F | if (defined $spec->{'matches'}) |
| 4191 | 50 | T | F | ref $pattern eq 'Regexp' ? : |
| 4192 | 50 | T | F | if ($@ or not defined $compiled) |
| 4199 | 50 | T | F | if (defined $spec->{'max'}) { } |
| 50 | T | F | elsif (defined $spec->{'min'}) { } |
| 4214 | 100 | T | F | if ($type eq "boolean") |
| 4221 | 100 | T | F | if ($type eq "arrayref") |
| 4232 | 50 | T | F | if ($type eq "hashref") |
| 4364 | 100 | T | F | unless defined $spec and ref $spec eq "HASH" |
| 4368 | 100 | T | F | if defined $spec->{'type'} |
| 4373 | 100 | T | F | unless ref $spec->{$field} eq "HASH" |
| 4375 | 100 | T | F | if defined $spec->{$field}{'type'} |
| 4417 | 100 | T | F | unless defined $properties and ref $properties eq "ARRAY" |
| 4418 | 100 | T | F | unless @{$properties;} |
| 4430 | 100 | T | F | if ($prop->{'should_die'}) { } |
| 4492 | 100 | T | F | unless defined $input_spec |
| 4493 | 100 | T | F | if not ref $input_spec and $input_spec eq "undef" |
| 4502 | 100 | T | F | if (_is_numeric_transform($input_spec, $output_spec)) |
| 4503 | 100 | T | F | if (defined $output_spec->{'min'}) |
| 4511 | 100 | T | F | if (defined $output_spec->{'max'}) |
| 4521 | 100 | T | F | if ($transform_name =~ /$TRANSFORM_POSITIVE_PATTERN/iu) |
| 4532 | 100 | T | F | if (defined $output_spec->{'value'}) |
| 4537 | 50 | T | F | ref $expected ? : |
| 4548 | 100 | T | F | if (_is_string_transform($input_spec, $output_spec)) |
| 4549 | 100 | T | F | if (defined $output_spec->{'min'}) |
| 4556 | 50 | T | F | if (defined $output_spec->{'max'}) |
| 4563 | 50 | T | F | if (defined $output_spec->{'matches'}) |
| 4570 | 0 | T | F | ref $pattern eq 'Regexp' ? : |
| 4571 | 0 | T | F | if ($@ or not defined $compiled) { } |
| 4587 | 100 | T | F | if (_same_type($input_spec, $output_spec)) |
| 4592 | 100 | T | F | if ($type eq "number" or $type eq "integer" or $type eq "float") |
| 4606 | 100 | T | F | unless (($output_spec->{'type'} // "") eq "undef") |
| 4672 | 100 | T | F | if (not ref $prop_def) { } |
| 100 | T | F | elsif (ref $prop_def eq 'HASH') { } |
| 4676 | 100 | T | F | unless (exists $builtin_properties->{$prop_name}) |
| 4686 | 50 | T | F | if (_has_positions($input_spec)) { } |
| 4697 | 50 | T | F | if ($module and defined $new) { } |
| 50 | T | F | elsif ($module and $module ne $MODULE_BUILTIN) { } |
| 4721 | 100 | T | F | unless ($prop_code) |
| 4728 | 50 | T | F | unless ($prop_code =~ /\$/u or $prop_code =~ /\w+/u) |