Condition Coverage

blib/lib/Class/MOP/Class.pm
Criterion Covered Total %
condition 78 101 77.2


and 3 conditions

line !l l&&!r l&&r condition
39 6 1 701435 $package_name and not ref $package_name
54 0 1 115 not exists $options{'weaken'} and &blessed($old_metaclass)
1 1 114 not exists $options{'weaken'} and &blessed($old_metaclass) and $old_metaclass->isa("Class::MOP::Class")
56 1 1 114 $old_metaclass and $old_metaclass->isa("Class::MOP::Class")
59 0 0 113 $old_metaclass and $old_metaclass->isa("Class::MOP::Class")
74 4 0 30237 defined $package_name and $package_name
211 2982 11 15236 ref $self eq "Class::MOP::Class" and &all(sub {
766 4 1 22 &blessed($instance) and $instance->isa($class->name)
1086 1 0 158 defined $method_name and length $method_name
1096 1 0 54 defined $method_name and length $method_name
1106 1 0 15716 defined $method_name and length $method_name
1130 1 0 36129 defined $method_name and length $method_name
1159 2 1 1558 defined $method_name and length $method_name
1176 1 0 30959 defined $method_name and length $method_name
1347 0 2 23218 $meta_attr and $trait eq $meta_attr->default
1436 12576 0 2 $self->has_method($name) and not $args{'replace_constructor'}
1476 0 1 779 exists $args{'destructor_class'} and defined $args{'destructor_class'}
1480 776 1 2 $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 27476 $options->{'attribute_metaclass'} || 'Class::MOP::Attribute'
5 27484 $options->{'method_metaclass'} || 'Class::MOP::Method'
1 27488 $options->{'wrapped_method_metaclass'} || 'Class::MOP::Method::Wrapped'
22 27467 $options->{'instance_metaclass'} || 'Class::MOP::Instance'
0 27489 $options->{'immutable_trait'} || 'Class::MOP::Class::Immutable::Trait'
0 27489 $options->{'constructor_name'} || 'new'
1 27488 $options->{'constructor_class'} || 'Class::MOP::Method::Constructor'
247 3417 0 Class::MOP::get_metaclass_by_name($superclass_name) || (return 1)
273 20374 0 Class::MOP::get_metaclass_by_name($superclass_name) || (return 1)
422 1434 1 ref $options{'superclasses'} eq "ARRAY" or "Class::MOP::Class"->_throw_exception("CreateMOPClassTakesArrayRefOfSuperclasses", "class", $class, "params", \%options)
1022 0 0 $name || (return)
1394 753 12573 $self->{'__immutable'}{'inlined_methods'} ||= []

or 3 conditions

line l !l&&r !l&&!r condition
41 671204 30231 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 121417 21726 0 $self->{'_meta_instance'} ||= $self->_create_meta_instance
1337 23220 1 0 $self->immutable_trait || $self->_throw_exception('NoImmutableTraitSpecifiedForClass', 'class_name', $self->name, 'params', \%args)
1466 2 12566 7 $args{'replace_constructor'} or $constructor->can_be_inlined
1508 1 757 1 $args{'replace_destructor'} or $destructor->can_be_inlined