lib/UR/BoolExpr.pm | |||
---|---|---|---|
Criterion | Covered | Total | % |
condition | 54 | 80 | 67.5 |
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] : '') |
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 ||= '' |
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 |