Branch Coverage

lib/JSON/Structure/JsonSourceLocator.pm
Criterion Covered Total %
branch 34 130 26.1


line true false branch
79 0 5 unless defined $path and length $self->{'json_text'}
95 15 251 if (substr($text, $i, 1) eq "\n")
110 1 4 if not defined $path or $path eq "" or $path eq "/"
115 4 4 if $segment eq ""
122 0 4 if ($segment =~ /^([^\[]+)\[(.+)\]$/u) { }
143 0 5 if $offset < 0 or $offset > length $self->{'json_text'}
152 4 3 if ($offsets->[$mid] <= $offset) { }
178 0 5 if $pos >= length $text
182 1 4 unless (@$segments)
192 0 4 if $current_pos >= length $text
197 4 0 if ($char eq '{') { }
0 0 elsif ($char eq '[') { }
201 0 4 if $found_pos < 0
209 0 0 unless $index =~ /^\d+$/u
214 0 0 if $found_pos < 0
246 0 4 if $pos >= $len or substr($text, $pos, 1) ne "{"
251 0 12 if $pos >= $len
256 0 12 if ($char eq "}")
261 4 8 if ($char eq ",")
267 8 0 if ($char eq '"') { }
270 0 8 if $key_end < 0
276 0 8 if $pos >= $len or substr($text, $pos, 1) ne ":"
281 4 4 if ($parsed_key eq $key)
289 0 4 if $pos < 0
306 0 0 if $pos >= $len or substr($text, $pos, 1) ne "["
313 0 0 if $pos >= $len
318 0 0 if ($char eq "]")
323 0 0 if ($char eq ",")
328 0 0 if ($current_index == $target_index)
334 0 0 if $pos < 0
349 0 12 if $pos >= $len or substr($text, $pos, 1) ne "\""
357 12 118 if ($char eq '"') { }
0 118 elsif ($char eq '\\') { }
363 0 0 if $pos >= $len
366 0 0 if ($escaped eq 'n') { }
0 0 elsif ($escaped eq 'r') { }
0 0 elsif ($escaped eq 't') { }
0 0 elsif ($escaped eq 'u') { }
378 0 0 if $pos + 4 >= $len
380 0 0 if ($hex =~ /^[0-9a-fA-F]{4}$/u) { }
409 0 4 if $pos >= $len
413 4 0 if ($char eq '"') { }
0 0 elsif ($char eq '{') { }
0 0 elsif ($char eq '[') { }
0 0 elsif ($char eq 't') { }
0 0 elsif ($char eq 'f') { }
0 0 elsif ($char eq 'n') { }
0 0 elsif ($char =~ /[-0-9]/u) { }
432 0 0 if substr($text, $pos, 4) eq "true"
438 0 0 if substr($text, $pos, 5) eq "false"
444 0 0 if substr($text, $pos, 4) eq "null"
466 0 0 if $pos >= $len or substr($text, $pos, 1) ne "{"
474 0 0 if ($char eq '"') { }
0 0 elsif ($char eq '{') { }
0 0 elsif ($char eq '}') { }
0 0 elsif ($char eq '[') { }
476 0 0 if $end_pos < 0
489 0 0 if $end_pos < 0
507 0 0 if $pos >= $len or substr($text, $pos, 1) ne "["
515 0 0 if ($char eq '"') { }
0 0 elsif ($char eq '[') { }
0 0 elsif ($char eq ']') { }
0 0 elsif ($char eq '{') { }
517 0 0 if $end_pos < 0
530 0 0 if $end_pos < 0