Branch Coverage

lib/JSON/LINQ.pm
Criterion Covered Total %
branch 215 376 57.1


line true false branch
21 0 9 if ($] < "5.006" and not defined &warnings::import)
23 0 9 if $INC[-1] eq "."
43 1 1 ${$_[0];} ? :
77 52 0 defined $_[0] ? :
81 0 52 if length $$r
89 0 380 unless length $$r
93 100 280 if ($c eq '{') { }
25 255 elsif ($c eq '[') { }
115 140 elsif ($c eq '"') { }
1 139 elsif ($$r =~ s/\Anull(?=[^a-zA-Z0-9_]|$)//s) { }
12 127 elsif ($$r =~ s/\Atrue(?=[^a-zA-Z0-9_]|$)//s) { }
6 121 elsif ($$r =~ s/\Afalse(?=[^a-zA-Z0-9_]|$)//s) { }
121 0 elsif ($$r =~ s/\A(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)//s) { }
112 0 100 if ($$r =~ s/\A\}//s)
115 0 255 unless $$r =~ /\A"/
119 0 255 unless $$r =~ s/\A://s
124 155 100 if ($$r =~ s/\A,//s) { }
100 0 elsif ($$r =~ s/\A\}//s) { }
136 0 25 if ($$r =~ s/\A\]//s)
140 48 25 if ($$r =~ s/\A,//s) { }
25 0 elsif ($$r =~ s/\A\]//s) { }
158 370 1427 if ($$r =~ s/\A"//s) { }
0 1427 elsif ($$r =~ s[\A\\(["\\/bfnrt])][]s) { }
0 1427 elsif ($$r =~ s/\A\\u([0-9a-fA-F]{4})//s) { }
1427 0 elsif ($$r =~ s/\A($utf8_pat)//s) { }
171 0 0 if $cp <= 127
172 0 0 if ($cp <= 2047)
187 0 21 unless defined $v
188 0 0 $$v ? :
0 21 if (ref $v eq "JSON::LINQ::Boolean")
189 0 21 if (ref $v eq "ARRAY")
190 7 14 if (ref $v eq "HASH")
196 10 4 if (not ref $v and $v =~ /\A-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?\z/s)
228 43 222 if (exists $self->{'_factory'})
242 94 0 if (ref $source eq "ARRAY")
245 85 353 if $i >= scalar @$source
261 19 0 if ($] >= 5.006) { }
262 0 19 unless eval " open(\$fh, '<', \$file) "
266 0 0 unless open $fh, "< $file"
274 0 19 if $@
277 19 0 if (ref $data eq 'ARRAY') { }
0 0 elsif (ref $data eq 'HASH') { }
289 19 55 if $i >= scalar @$records
302 8 0 if ($] >= 5.006) { }
303 0 8 unless eval " open(\$fh, '<', \$file) "
307 0 0 unless open $fh, "< $file"
315 1 26 unless length $line
316 0 26 if $line =~ /\A\s*\z/
317 0 26 if $line =~ /\A\s*#/
320 0 26 if ($@)
336 0 7 if $@
339 6 1 if (ref $data eq 'ARRAY') { }
1 0 elsif (ref $data eq 'HASH') { }
351 7 19 if $i >= scalar @$records
365 21 0 if ($] >= 5.006) { }
367 0 21 unless eval " open(\$fh, '<', \$file) "
371 0 0 unless open $fh, "< $file"
380 8 69 unless length $line
383 192 0 /\A(.+?):(.*)\z/ ? :
386 69 0 if %record
401 1 5 if $remaining <= 0
423 0 0 if $remaining <= 0
441 8 5 if (@args == 1 and ref $args[0] eq 'CODE') { }
450 5 22 unless defined $row->{$k}
451 10 12 unless $row->{$k} eq $match{$k}
460 13 57 unless defined $item
461 30 27 if &$cond($item)
478 23 91 unless defined $item
493 10 8 if (@buffer)
498 2 6 unless defined $item
501 0 6 unless (ref $result eq "ARRAY")
519 5 4 unless ($first_done)
521 4 1 if (defined $item)
528 5 0 $second_iter ? :
545 0 0 unless defined $item1 and defined $item2
563 4 9 if $taken >= $count
565 0 9 unless defined $item
581 0 2 unless defined $item
596 0 0 if $done
598 0 0 unless defined $item
600 0 0 if (&$predicate($item)) { }
620 0 0 unless defined $item
622 0 0 if ($skipping) { }
623 0 0 unless (&$predicate($item))
722 0 23 unless defined $key
723 15 8 unless (exists $groups{$key})
755 5 27 unless defined $item
757 3 24 $key_selector ? :
758 0 27 unless defined $key
760 17 10 unless ($seen{$key}++)
771 0 40 unless defined $item
773 0 40 if (ref $item eq 'HASH') { }
0 40 elsif (ref $item eq 'ARRAY') { }
776 0 0 defined $item->{$k} ? :
782 0 0 defined $_ ? :
798 24 22 if $i >= scalar @$aref
825 0 4 $key_selector ? :
835 0 4 $key_selector ? :
837 0 4 if $seen{$key}++
838 2 2 if exists $second_set{$key}
851 0 4 $key_selector ? :
861 0 4 $key_selector ? :
863 0 4 if $seen{$key}++
864 2 2 unless exists $second_set{$key}
878 0 24 if ref $key
888 31 49 if @buffer
891 10 39 unless defined $outer_item
894 0 39 if ref $key
896 29 10 if (exists $inner_hash{$key})
915 0 20 if ref $key
916 0 20 unless defined $key
922 6 24 unless defined $outer_item
925 0 24 if ref $key
926 0 24 unless defined $key
928 18 6 exists $inner_lookup{$key} ? :
947 1 5 unless &$predicate($item)
957 4 2 if ($predicate) { }
959 2 9 if &$predicate($item)
965 1 1 defined $item ? :
973 0 2 if ($comparer) { }
1001 1 0 unless defined $item1 or defined $item2
1002 0 6 unless defined $item1 and defined $item2
1003 1 5 unless &$comparer($item1, $item2)
1016 1 0 if ($predicate) { }
1018 1 1 if &$predicate($item)
1024 0 0 if defined $item
1034 0 0 if (@_ >= 2) { }
0 0 elsif (@_ == 1) { }
1038 0 0 if (ref $_[0] eq 'CODE') { }
1047 0 0 $@ ? :
1055 1 0 if ($predicate) { }
1057 1 0 if &$predicate($items[$i])
1062 0 0 unless @items
1072 0 0 if (@_ >= 2) { }
0 0 elsif (@_ == 1) { }
1076 0 0 if (ref $_[0] eq 'CODE') { }
1086 0 0 if ($predicate) { }
1088 0 0 if &$predicate($items[$i])
1093 0 0 @items ? :
1105 0 0 if $predicate and not &$predicate($item)
1108 0 0 if ($count > 1)
1114 0 0 if $count == 0
1126 0 0 if $predicate and not &$predicate($item)
1129 0 0 if ($count > 1)
1135 0 0 $count == 1 ? :
1141 0 0 if $index < 0
1147 0 0 if $current == $index
1157 0 0 if $index < 0
1163 0 0 if $current == $index
1178 1 16 if ($predicate)
1208 3 2 if not defined $min or $val < $min
1221 2 3 if not defined $max or $val > $max
1238 0 1 if $count == 0
1254 1 0 if $count == 0
1264 1 2 if (@args == 1) { }
1 1 elsif (@args == 2) { }
1 0 elsif (@args == 3) { }
1268 0 1 unless defined $seed
1290 1 2 $result_selector ? :
1328 0 4 unless defined $key
1348 0 8 unless defined $key
1359 0 2 unless ($has_default_arg)
1370 3 3 if (defined $item)
1375 1 1 unless ($has_elements or $returned_default)
1390 2 0 if ($] >= 5.006) { }
1391 0 2 unless eval " open(\$fh, '>', \$filename) "
1395 0 0 unless open $fh, "> $filename"
1403 3 2 unless $first
1420 1 0 if ($] >= 5.006) { }
1421 0 1 unless eval " open(\$fh, '>', \$filename) "
1425 0 0 unless open $fh, "> $filename"
1447 5 0 if ($] >= 5.006) { }
1449 0 5 unless eval " open(\$fh, '>', \$filename) "
1453 0 0 unless open $fh, "> $filename"
1463 16 1 defined $record->{$_} ? :
1512 85 18 $i < scalar @sorted ? :
1531 26 124 if ($specs->[$i]{'dir'} < 0)
1532 122 28 if ($cmp != 0)
1534 122 7 $r != 0 ? :
1542 0 118 unless defined $val
1543 36 82 if ($type eq 'num') { }
56 26 elsif ($type eq 'str') { }
1544 36 0 defined $val && length $val ? :
1552 16 10 if ($t =~ /^[+-]?(?:\d+\.?\d*|\d*\.\d+)(?:[eE][+-]?\d+)?$/) { }
1563 43 107 if ($type eq 'num') { }
69 38 elsif ($type eq 'str') { }
1572 23 15 if ($fa == 0 and $fb == 0) { }
15 0 elsif ($fa == 1 and $fb == 1) { }