Condition Coverage

lib/MQUL.pm
Criterion Covered Total %
condition 146 242 60.3


and 3 conditions

line !l l&&!r l&&r condition
238 1 1 108 $doc and ref $doc
2 1 107 $doc and ref $doc and ref $doc eq "HASH"
240 1 104 2 $query and !ref($query) || ref $query ne 'HASH'
242 86 19 0 $defs and !ref($defs) || ref $defs ne 'ARRAY' || scalar @$defs % 2 != 0
258 109 0 12 $key eq "\$or" and ref $value eq "ARRAY"
106 0 3 $key eq "\$and" and ref $value eq "ARRAY"
321 94 2 0 builtin::blessed($value) and builtin::blessed($value) eq 'MongoDB::OID' || builtin::blessed($value) eq 'MorboDB::OID'
342 0 0 0 builtin::blessed($virt{$key}) and builtin::blessed($virt{$key}) eq 'MongoDB::OID' || builtin::blessed($virt{$key}) eq 'MorboDB::OID'
384 42 0 4 $q eq "\$mod" and ref $term eq "ARRAY"
42 0 4 $q eq "\$mod" and ref $term eq "ARRAY" and scalar @$term == 2
38 0 4 $q eq "\$in" and ref $term eq "ARRAY"
35 0 3 $q eq "\$nin" and ref $term eq "ARRAY"
31 0 4 $q eq "\$size" and &is_int($term)
28 0 3 $q eq "\$all" and ref $term eq "ARRAY"
0 0 28 $q eq "\$type" and not ref $term
391 0 0 38 defined $virt{$key} and not ref $virt{$key}
394 1 0 13 $virt{$key} && &is_float($term)
400 0 0 8 $virt{$key} && &is_float($term)
406 1 0 6 &is_float($virt{$key}) and &is_float($term)
412 0 0 5 &is_float($virt{$key}) and &is_float($term)
418 1 0 0 &is_float($virt{$key}) and &is_float($term)
424 1 1 1 &is_float($virt{$key}) and &is_float($term)
443 0 0 4 defined $virt{$key} and &is_float($virt{$key})
0 1 3 defined $virt{$key} and &is_float($virt{$key}) and $virt{$key} % $term->[0] == $term->[1]
447 0 1 3 defined $virt{$key} and &_value_in($virt{$key}, $term)
451 0 1 2 defined $virt{$key} and not &_value_in($virt{$key}, $term)
461 0 1 3 defined $virt{$key} and ref $virt{$key} eq 'ARRAY' && scalar @{$virt{$key};} == $term || ref $virt{$key} eq 'HASH' && scalar keys %{$virt{$key};} == $term
465 0 0 3 defined $virt{$key} and ref $virt{$key} eq "ARRAY"
472 0 1 2 defined $virt{$key} and &is_int($virt{$key})
475 0 0 4 defined $virt{$key} and &is_float($virt{$key})
478 0 0 2 defined $virt{$key} and &is_real($virt{$key})
481 0 1 1 defined $virt{$key} and &is_whole($virt{$key})
485 0 0 2 defined $virt{$key} and &is_string($virt{$key})
489 0 0 2 defined $virt{$key} and ref $virt{$key} eq "ARRAY"
493 0 1 4 defined $virt{$key} and ref $virt{$key} eq "HASH"
498 0 0 3 defined $virt{$key} and not ref $virt{$key}
506 1 0 2 builtin::blessed($date) and builtin::blessed($date) eq "DateTime"
509 0 1 2 exists $virt{$key} and not defined $virt{$key}
513 0 0 1 defined $virt{$key} and ref $virt{$key} eq "Regexp"
602 26 20 0 &is_float($_) and not &is_float($value)
603 20 26 0 not &is_float($_) and &is_float($value)
604 26 20 0 &is_float($_) and $value == $_
605 20 17 9 not &is_float($_) and $value eq $_
628 1 1 18 defined $doc and ref $doc
2 1 17 defined $doc and ref $doc and ref $doc eq "HASH"
630 1 0 16 defined $obj and ref $obj
1 1 15 defined $obj and ref $obj and ref $obj eq "HASH"
675 0 1 0 defined $doc->{$field} and ref $doc->{$field} ne "ARRAY"
686 0 1 0 defined $doc->{$field} and ref $doc->{$field} ne "ARRAY"
697 0 2 0 defined $doc->{$field} and ref $doc->{$field} ne "ARRAY"
703 1 0 1 ref $obj->{$op}{$field} && ref $obj->{$op}{$field} eq 'ARRAY'
716 0 2 0 defined $doc->{$field} and ref $doc->{$field} ne "ARRAY"
728 0 1 0 defined $doc->{$field} and ref $doc->{$field} ne "ARRAY"
740 0 1 0 defined $doc->{$field} and ref $doc->{$field} ne "ARRAY"
744 0 0 1 ref $obj->{$op}{$field} and ref $obj->{$op}{$field} eq "ARRAY"
0 0 1 ref $obj->{$op}{$field} and ref $obj->{$op}{$field} eq "ARRAY" and scalar @{$obj->{$op}{$field};} == 2
759 0 2 0 defined $doc->{$field} and ref $doc->{$field} ne "ARRAY"
775 0 1 0 defined $doc->{$field} and ref $doc->{$field} ne "ARRAY"
835 22 0 0 &is_float($array->[$i]) and &is_float($value)
907 1 12 37 $have and ref $have eq "HASH"
13 2 35 $have and ref $have eq "HASH" and exists $have->{$key}
1 4 10 $have and ref $have eq "ARRAY"
5 0 10 $have and ref $have eq "ARRAY" and $key =~ /^\d+$/
4 0 10 $have and ref $have eq "ARRAY" and $key =~ /^\d+$/ and scalar @$have > $key

or 2 conditions

line l !l condition
246 104 1 $query ||= {}
643 2 0 $doc->{$field} ||= 0
676 1 0 $doc->{$field} ||= []
687 1 0 $doc->{$field} ||= []
698 2 0 $doc->{$field} ||= []
717 2 0 $doc->{$field} ||= []
729 1 0 $doc->{$field} ||= []
745 1 0 $doc->{$field} ||= []
760 2 0 $doc->{$field} ||= []
776 1 0 $doc->{$field} ||= []

or 3 conditions

line l !l&&r !l&&!r condition
240 1 1 104 !ref($query) || ref $query ne 'HASH'
242 0 0 19 !ref($defs) || ref $defs ne 'ARRAY' || scalar @$defs % 2 != 0
321 0 0 2 builtin::blessed($value) eq 'MongoDB::OID' || builtin::blessed($value) eq 'MorboDB::OID'
342 0 0 0 builtin::blessed($virt{$key}) eq 'MongoDB::OID' || builtin::blessed($virt{$key}) eq 'MorboDB::OID'
384 14 8 77 $q eq "\$gt" or $q eq "\$gte"
22 7 70 $q eq "\$gt" or $q eq "\$gte" or $q eq "\$lt"
15 5 65 $q eq "\$gt" or $q eq "\$gte" or $q eq "\$lt" or $q eq "\$lte"
12 1 64 $q eq "\$gt" or $q eq "\$gte" or $q eq "\$lt" or $q eq "\$lte" or $q eq "\$eq"
6 3 61 $q eq "\$gt" or $q eq "\$gte" or $q eq "\$lt" or $q eq "\$lte" or $q eq "\$eq" or $q eq "\$ne"
461 2 2 0 ref $virt{$key} eq 'ARRAY' && scalar @{$virt{$key};} == $term || ref $virt{$key} eq 'HASH' && scalar keys %{$virt{$key};} == $term