Condition Coverage

blib/lib/Scalar/Random/PP/OO.pm
Criterion Covered Total %
condition 40 398 10.0


and 3 conditions

line !l l&&!r l&&r condition
80 2 0 0 exists $$pack{'VERSION'} and defined *{$$pack{'VERSION'};}{'SCALAR'}
2 0 0 exists $$pack{'VERSION'} and defined *{$$pack{'VERSION'};}{'SCALAR'} and defined ${$$pack{'VERSION'};}
82 2 0 0 exists $$pack{'ISA'} and defined *{$$pack{'ISA'};}{'ARRAY'}
2 0 0 exists $$pack{'ISA'} and defined *{$$pack{'ISA'};}{'ARRAY'} and @{$$pack{'ISA'};} != 0
186 0 0 0 defined $value && ref \$value eq 'SCALAR'
327 0 0 0 &blessed($object) and $object->isa($class->name)
347 0 0 4 defined $init_arg and exists $$args{$init_arg}
350 4 0 0 ref $$object{$slot} and $attribute->is_weak_ref
359 0 0 0 not $is_cloning and $attribute->is_required
369 0 0 0 ref $$object{$slot} and $attribute->is_weak_ref
379 4 0 0 $used < keys %{$args;} and $self->strict_constructor
560 0 0 0 ref $$args{'default'} and ref $$args{'default'} ne 'CODE'
567 2 0 0 $$args{'required'} and not $can_be_required
1042 0 0 0 ref $gv eq 'GLOB' and *{$gv;}{'CODE'} == $$spec{'EXPORTS'}{$keyword}
1192 0 0 0 defined $meta && $meta->does_role($role_name)
1352 0 0 0 $i + 1 < $max and ref $_[$i + 1]
1456 44 0 0 defined $check and ref $check ne 'CODE'
1601 0 0 0 not ref $other and $other eq '__ANON__'
1769 2 0 0 @_ == 1 and ref $_[0]
2 0 0 @_ == 2 and ref $_[1]
1889 0 0 0 @_ == 1 and ref $_[0] eq 'ARRAY'
1893 0 0 0 @_ == 1 && ref $_[0] eq 'ARRAY'
1905 0 0 0 @_ == 1 and ref $_[0] eq 'ARRAY'
1909 0 0 0 @_ == 1 && ref $_[0] eq 'ARRAY'
1914 0 0 0 defined $_[0] and not ref $_[0]
2170 0 0 0 defined $SUPER_PACKAGE and $SUPER_PACKAGE ne caller()
2292 2 0 0 @bad and $class ne 'Scalar::Random::PP::OO::Meta::Attribute'
2363 0 0 0 $self->should_coerce and $type_constraint->has_coercion
2401 0 0 0 exists $$args{$illegal} and exists $$self{$illegal}
2703 0 0 0 $self_lin_isa[0] eq $other_lin_isa[0] && $self_lin_isa[0]
2798 2 0 0 not $$attr{'associated_methods'} and ($$attr{'is'} || '') ne 'bare'
3042 0 0 0 &Scalar::Util::blessed($r) && $l->body == $r->body && $l->name eq $r->name && $l->package_name eq $r->package_name
3067 2 0 0 defined $constraint && $constraint->has_coercion && $attribute->should_coerce
3126 2 0 0 $attribute->is_lazy and $type ne 'wo'
3301 0 0 0 $attr->should_coerce && $type_constraint->has_coercion
3398 0 0 0 $class->can('BUILDARGS') and $class->can('BUILDARGS') != \&Scalar::Random::PP::OO::Object::BUILDARGS
3450 0 0 0 defined $tc && $tc->is_a_type_of('Object') && ($attr->is_required || $attr->has_default || $attr->has_builder) && ($attr->is_lazy || !$attr->has_clearer)
3468 0 0 0 ref $proxy && !&Scalar::Util::blessed($proxy)
3561 0 0 16 $package_name and not ref $package_name
3573 0 0 0 $package_name and not ref $package_name
3647 0 0 0 $code && $self->_code_is_mine($code)
3850 0 0 0 exists $args{'longmess'} and not $args{'longmess'}
3977 0 0 0 defined $dstcode and $dstcode != $code
4067 0 0 0 $args{'alias'} and not exists $args{-'alias'}
4070 0 0 0 $args{'excludes'} and not exists $args{-'excludes'}
4224 0 0 0 $existing and $existing != $spec
4236 0 0 0 $existing and $existing != $code

or 2 conditions

