Condition Coverage

lib/UR/Object/Type/Initializer.pm
Criterion Covered Total %
condition 436 744 58.6


and 3 conditions

line !l l&&!r l&&r condition
203 1 0 2 scalar @{$meta_class_name . '::ISA';} and $meta_class_name->isa('UR::Object::Type')
581 22855 1913 5 @$id_properties > 1 and grep {$_ eq 'id';} @$id_properties
614 24026 11 733 $new_class{'data_source_id'} and not ref $new_class{'data_source_id'}
24037 73 660 $new_class{'data_source_id'} and not ref $new_class{'data_source_id'} and not $new_class{'schema_name'}
650 14341 0 41 $parent_class->{'subclassify_by_version'} and not $parent_class_name =~ /::Ghost/
655 0 15 14 $ns and $ns->can('component_version')
798 116383 25911 40 $property_data->{'to'} and $property_data->{'to'} eq '-filter'
821 116383 0 25951 defined $via and defined $to
823 23 25924 1 $via_property_data and $via_property_data->{'reverse_as'}
930 18728 1900 2 $key eq 'is_optional' and exists $properties->{$name}{'is_optional'}
926 343 636 $key eq 'is_optional' and exists $properties->{$name}{'is_optional'} and defined $properties->{$name}{'is_optional'}
1269 501 131 $key eq 'is_optional' and exists $properties->{$name}{'is_optional'} and defined $properties->{$name}{'is_optional'} and $properties->{$name}{'is_optional'} == 0
985 28627 53039 23 not exists $id_pdata->{$p} || exists $pdata->{$p} and exists $UR::Object::Property::defaults{$p}
1041 133951 8560 10 $old_property{'implied_by'} and $old_property{'implied_by'} eq $property_name
1139 0 0 0 $data->{'via'} =~ /^eav_/ and $data->{'to'} eq 'value'
1148 133020 9490 0 $new_property{'default_value'} and $new_property{'calculated_default'}
1158 6 12 0 $ref and $ref ne 'CODE'
1171 135260 7247 0 $new_property{'id_by'} and $new_property{'reverse_as'}
1179 0 0 1 ref $new_property{'data_type'} && $new_property{'data_type'}->isa('UR::Role::Param')
85777 1 0 $new_property{'data_type'} =~ /[^\w:]/ and not ref $new_property{'data_type'} && $new_property{'data_type'}->isa('UR::Role::Param')
1207 142490 16 2771307 $_ ne 'is_calculated' and $_ ne 'calculated_default'
1217 10759 24046 1902 defined $new_property{'via'} and not defined $new_property{'to'}
1223 58530 185 22 defined $class_data->{'subclassify_by'} and $class_data->{'subclassify_by'} eq $property_name
1261 137005 2827 2654 $new_class{'table_name'} || $the_data_source && $the_data_source->initializer_should_create_column_name_for_class_properties and not exists $new_property{'column_name'}
3285 2 2652 $new_class{'table_name'} || $the_data_source && $the_data_source->initializer_should_create_column_name_for_class_properties and not exists $new_property{'column_name'} and not $new_property{'is_transient'}
2829 1388 1264 $new_class{'table_name'} || $the_data_source && $the_data_source->initializer_should_create_column_name_for_class_properties and not exists $new_property{'column_name'} and not $new_property{'is_transient'} and not $new_property{'is_delegated'}
1390 344 920 $new_class{'table_name'} || $the_data_source && $the_data_source->initializer_should_create_column_name_for_class_properties and not exists $new_property{'column_name'} and not $new_property{'is_transient'} and not $new_property{'is_delegated'} and not $new_property{'is_calculated'}
1732 0 920 $new_class{'table_name'} || $the_data_source && $the_data_source->initializer_should_create_column_name_for_class_properties and not exists $new_property{'column_name'} and not $new_property{'is_transient'} and not $new_property{'is_delegated'} and not $new_property{'is_calculated'} and not $new_property{'is_legacy_eav'}
1269 20 900 0 $the_data_source and $the_data_source->table_and_column_names_are_upper_case
1274 141950 536 0 $new_property{'order_by'} and not $new_property{'is_many'}
1278 141950 536 0 $new_property{'specify_by'} and not $new_property{'is_many'}
1282 133926 8560 0 $new_property{'implied_by'} and $new_property{'implied_by'} eq $property_name
1343 12175 0 12515 not $bootstrapping || $class_name->isa('UR::Namespace') and $namespace_name
12175 1305 11210 not $bootstrapping || $class_name->isa('UR::Namespace') and $namespace_name and $namespace_name->isa('UR::Namespace')
1305 0 11210 not $bootstrapping || $class_name->isa('UR::Namespace') and $namespace_name and $namespace_name->isa('UR::Namespace') and $namespace_name->can('get')
1305 0 11210 not $bootstrapping || $class_name->isa('UR::Namespace') and $namespace_name and $namespace_name->isa('UR::Namespace') and $namespace_name->can('get') and my $namespace = $namespace_name->get
1354 24690 0 0 $^V lt v5.9.5 and $namespace_mro
24690 0 0 $^V lt v5.9.5 and $namespace_mro and $namespace_mro eq 'c3'
1360 0 13480 11210 $^V ge v5.9.5 and $namespace_mro
13480 8 11202 $^V ge v5.9.5 and $namespace_mro and &mro::get_mro($class_name) ne $namespace_mro
1464 0 24422 0 @actual and join($", @actual) ne join($", @expected)
1472 740 22614 1334 not $data_source and $class_name->can('__load__')
1478 22614 2063 11 $data_source and ref $data_source eq 'HASH'
1486 22614 461 1612 $self->{'data_source_id'} and not defined $self->{'table_name'}
1488 0 1595 17 $data_source_obj and $data_source_obj->initializer_should_create_column_name_for_class_properties
1517 559 0 1517 $parent_class->data_source_id and $parent_class->data_source_id eq $self->data_source_id
1532 25987 0 0 $parent_class->is_singleton and not $self->is_singleton
1639 80063 15316 0 $pinfo->{'plural_name'} and $pinfo->{'singular_name'}

