Branch Coverage

blib/lib/Types/JSONSchema.pm
Criterion Covered Total %
branch 170 220 77.2


line true false branch
84 0 0 if (@_)
94 2 0 if (@_)
160 3 883 unless my(@parts) = map({!defined($_) ? "undef" : (&is_JTrue($_) ? "!!1" : (&is_JFalse($_) ? "!!0" : (&is_JInteger($_) ? int $_ : (&is_JNumber($_) ? $_ : (&is_JString($_) ? B::perlstring($_) : (is_ArrayRef($_) ? sprintf("[%s]", _params_to_string(",", @$_)) : (is_HashRef($_) ? sprintf("{%s}", _params_to_string([",", "=>"], do { my $h = $_; map {$_, $h->{$_};} sort(keys %$h) })) : "$_")))))));} @args)
167 12 929 is_HashRef($_) ? :
83 941 is_ArrayRef($_) ? :
191 1024 &is_JString($_) ? :
6 1215 &is_JNumber($_) ? :
87 1221 &is_JInteger($_) ? :
10 1308 &is_JFalse($_) ? :
12 1318 &is_JTrue($_) ? :
47 1330 if (not defined $_) { }
170 12 871 if (is_ArrayRef($sep)) { }
1513 0 465 unless $OPTIMIZE
1518 26 442 if (@tc and eval { do { $got->parent->strictly_equals(&JIf()) } })
1520 23 3 if (eval { do { $next->parent->strictly_equals(&JIf()) } } and $next->type_parameter->strictly_equals($got->type_parameter))
1523 1 55 if ($_->equals(&Any())) { }
1524 46 0 eval { do { $_->parent->strictly_equals(&JThen()) } } ? :
0 46 if (not $_) { }
1528 0 0 if ($_->equals(&Any())) { }
1529 0 0 eval { do { $_->parent->strictly_equals(&JElse()) } } ? :
46 0 if (not $_) { }
1532 23 0 @then ? :
0 23 @else ? :
1544 114 307 if ($T->check($schema->{'type'})) { }
5 302 elsif (&ArrayRef()->of($T)->check($schema->{'type'})) { }
0 302 elsif (exists $schema->{'type'}) { }
1548 1 4 if (@{$schema->{'type'}} == 1) { }
1562 17 404 if (is_ArrayRef($schema->{'enum'})) { }
0 404 elsif (exists $schema->{'enum'}) { }
1569 24 397 if (exists $schema->{'const'})
1586 46 1217 if (is_ArrayRef($schema->{$k})) { }
0 1217 elsif (exists $schema->{$k}) { }
1596 9 412 if (is_JObject($schema->{'not'}) or &is_JBoolean($schema->{'not'})) { }
0 412 elsif (exists $schema->{'not'}) { }
1604 9 412 if (is_JObject($schema->{'if'}) or &is_JBoolean($schema->{'if'})) { }
0 412 elsif (exists $schema->{'if'}) { }
1606 5 4 exists $schema->{'then'} ? :
1607 6 3 exists $schema->{'else'} ? :
1617 7 835 if (is_JObject($schema->{$xxx})) { }
0 835 elsif (exists $schema->{$xxx}) { }
1622 5 6 if is_ArrayRef($ds{$k})
1627 4 3 if (@tc2)
1630 0 4 if (@primatives == 1 and $primatives[0] == &JObject()) { }
1645 0 421 if (is_ArrayRef($schema->{'prefixItems'})) { }
0 421 elsif (exists $schema->{'prefixItems'}) { }
1653 17 404 if (is_ArrayRef($schema->{'items'})) { }
11 393 elsif (is_JObject($schema->{'items'}) or &is_JBoolean($schema->{'items'})) { }
0 393 elsif (exists $schema->{'items'}) { }
1665 1 420 if (&is_JFalse($schema->{'additionalItems'}) and not exists $schema->{'items'}) { }
12 408 elsif (is_JObject($schema->{'additionalItems'}) or &is_JBoolean($schema->{'additionalItems'})) { }
0 408 elsif (exists $schema->{'additionalItems'}) { }
1669 2 10 if ($H{'items'}) { }
1680 7 414 if (is_JObject($schema->{'contains'}) or &is_JBoolean($schema->{'contains'})) { }
0 414 elsif (exists $schema->{'contains'}) { }
1683 0 7 if (is_PositiveOrZeroInt($schema->{'maxContains'})) { }
0 7 elsif (exists $schema->{'maxContains'}) { }
1690 0 7 if (is_PositiveOrZeroInt($schema->{'minContains'})) { }
0 7 elsif (exists $schema->{'minContains'}) { }
1701 0 421 if (is_JObject($schema->{'unevaluatedItems'}) or &is_JBoolean($schema->{'unevaluatedItems'})) { }
0 421 elsif (exists $schema->{'unevaluatedItems'}) { }
1708 36 385 if (keys %H)
1722 6 30 if (@primatives == 1 and $primatives[0] == &JArray()) { }
1734 53 789 if (is_JObject($schema->{$k})) { }
0 789 elsif (exists $schema->{$k}) { }
1744 9 412 if (is_JObject($schema->{'additionalProperties'}) or &is_JBoolean($schema->{'additionalProperties'})) { }
0 412 elsif (exists $schema->{'additionalProperties'}) { }
1751 0 421 if (is_JObject($schema->{'unevaluatedProperties'}) or &is_JBoolean($schema->{'unevaluatedProperties'})) { }
0 421 elsif (exists $schema->{'unevaluatedProperties'}) { }
1759 54 367 if (keys %H)
1771 3 51 if (@primatives == 1 and $primatives[0] == &JObject()) { }
1780 6 415 if (is_JObject($schema->{'propertyNames'}) or &is_JBoolean($schema->{'propertyNames'})) { }
0 415 elsif (exists $schema->{'propertyNames'}) { }
1783 0 6 if (@primatives == 1 and $primatives[0] == &JObject()) { }
1800 12 409 if (&is_PositiveNum($schema->{'multipleOf'})) { }
0 409 elsif (exists $schema->{'multipleOf'}) { }
1815 20 1664 if (&is_Num($schema->{$k})) { }
0 1664 elsif (exists $schema->{$k}) { }
1823 32 389 if (@tc2)
1826 1 31 if (@primatives == 1 and $primatives[0] == &JNumber()) { }
1840 6 415 if (is_PositiveOrZeroInt($schema->{'maxLength'})) { }
0 415 elsif (exists $schema->{'maxLength'}) { }
1847 5 416 if (is_PositiveOrZeroInt($schema->{'minLength'})) { }
0 416 elsif (exists $schema->{'minLength'}) { }
1854 0 421 if (&is_RegexpRef($schema->{'pattern'})) { }
3 418 elsif (is_Str($schema->{'pattern'})) { }
0 418 elsif (exists $schema->{'pattern'}) { }
1887 17 404 if (is_Str($schema->{'format'}) and exists $$formats{$schema->{'format'}})
1891 31 390 if (@tc2)
1894 1 30 if (@primatives == 1 and $primatives[0] == &JString()) { }
1908 3 418 if (is_PositiveOrZeroInt($schema->{'maxItems'})) { }
0 418 elsif (exists $schema->{'maxItems'}) { }
1915 3 418 if (is_PositiveOrZeroInt($schema->{'minItems'})) { }
0 418 elsif (exists $schema->{'minItems'}) { }
1922 6 415 if (&is_JBoolean($schema->{'uniqueItems'})) { }
0 415 elsif (exists $schema->{'uniqueItems'}) { }
1923 3 3 if &is_JTrue($schema->{'uniqueItems'})
1929 9 412 if (@tc2)
1932 1 8 if (@primatives == 1 and $primatives[0] == &JArray()) { }
1946 3 418 if (is_PositiveOrZeroInt($schema->{'maxProperties'})) { }
0 418 elsif (exists $schema->{'maxProperties'}) { }
1953 3 418 if (is_PositiveOrZeroInt($schema->{'minProperties'})) { }
0 418 elsif (exists $schema->{'minProperties'}) { }
1960 20 401 if (is_Strings($schema->{'required'})) { }
0 401 elsif (exists $schema->{'required'}) { }
1969 7 835 if (is_HashRef($schema->{$xxx})) { }
0 835 elsif (exists $schema->{$xxx}) { }
1972 5 6 if (is_Strings($dr{$k}))
1974 4 1 if @r
1983 29 392 if (@tc2)
1986 2 27 if (@primatives == 1 and $primatives[0] == &JObject()) { }