line l !l condition
207 0 0 Scalar::Random::PP::OO::Util::class_of($_[0]) || (return 0)
313 0 0 Scalar::Random::PP::OO::Util::get_code_ref($class, 'BUILD') || (next)
454 0 0 $$self{'before_method_modifiers'}{$method_name} ||= []
460 0 0 $$self{'around_method_modifiers'}{$method_name} ||= []
466 0 0 $$self{'after_method_modifiers'}{$method_name} ||= []
472 0 0 $$self{'before_method_modifiers'}{$method_name} ||= []
476 0 0 $$self{'around_method_modifiers'}{$method_name} ||= []
480 0 0 $$self{'after_method_modifiers'}{$method_name} ||= []
773 0 0 Scalar::Random::PP::OO::Util::get_code_ref($class, 'DEMOLISH') || (next)
793 0 0 Scalar::Random::PP::OO::Util::get_code_ref($class, 'BUILD') || (next)
921 0 12 $args{'groups'}{'all'} ||= \@all
932 0 10 $args{'groups'}{'default'} ||= \@all
1128 0 0 eval sprintf("#line %d %s\n", '1128', $hack_mouse_file) . "\n\t\t\tlocal \$^W = 0; # workaround 'redefine' warning to &install_subroutines\n\t\t\trequire XSLoader;\n\t\t\tXSLoader::load('Scalar::Random::PP::OO', \$VERSION);\n\t\t\tScalar::Random::PP::OO::Util->import({ into => 'Scalar::Random::PP::OO::Meta::Method::Constructor::XS' }, ':meta');\n\t\t\tScalar::Random::PP::OO::Util->import({ into => 'Scalar::Random::PP::OO::Meta::Method::Destructor::XS' }, ':meta');\n\t\t\tScalar::Random::PP::OO::Util->import({ into => 'Scalar::Random::PP::OO::Meta::Method::Accessor::XS' }, ':meta');\n\t\t\treturn 1;\n\t\t" || 0
1189 0 0 $meta || 'Scalar::Random::PP::OO::Meta::Class'
1504 0 0 $$self{'coercion_map'} ||= []
1808 0 0 $TYPE{$name}{'package_defined_in'} || 'Scalar::Random::PP::OO::Util::TypeConstraints'
2209 0 2 $args{'base_class'} || 'Scalar::Random::PP::OO::Object'
2210 0 2 $args{'metaclass'} || 'Scalar::Random::PP::OO::Meta::Class'
2574 0 0 ref $self && $self->associated_class || 'Scalar::Random::PP::OO::Meta::Class'
2798 0 0 $$attr{'is'} || ''
3847 0 0 $args{'depth'} || 0
4061 0 0 Scalar::Random::PP::OO::Util::class_of($instance) || 'Scalar::Random::PP::OO::Meta::Class'
4178 0 0 $$self{'methods'}{$method_name} || 0
4188 0 0 $$self{'composed_roles_by_method'}{$method_name} ||= []
4434 0 0 $args{'metaclass'} || 'Scalar::Random::PP::OO::Meta::Role'

or 3 conditions

