Condition Coverage

blib/lib/Class/MOP/Class.pm
Criterion Covered Total %
condition 74 101 73.2


and 3 conditions

line !l l&&!r l&&r condition
39 6 1 684210 $package_name and not ref $package_name
54 0 1 114 not exists $options{'weaken'} and &blessed($old_metaclass)
1 1 113 not exists $options{'weaken'} and &blessed($old_metaclass) and $old_metaclass->isa("Class::MOP::Class")
56 1 1 113 $old_metaclass and $old_metaclass->isa("Class::MOP::Class")
59 0 0 112 $old_metaclass and $old_metaclass->isa("Class::MOP::Class")
74 4 0 29419 defined $package_name and $package_name
211 2918 11 14821 ref $self eq "Class::MOP::Class" and &all(sub {
766 4 1 22 &blessed($instance) and $instance->isa($class->name)
1086 1 0 152 defined $method_name and length $method_name
1096 1 0 50 defined $method_name and length $method_name
1106 1 0 15331 defined $method_name and length $method_name
1130 1 0 35186 defined $method_name and length $method_name
1159 2 1 1523 defined $method_name and length $method_name
1176 1 0 30184 defined $method_name and length $method_name
1347 0 2 22580 $meta_attr and $trait eq $meta_attr->default
1436 12218 0 1 $self->has_method($name) and not $args{'replace_constructor'}
1476 0 1 759 exists $args{'destructor_class'} and defined $args{'destructor_class'}
1480 758 0 1 $self->has_method("DESTROY") and not $args{'replace_destructor'}

or 2 conditions

line l !l condition
39 6 1 $class || 'Class::MOP::Class'
177 13 26719 $options->{'attribute_metaclass'} || 'Class::MOP::Attribute'
5 26727 $options->{'method_metaclass'} || 'Class::MOP::Method'
1 26731 $options->{'wrapped_method_metaclass'} || 'Class::MOP::Method::Wrapped'
22 26710 $options->{'instance_metaclass'} || 'Class::MOP::Instance'
0 26732 $options->{'immutable_trait'} || 'Class::MOP::Class::Immutable::Trait'
0 26732 $options->{'constructor_name'} || 'new'
1 26731 $options->{'constructor_class'} || 'Class::MOP::Method::Constructor'
247 3353 0 Class::MOP::get_metaclass_by_name($superclass_name) || (return 1)
273 19983 0 Class::MOP::get_metaclass_by_name($superclass_name) || (return 1)
422 1411 1 ref $options{'superclasses'} eq "ARRAY" or "Class::MOP::Class"->_throw_exception("CreateMOPClassTakesArrayRefOfSuperclasses", "class", $class, "params", \%options)
1022 0 0 $name || (return)
1394 738 12219 $self->{'__immutable'}{'inlined_methods'} ||= []

or 3 conditions

line l !l&&r !l&&!r condition
41 654797 29413 0 Class::MOP::get_metaclass_by_name($package_name) || $class->_construct_class_instance('package', $package_name, @_)
428 23 1 0 ref $options{'attributes'} eq "ARRAY" or "Class::MOP::Class"->_throw_exception("CreateMOPClassTakesArrayRefOfAttributes", "class", $class, "params", \%options)
434 25 1 0 ref $options{'methods'} eq "HASH" or "Class::MOP::Class"->_throw_exception("CreateMOPClassTakesHashRefOfMethods", "class", $class, "params", \%options)
721 118500 21139 0 $self->{'_meta_instance'} ||= $self->_create_meta_instance
1337 22582 1 0 $self->immutable_trait || $self->_throw_exception('NoImmutableTraitSpecifiedForClass', 'class_name', $self->name, 'params', \%args)
1466 0 12215 2 $args{'replace_constructor'} or $constructor->can_be_inlined
1508 0 742 0 $args{'replace_destructor'} or $destructor->can_be_inlined