or 2 conditions

line l !l condition
746 0 3233 5 $old_class_desc->{'id_implied'}{$name} ||= {}
1393 1063 23627 $_init_subclasses_loaded{$class_name} ||= []
1399 79685 1329 $_init_subclasses_loaded{$parent_class} ||= []
1409 5108 3632 $UR::Object::Index::all_by_class_name_and_property_name{$class_name}{$parent_property} ||= []
1441 24688 0 $self->{'relationships'} || []

or 3 conditions

line l !l&&r !l&&!r condition
133 24694 0 5 $desc->{'class_name'} ||= (caller 0)[0]
199 3 0 3 $desc->{'class_name'} ||= (caller 0)[0]
203 1 0 7 $meta_class_name eq 'UR::Object::Type' or scalar @{$meta_class_name . '::ISA';} and $meta_class_name->isa('UR::Object::Type')
515 2736 0 22033 exists $new_class{'is_transactional'} or $meta_classes{$class_name}
564 0 0 24769 not ref $new_class{'id_by'} or ref $new_class{'id_by'} ne 'ARRAY'
716 29 24728 1 $new_class{'meta_class_name'} ||= $meta_class_name
736 0 3237 1 $old_class_desc->{'id_implied'}{$name} ||= $data
837 24768 42 1 $class_name ||= $new_class->{'role_name'}
922 6131 6131 20629 $key eq 'is_specified_in_module_header' or $key eq 'position_in_module_header'
985 28627 0 53046 exists $id_pdata->{$p} || exists $pdata->{$p}
987 823 0 6097 $id_pdata->{$p} || $pdata->{$p}
1030 142511 0 1 shift() || $class
1199 142490 0 0 shift() || $class
1211 25948 0 116542 $new_property{'via'} or $new_property{'to'}
0 0 116542 $new_property{'via'} or $new_property{'to'} or $new_property{'id_by'}
7247 0 109295 $new_property{'via'} or $new_property{'to'} or $new_property{'id_by'} or $new_property{'reverse_as'}
1223 16543 0 58737 $new_property{'is_delegated'} or defined $class_data->{'subclassify_by'} and $class_data->{'subclassify_by'} eq $property_name
1247 5548 233 4 'UR::DataSource'->get($the_data_source) || eval { do { $the_data_source->get } }
1261 5335 0 137151 $new_class{'table_name'} || $the_data_source && $the_data_source->initializer_should_create_column_name_for_class_properties
1343 11966 209 12515 $bootstrapping || $class_name->isa('UR::Namespace')
1487 1575 37 0 'UR::DataSource'->get($self->{'data_source_id'}) || eval { do { $self->{'data_source_id'}->get } }
1561 2128 0 2996 $bootstrapping or exists $id_property_detail->{'data_type'}
1572 0 1388 1 $r_class ||= 'UR::Object::Type'->get($r_class_name)
1642 0 11179 0 $pinfo->{'plural_name'} ||= $pinfo->{'property_name'}
1646 0 68884 0 $pinfo->{'singular_name'} ||= $pinfo->{'property_name'}
1674 0 271 0 $name ||= $sql
1731 13 0 634 ref $_[0] || $_[0]
1 0 945 ref $_[0] || $_[0]
70 0 550 ref $_[0] || $_[0]
64 0 704 ref $_[0] || $_[0]
12 0 572 ref $_[0] || $_[0]
4 0 613 ref $_[0] || $_[0]
6 0 984 ref $_[0] || $_[0]
4 0 641 ref $_[0] || $_[0]
53 0 478 ref $_[0] || $_[0]
9 0 719 ref $_[0] || $_[0]
3 0 665 ref $_[0] || $_[0]
0 0 740 ref $_[0] || $_[0]
3 0 894 ref $_[0] || $_[0]
2 0 515 ref $_[0] || $_[0]
4 0 725 ref $_[0] || $_[0]
1 0 602 ref $_[0] || $_[0]
0 0 787 ref $_[0] || $_[0]
0 0 642 ref $_[0] || $_[0]
15 0 637 ref $_[0] || $_[0]
24 0 509 ref $_[0] || $_[0]
7 0 637 ref $_[0] || $_[0]
0 0 552 ref $_[0] || $_[0]
24 0 487 ref $_[0] || $_[0]
41 0 552 ref $_[0] || $_[0]
2 0 921 ref $_[0] || $_[0]
0 0 535 ref $_[0] || $_[0]
8 0 509 ref $_[0] || $_[0]
25 0 570 ref $_[0] || $_[0]
2 0 558 ref $_[0] || $_[0]
17 0 499 ref $_[0] || $_[0]
5 0 606 ref $_[0] || $_[0]
316 0 588 ref $_[0] || $_[0]
0 0 668 ref $_[0] || $_[0]
0 0 699 ref $_[0] || $_[0]
37 0 649 ref $_[0] || $_[0]
1 0 664 ref $_[0] || $_[0]
12 0 585 ref $_[0] || $_[0]
3 0 745 ref $_[0] || $_[0]
3 0 575 ref $_[0] || $_[0]
1 0 589 ref $_[0] || $_[0]
3 0 768 ref $_[0] || $_[0]
0 0 580 ref $_[0] || $_[0]
0 0 831 ref $_[0] || $_[0]
1 0 481 ref $_[0] || $_[0]
6 0 771 ref $_[0] || $_[0]
27 0 640 ref $_[0] || $_[0]
0 0 537 ref $_[0] || $_[0]
12 0 593 ref $_[0] || $_[0]
0 0 695 ref $_[0] || $_[0]
36 0 673 ref $_[0] || $_[0]
5 0 584 ref $_[0] || $_[0]
0 0 552 ref $_[0] || $_[0]
0 0 612 ref $_[0] || $_[0]
0 0 629 ref $_[0] || $_[0]
3 0 579 ref $_[0] || $_[0]
0 0 769 ref $_[0] || $_[0]
10 0 642 ref $_[0] || $_[0]
17 0 577 ref $_[0] || $_[0]
51 0 531 ref $_[0] || $_[0]
35 0 709 ref $_[0] || $_[0]
8 0 572 ref $_[0] || $_[0]
25 0 681 ref $_[0] || $_[0]
8 0 695 ref $_[0] || $_[0]
0 0 565 ref $_[0] || $_[0]
0 0 556 ref $_[0] || $_[0]
0 0 624 ref $_[0] || $_[0]
6 0 762 ref $_[0] || $_[0]
143 0 509 ref $_[0] || $_[0]
2 0 616 ref $_[0] || $_[0]
15 0 633 ref $_[0] || $_[0]
2 0 618 ref $_[0] || $_[0]
5 0 767 ref $_[0] || $_[0]
3 0 646 ref $_[0] || $_[0]
0 0 577 ref $_[0] || $_[0]
0 0 569 ref $_[0] || $_[0]
46 0 547 ref $_[0] || $_[0]
11 0 481 ref $_[0] || $_[0]
0 0 429 ref $_[0] || $_[0]
12 0 680 ref $_[0] || $_[0]
14 0 471 ref $_[0] || $_[0]
52 0 463 ref $_[0] || $_[0]
4 0 497 ref $_[0] || $_[0]
19 0 501 ref $_[0] || $_[0]
12 0 756 ref $_[0] || $_[0]
18 0 407 ref $_[0] || $_[0]
1 0 437 ref $_[0] || $_[0]
7 0 665 ref $_[0] || $_[0]
0 0 444 ref $_[0] || $_[0]
16 0 390 ref $_[0] || $_[0]
2 0 420 ref $_[0] || $_[0]
31 0 464 ref $_[0] || $_[0]
4 0 304 ref $_[0] || $_[0]
61 0 410 ref $_[0] || $_[0]
7 0 339 ref $_[0] || $_[0]
3 0 390 ref $_[0] || $_[0]
21 0 298 ref $_[0] || $_[0]
5 0 281 ref $_[0] || $_[0]
9 0 250 ref $_[0] || $_[0]
14 0 292 ref $_[0] || $_[0]
0 0 320 ref $_[0] || $_[0]
12 0 159 ref $_[0] || $_[0]
0 0 101 ref $_[0] || $_[0]
26 0 142 ref $_[0] || $_[0]
78 0 126 ref $_[0] || $_[0]
0 0 144 ref $_[0] || $_[0]
8 0 232 ref $_[0] || $_[0]
94 0 166 ref $_[0] || $_[0]
6 0 131 ref $_[0] || $_[0]
14 0 129 ref $_[0] || $_[0]
4 0 159 ref $_[0] || $_[0]
11 0 138 ref $_[0] || $_[0]
0 0 88 ref $_[0] || $_[0]
5 0 126 ref $_[0] || $_[0]
6 0 114 ref $_[0] || $_[0]
0 0 79 ref $_[0] || $_[0]
0 0 62 ref $_[0] || $_[0]
0 0 55 ref $_[0] || $_[0]
31 0 84 ref $_[0] || $_[0]
0 0 79 ref $_[0] || $_[0]
0 0 58 ref $_[0] || $_[0]
4 0 25 ref $_[0] || $_[0]
0 0 52 ref $_[0] || $_[0]
0 0 47 ref $_[0] || $_[0]
5 0 22 ref $_[0] || $_[0]
0 0 35 ref $_[0] || $_[0]
0 0 99 ref $_[0] || $_[0]
0 0 70 ref $_[0] || $_[0]
0 0 78 ref $_[0] || $_[0]
5 0 90 ref $_[0] || $_[0]
0 0 12 ref $_[0] || $_[0]
0 0 14 ref $_[0] || $_[0]
0 0 5 ref $_[0] || $_[0]
0 0 8 ref $_[0] || $_[0]
0 0 21 ref $_[0] || $_[0]
0 0 3 ref $_[0] || $_[0]
0 0 21 ref $_[0] || $_[0]
0 0 18 ref $_[0] || $_[0]
0 0 15 ref $_[0] || $_[0]
0 0 12 ref $_[0] || $_[0]
0 0 6 ref $_[0] || $_[0]
0 0 6 ref $_[0] || $_[0]
0 0 2 ref $_[0] || $_[0]
0 0 7 ref $_[0] || $_[0]
0 0 12 ref $_[0] || $_[0]
0 0 12 ref $_[0] || $_[0]
0 0 11 ref $_[0] || $_[0]
0 0 25 ref $_[0] || $_[0]
0 0 9 ref $_[0] || $_[0]
0 0 11 ref $_[0] || $_[0]
0 0 12 ref $_[0] || $_[0]
0 0 2 ref $_[0] || $_[0]
0 0 5 ref $_[0] || $_[0]
0 0 24 ref $_[0] || $_[0]
0 0 7 ref $_[0] || $_[0]
0 0 2 ref $_[0] || $_[0]
0 0 40 ref $_[0] || $_[0]
0 0 9 ref $_[0] || $_[0]
0 0 11 ref $_[0] || $_[0]
0 0 6 ref $_[0] || $_[0]
0 0 8 ref $_[0] || $_[0]
0 0 2 ref $_[0] || $_[0]
0 0 2 ref $_[0] || $_[0]
0 0 12 ref $_[0] || $_[0]
0 0 17 ref $_[0] || $_[0]
0 0 5 ref $_[0] || $_[0]
0 0 4 ref $_[0] || $_[0]
0 0 4 ref $_[0] || $_[0]
0 0 6 ref $_[0] || $_[0]
0 0 2 ref $_[0] || $_[0]

xor 4 conditions

line l&&r l&&!r !l&&r !l&&!r condition
985 28627 2958 3961 53039 exists $id_pdata->{$p} xor exists $pdata->{$p}