line |
true |
false |
branch |
37
|
73 |
17 |
$spec_version ne 'draft7' ? :
|
|
73 |
17 |
$spec_version ne 'draft7' ? :
|
48
|
283 |
5664 |
if (XXX) { }
|
49
|
0 |
283 |
unless @{$schema->{'type'}}
|
52
|
2 |
582 |
unless &any(sub {
|
54
|
0 |
281 |
unless is_elements_unique($schema->{'type'})
|
57
|
2 |
5662 |
unless assert_keyword_type($state, $schema, "string")
|
59
|
4 |
5658 |
unless &any(sub {
|
66
|
1525 |
5416 |
if (XXX) { }
|
71
|
293 |
0 |
unless $type eq $_ or $_ eq "number" and $type eq "integer" or $type eq "string" and $state->{'stringy_numbers'} and &looks_like_number($data) and $_ eq 'number' || $_ eq 'integer' && $data == int $data
|
72
|
1410 |
115 |
if &any(sub {
|
79
|
2 |
121 |
if $type eq $schema->{'type'} or $schema->{'type'} eq "number" and $type eq "integer" or $type eq "string" and $state->{'stringy_numbers'} and &looks_like_number($data) and $schema->{'type'} eq 'number' || $schema->{'type'} eq 'integer' && $data == int $data or $schema->{'type'} eq "boolean" and $state->{'scalarref_booleans'} and $type eq "reference to SCALAR"
|
85
|
0 |
499 |
unless assert_keyword_type($state, $schema, "array")
|
92
|
268 |
188 |
if &any(sub {
|
95
|
181 |
7 |
!grep($_->{'path'}, @s) ? :
|
102
|
589 |
522 |
if is_equal($data, $schema->{'const'}, my $s = {"scalarref_booleans", $state->{'scalarref_booleans'}})
|
104
|
55 |
467 |
$s->{'path'} ? :
|
108
|
2 |
901 |
unless assert_keyword_type($state, $schema, "number")
|
109
|
0 |
901 |
if $schema->{'multipleOf'} <= 0
|
116
|
0 |
2 |
unless is_type("number", $data) or $state->{'stringy_numbers'} and is_type("string", $data) and &looks_like_number($data) and do {
|
119
|
52 |
648 |
if (ref($data) =~ /^Math::Big(?:Int|Float)$/u or ref($schema->{'multipleOf'}) =~ /^Math::Big(?:Int|Float)$/u or get_type($data) eq 'number' or get_type($schema->{'multipleOf'}) eq 'number') { }
|
122
|
30 |
22 |
ref($data) =~ /^Math::Big(?:Int|Float)$/u ? :
|
123
|
48 |
4 |
ref($schema->{'multipleOf'}) =~ /^Math::Big(?:Int|Float)$/u ? :
|
125
|
0 |
52 |
if $quotient->is_inf
|
126
|
30 |
22 |
if $remainder == 0
|
130
|
648 |
0 |
"$]" >= 5.022 ? :
|
|
0 |
648 |
if "$]" >= "5.022" ? isinf($quotient) : $quotient =~ /^-?Inf$/iu
|
132
|
344 |
304 |
if int $quotient == $quotient
|
142
|
0 |
1 |
unless is_type("number", $data) or $state->{'stringy_numbers'} and is_type("string", $data) and &looks_like_number($data)
|
143
|
266 |
214 |
if 0 + $data <= $schema->{'maximum'}
|
151
|
0 |
1 |
unless is_type("number", $data) or $state->{'stringy_numbers'} and is_type("string", $data) and &looks_like_number($data)
|
152
|
146 |
163 |
if 0 + $data < $schema->{'exclusiveMaximum'}
|
160
|
0 |
1 |
unless is_type("number", $data) or $state->{'stringy_numbers'} and is_type("string", $data) and &looks_like_number($data)
|
161
|
281 |
266 |
if 0 + $data >= $schema->{'minimum'}
|
169
|
0 |
1 |
unless is_type("number", $data) or $state->{'stringy_numbers'} and is_type("string", $data) and &looks_like_number($data)
|
170
|
116 |
132 |
if 0 + $data > $schema->{'exclusiveMinimum'}
|
177
|
225 |
360 |
unless is_type("string", $data)
|
178
|
190 |
170 |
if length $data <= $schema->{'maxLength'}
|
186
|
226 |
327 |
unless is_type("string", $data)
|
187
|
173 |
154 |
if length $data >= $schema->{'minLength'}
|
193
|
1 |
989 |
unless assert_keyword_type($state, $schema, "string") and assert_pattern($state, $schema->{'pattern'})
|
198
|
243 |
789 |
unless is_type("string", $data)
|
200
|
418 |
370 |
if $data =~ /(?:$schema->{'pattern'})/u
|
207
|
177 |
264 |
unless is_type("array", $data)
|
208
|
138 |
126 |
if @$data <= $schema->{'maxItems'}
|
209
|
22 |
104 |
$schema->{'maxItems'} > 1 ? :
|
215
|
218 |
274 |
unless is_type("array", $data)
|
216
|
146 |
128 |
if @$data >= $schema->{'minItems'}
|
217
|
116 |
12 |
$schema->{'minItems'} > 1 ? :
|
221
|
0 |
856 |
unless assert_keyword_type($state, $schema, "boolean")
|
226
|
212 |
619 |
unless is_type("array", $data)
|
227
|
165 |
454 |
unless $schema->{'uniqueItems'}
|
228
|
249 |
205 |
if is_elements_unique($data, my $equal_indices = [])
|
236
|
8 |
76 |
unless exists $state->{'_num_contains'}
|
237
|
0 |
76 |
unless is_type("array", $data)
|
240
|
32 |
44 |
if $state->{'_num_contains'} > $schema->{'maxContains'}
|
248
|
8 |
94 |
unless exists $state->{'_num_contains'}
|
249
|
0 |
94 |
unless is_type("array", $data)
|
252
|
34 |
60 |
if $state->{'_num_contains'} < $schema->{'minContains'}
|
260
|
146 |
210 |
unless is_type("object", $data)
|
261
|
108 |
102 |
if keys %$data <= $schema->{'maxProperties'}
|
263
|
12 |
90 |
$schema->{'maxProperties'} > 1 ? :
|
269
|
146 |
210 |
unless is_type("object", $data)
|
270
|
108 |
102 |
if keys %$data >= $schema->{'minProperties'}
|
272
|
6 |
96 |
$schema->{'minProperties'} > 1 ? :
|
276
|
0 |
1707 |
unless assert_keyword_type($state, $schema, "array")
|
278
|
0 |
1707 |
if &any(sub {
|
279
|
0 |
1707 |
unless is_elements_unique($schema->{'required'})
|
284
|
158 |
1561 |
unless is_type("object", $data)
|
287
|
850 |
711 |
unless @missing
|
288
|
36 |
675 |
@missing > 1 ? :
|
292
|
0 |
320 |
unless assert_keyword_type($state, $schema, "object")
|
297
|
0 |
336 |
unless is_type("array", $schema->{'dependentRequired'}{$property})
|
301
|
1 |
349 |
unless is_type("string", $schema->{'dependentRequired'}{$property}[$index])
|
305
|
0 |
336 |
unless is_elements_unique($schema->{'dependentRequired'}{$property})
|
311
|
105 |
185 |
unless is_type("object", $data)
|
315
|
36 |
165 |
unless exists $data->{$property}
|
317
|
85 |
80 |
if (my(@missing) = grep((!exists $data->{$_}), @{$$schema{"dependentRequired"}{$property}}))
|
318
|
5 |
80 |
@missing > 1 ? :
|
323
|
100 |
85 |
if $valid
|
328
|
8 |
2587 |
unless assert_keyword_type($state, $schema, "number")
|
333
|
0 |
3309 |
unless assert_keyword_type($state, $schema, "integer")
|
335
|
0 |
3309 |
if $$schema{$state->{'keyword'}} < 0
|