Condition Coverage

lib/UR/BoolExpr.pm
Criterion Covered Total %
condition 54 80 67.5


and 3 conditions

line !l l&&!r l&&r condition
116 0 0 247 ref $other_rule and $self->isa(ref $other_rule)
121 0 0 247 $my_template->isa('UR::BoolExpr::Template::And') and $other_template->isa('UR::BoolExpr::Template::And')
151 0 0 501413 defined $value_id and length $value_id
309 46 129 8 ref $value and &Scalar::Util::blessed($value)
175 0 8 ref $value and &Scalar::Util::blessed($value) and $value->isa('UR::Object')
393 0 1080 0 ref $value eq 'HASH' && exists $value->{'operator'} && exists $value->{'value'} && (keys %$value == 2 || keys %$value == 3 && exists $value->{'escape'})
404 178392 5916 6272 @_ == 3 and ref $_[2]
184308 280 5992 @_ == 3 and ref $_[2] and ref($_[2])->isa('UR::BoolExpr')
415 184586 1 1 $subject_class->isa('UR::Value::PerlReference') and $subject_class eq 'UR::Value::' . ref($_[0])
425 1100 183457 31 defined $in_params[0] and $in_params[0] eq '-or'
493 175 9751 1154 not $operator and $ref eq 'HASH'
612 8621 203 1580 $ref eq 'ARRAY' and $operator ne 'between'
8824 22 1558 $ref eq 'ARRAY' and $operator ne 'between' and $operator ne 'not between'
751 19816 1604 8403 $xremove_key_idx < @xremove_keys and $read_key_idx == $xremove_keys[$xremove_key_idx]
787 19816 1596 8403 $xremove_value_idx < @xremove_values and $read_value_idx == $xremove_values[$xremove_value_idx]
845 6150 0 1 @extra and defined wantarray
1078 0 0 0 $fdata->[1] && ($fdata->[1] ne '=' ? ' ' . $fdata->[1] : '')

or 2 conditions

line l !l condition
129 292 0 $my_template->operator_for($prop) || '='
130 292 0 $other_template->operator_for($prop) || '='
563 181998 2559 $subject_class_meta->{'cache'}{'UR::BoolExpr::resolve'} ||= {map({$_, 1;} $subject_class_meta->all_property_type_names)}
631 1461 97 $data_type ||= ''

or 3 conditions

line l !l&&r !l&&!r condition
57 2491875 501434 0 $self->{'template'} ||= $self->__template
136 0 0 292 ref $my_value or ref $other_value
685 8171 2 116 $property_meta->id_by or $property_meta->reverse_as
808 178513 5454 0 $subject_class_meta->{'cache'}{'UR::BoolExpr::resolve'}{'template for class and keys without constant values'}{"$subject_class @keys"} ||= 'UR::BoolExpr::Template::And'->_fast_construct($subject_class, \@keys, \@constant_values)
857 5364 79 0 $_[0]{'_params_list'} ||= do { my $self = $_[0]; my $template = $self->template; $self->values unless $self->{'values'}; my @list; my $template_class = ref $template; if ($template_class eq 'UR::BoolExpr::Template::And') { my($k, $v, $c) = ($template->{'_keys'}, $self->{'values'}, $template->{'_constant_values'}); my $vn = 0; my $cn = 0; foreach my $key (@$k) { push @list, $key; if (UR::BoolExpr::Util::is_meta_param($key)) { push @list, $$c[$cn++]; } else { push @list, $$v[$vn++]; } ; } ; } elsif ($template_class eq 'UR::BoolExpr::Template::Or') { my @sublist; my(@u) = $self->underlying_rules; foreach my $u (@u) { my(@p) = $u->_params_list; push @sublist, \@p; } ; @list = (-'or', \@sublist); } elsif ($template_class->isa('UR::BoolExpr::PropertyComparison')) { @list = ($template->logic_detail, [@{$self->{'values'};}]); } ; \@list }
1086 0 0 0 $usage_hints or $order
0 0 0 $usage_hints or $order or $page