line l !l&&r !l&&!r condition
61 0 0 2 ref $class or not defined $class
0 0 2 ref $class or not defined $class or not length $class
87 0 2 0 ref $entry ne 'GLOB' or defined *{$entry;}{'CODE'}
201 0 0 0 openhandle($_[0]) || blessed($_[0]) && $_[0]->isa('IO::Handle')
239 0 0 0 !defined($_) || &$check($_)
359 0 0 0 $attribute->has_default or $attribute->has_builder
360 0 0 0 $attribute->is_lazy or exists $$object{$slot}
577 0 2 0 $$args{'reader'} ||= $name
581 0 0 0 $$args{'reader'} ||= $name
584 0 0 0 $$args{'accessor'} ||= $name
629 0 0 0 $$args{'builder'} ||= "_build_$name"
631 0 0 0 $$args{'clearer'} ||= "_clear$name"
632 0 0 0 $$args{'predicate'} ||= "_has$name"
635 0 0 0 $$args{'clearer'} ||= "clear_$name"
636 0 0 0 $$args{'predicate'} ||= "has_$name"
644 0 0 0 $tc->is_a_type_of('ArrayRef') or $tc->is_a_type_of('HashRef')
654 0 0 0 exists $$args{'default'} or defined $$args{'builder'}
836 0 12 0 $args{'exporting_package'} ||= caller()
859 12 0 0 $args{'exporting_package'} ||= caller()
926 0 0 0 $exports{$keyword} || Carp::confess(qq[The $exporting_package package does not export "$keyword"])
948 36 0 0 $SPEC{$package} || Carp::confess("The package $package package does not use Scalar::Random::PP::OO::Exporter")
967 20 0 0 $$spec{'groups'}{$arg} || Carp::confess(qq[The $package package does not export the group "$arg"])
1012 86 0 0 $$spec{'EXPORTS'}{$keyword} || Carp::confess(qq[The $package package does not export "$keyword"])
1029 0 0 0 $SPEC{$package} || Carp::confess("The package $package does not use Scalar::Random::PP::OO::Exporter")
1120 2 0 0 defined &is_valid_class_name || $ENV{'MOUSE_PUREPERL'} || $ENV{'PERL_ONLY'}
1258 0 0 0 $cache{$cache_key}{$metaclass_name} ||= do { my $possible_full_name = join('::', 'Scalar::Random::PP::OO::Meta', $type, 'Custom', $options{'trait'} ? 'Trait' : (), $metaclass_name); my $loaded_class = load_first_existing_class($possible_full_name, $metaclass_name); $loaded_class->can('register_implementation') ? $loaded_class->register_implementation : $loaded_class }
1396 0 0 0 $feature ||= (caller 1)[3]
1404 0 0 0 ref $_[0] || $_[0]
1629 0 0 0 $name ||= sprintf('%s[%s]', $self->name, $param->name)
1631 0 0 0 $$self{'constraint_generator'} || $self->throw_error("The $name constraint cannot be used, because $param doesn't subtype from a parameterizable type")
1866 0 2 0 $$options{'class'} || $name
1877 0 0 0 $$options{'role'} || $name
1942 0 0 0 $TYPE{$name} ||= $base->parameterize($param, $name)
1952 0 0 0 $TYPE{$name} ||= 'Scalar::Random::PP::OO::Meta::TypeConstraint'->new('name', $name, 'type_constraints', \@types)
2029 0 0 2 Scalar::Random::PP::OO::Util::is_a_type_constraint($spec) or not defined $spec
2047 0 0 2 Scalar::Random::PP::OO::Util::is_a_type_constraint($spec) or not defined $spec
2050 2 0 0 $TYPE{$spec} || do { my $context = {'spec', $spec, 'orig', $spec}; my $type = _parse_type($context); if ($$context{'spec'}) { Carp::croak("Syntax error: extra elements '$$context{'spec'}' in '$$context{'orig'}'"); } ; $type }
2066 0 0 0 find_or_parse_type_constraint(@_) || role_type(@_)
2071 2 0 0 find_or_parse_type_constraint(@_) || class_type(@_)
2215 0 0 0 ref $_[0] || $_[0]
2431 0 0 0 $_[0]->reader || $_[0]->accessor
2434 0 0 0 $_[0]->writer || $_[0]->accessor
2440 0 0 0 $self->associated_class || $self->throw_error('No asocciated class for ' . $self->name)
2454 0 0 0 $$self{'_read_method_ref'} ||= $self->_get_accessor_method_ref('get_read_method', '_generate_reader')
2459 0 0 0 $$self{'_write_method_ref'} ||= $self->_get_accessor_method_ref('get_write_method', '_generate_writer')
2474 0 0 0 $$self{'_predicate_ref'} ||= $self->_get_accessor_method_ref('predicate', '_generate_predicate')
2482 0 0 0 $$self{'_crealer_ref'} ||= $self->_get_accessor_method_ref('clearer', '_generate_clearer')
2545 0 0 0 $$self{'isa'} || $$self{'does'} || $self->throw_error('Cannot find delegate metaclass for attribute ' . $self->name)
2550 0 0 0 $$self{'isa'} || $$self{'does'} || $self->throw_error('Cannot delegate methods based on a Regexp without a type constraint (isa)')
2609 2 2 0 ref $class || $class
2668 0 0 0 $self->can($metaclass_type . '_metaclass') || $self->can($metaclass_type . '_class')
3077 0 0 2 $type eq 'rw' or $type eq 'wo'
3105 0 0 0 $is_weak or $trigger
0 0 0 $is_weak or $trigger or $should_deref
3339 0 0 0 $attr->has_default or $attr->has_builder
3443 0 0 0 $attr->get_read_method || $attr->get_read_method_ref
3564 12 4 0 $METAS{$package_name} ||= $class->_construct_meta('package', $package_name, @args)
3583 0 0 0 ref $class_or_instance or $class_or_instance
3633 0 0 0 defined $$self{'methods'}{$method_name} || do { my $code = get_code_ref($$self{'package'}, $method_name); $self->_code_is_mine($code) if $code }
3645 0 0 0 $$self{'methods'}{$method_name} ||= do { my $code = get_code_ref($$self{'package'}, $method_name); $code && $self->_code_is_mine($code) ? $code : undef }
3708 0 0 0 ref $self || $self
3725 0 0 0 ref $attributes eq 'ARRAY' or ref $attributes eq 'HASH'
3770 0 0 0 ref $_[0] || $_[0]
3877 0 0 0 ref $class || $class
3908 0 0 0 $required{$_}++ || $self->has_method($_)
4439 0 0 0 ref $_[0] || $_[0]
4493 0 0 0 $for->can($metaclass = $key . '_metaclass') || $for->can($metaclass = $key . '_class') || $for->throw_error("Unknown metaclass '${key}'")
4508 0 0 0 $$args{'class_metaroles'} or $$args{'roles_metaroles'}
4583 0 0 0 ref $_ || $meta->does_role($_)