Condition Coverage

blib/lib/Getopt/Class.pm
Criterion Covered Total %
condition 83 240 34.5


and 2 conditions

line l !l condition
275 0 32 $def->{'alias'} and scalar @{$def->{'alias'};}
316 6 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL
319 0 0 not defined $Nice::Try::WANTARRAY and scalar @Nice::Try::LAST_VAL

and 3 conditions

line !l l&&!r l&&r condition
89 96 0 0 index($k, "-") != -1 and $k eq $k2_dash
97 0 78 18 not ref $def->{'alias'} and length $def->{'alias'}
124 18 0 18 $def->{'type'} eq "code" and ref $def->{'code'} eq "CODE"
182 84 12 0 $def->{'re'} and ref $def->{'re'} ne "Regexp"
200 1 0 0 scalar @_ and $self->_is_hash($_[0])
213 4 0 0 not !$p->{'required'} and $def->{'required'}
215 0 0 0 $def->{'type'} =~ /^(?:boolean|decimal|integer|string)/ and not length $v->{$f}
0 0 0 $def->{'type'} eq 'hash' || $def->{'type'} eq 'string-hash' and not scalar keys %{$$v{$f};}
0 0 0 $def->{'type'} eq "array" and not scalar @{$v->{$f};}
223 3 0 0 $def->{'type'} eq "decimal" and not $v->{$f} =~ /^\d+(\.\d{1,12})?$/
225 1 0 0 $def->{'type'} eq "string" and length $v->{$f}
1 0 0 $def->{'type'} eq "string" and length $v->{$f} and not $v->{$f} =~ /$def->{'re'}/
257 2 2 0 scalar keys %$classes and not exists $classes->{$class}
311 6 0 0 $INC{'threads.pm'} and not exists $INC{'forks.pm'}
316 6 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
319 0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 6 0 defined $Nice::Try::WANTARRAY and !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
0 0 0 defined $Nice::Try::WANT and length $Nice::Try::WANT
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__NEXT__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__LAST__"
0 0 0 defined $Nice::Try::RETVAL[0] and $Nice::Try::RETVAL[0] eq "__REDO__"
370 0 1 0 exists $opts->{$key} and !(defined $opts->{$key} && length $opts->{$key}) || $opts->{$key} =~ /^[[:blank:]]*$/ || ref $opts->{$key} eq 'SCALAR' && (!length(${$opts->{$key};}) || ${$opts->{$key};} =~ /^[[:blank:]]*$/) || ref $opts->{$key} eq 'ARRAY' && !scalar(@{$opts->{$key};})
429 1 0 0 scalar @_ and $self->_is_hash($_[0])
468 69 0 2 $def->{'type'} eq 'date' || $def->{'type'} eq 'datetime' and length $opts->{$k}
565 6 0 6 $call_offset > 0 and $call_data[0] ne $class
6 0 6 $call_offset > 0 and $call_data[0] ne $class and (caller $call_offset - 1)[0] eq $class
570 0 0 0 $call_offset > 0 and (caller $call_offset - 1)[0] ne $class
596 10 0 0 exists $def->{'type'} && defined $def->{'type'}
0 0 0 $self->_is_object($self->{$f}) and $self->{$f}->isa("Module::Generic::Boolean")
814 6 0 12 $call_offset > 0 and $call_data[0] ne $class
6 12 0 $call_offset > 0 and $call_data[0] ne $class and (caller $call_offset - 1)[0] eq $class
820 0 0 0 $call_offset > 0 and (caller $call_offset - 1)[0] ne $class
896 114 7 53 $enabled and exists $aliases->{$key}

or 2 conditions

line l !l condition
38 6 0 shift @_ || (return $self->error('No hash parameter was provided.'))
47 6 0 $param->{'dictionary'} || (return $self->error('No dictionary was provided to initiate Getopt::Long'))
71 6 0 tie(%options, 'Getopt::Class::Alias', {'dict', $dict, 'aliases', $self->{'aliases'}, 'debug', $self->{'debug'}}) || (return $self->error('Unable to get a Getopt::Class::Alias tie object: ', 'Getopt::Class::Alias'->error))
197 1 0 shift @_ || (return $self->error('No class was provided to return its definition'))
201 1 0 $self->class($class) || (return)
202 1 0 $self->get_class_values($class) || (return)
212 0 4 $def->{'error'} ||= "does not match requirements"
253 4 0 shift @_ || (return $self->error('No class was provided to return its definition'))
310 6 0 $self->getopt || (return $self->error('No Getopt::Long::Parser object found.'))
344 6 0 $self->getopt || (return $self->error('No Getopt::Long object found.'))
348 6 0 tied %$opts || (return $self->error('Unable to get the tie object for the options value hash.'))
415 6 0 'Getopt::Class::Values'->new({'data', $opts, 'dict', $dict, 'aliases', $aliases, 'debug', $self->{'debug'}}) || (return $self->pass_error('Getopt::Class::Values'->error))
422 1 0 shift @_ || (return $self->error('No class was provided to return its definition'))
424 1 0 $self->class($class) || (return)
432 1 3 &Scalar::Util::reftype($opts->{$f}) // ""
827 6 0 $bitmask // 0
829 6 0 $opts->{'dict'} || (return 'Getopt::Class::Alias'->error('No dictionary was provided to Getopt::Class:Alias'))
861 0 6 $opts->{'debug'} || 0

or 3 conditions

line l !l&&r !l&&!r condition
124 6 0 60 $def->{'type'} eq "array" or $def->{'type'} eq "file-array"
0 6 0 $def->{'type'} eq "date" or $def->{'type'} eq "datetime"
136 6 0 0 exists $def->{'min'} or exists $def->{'max'}
215 0 0 0 $def->{'type'} eq 'hash' || $def->{'type'} eq 'string-hash'
0 0 0 $def->{'type'} =~ /^(?:boolean|decimal|integer|string)/ and not length $v->{$f} or $def->{'type'} eq 'hash' || $def->{'type'} eq 'string-hash' and not scalar keys %{$$v{$f};}
0 0 0 $def->{'type'} =~ /^(?:boolean|decimal|integer|string)/ and not length $v->{$f} or $def->{'type'} eq 'hash' || $def->{'type'} eq 'string-hash' and not scalar keys %{$$v{$f};} or $def->{'type'} eq "array" and not scalar @{$v->{$f};}
319 0 0 6 !&Scalar::Util::blessed($Nice::Try::RETVAL[0]) || &Scalar::Util::blessed($Nice::Try::RETVAL[0]) && !$Nice::Try::RETVAL[0]->isa('Nice::Try::SENTINEL')
370 0 0 0 !(defined $opts->{$key} && length $opts->{$key}) || $opts->{$key} =~ /^[[:blank:]]*$/ || ref $opts->{$key} eq 'SCALAR' && (!length(${$opts->{$key};}) || ${$opts->{$key};} =~ /^[[:blank:]]*$/) || ref $opts->{$key} eq 'ARRAY' && !scalar(@{$opts->{$key};})
465 71 0 25 length $opts->{$k} or $def->{'default'}
468 0 2 69 $def->{'type'} eq 'date' || $def->{'type'} eq 'datetime'
0 6 57 $def->{'type'} eq "hash" or $def->{'type'} eq "string-hash"
7 0 18 $def->{'type'} eq "integer" or $def->{'decimal'}
541 0 6 0 ref $that || $that
549 6 0 0 ref $self || $self
570 6 0 0 $call_data[9] or $call_offset > 0 and (caller $call_offset - 1)[0] ne $class
585 10 0 0 ref $self || $self
596 0 0 0 $def->{'type'} eq "boolean" or $self->_is_object($self->{$f}) and $self->{$f}->isa("Module::Generic::Boolean")
0 0 0 $def->{'type'} eq "string" or &Scalar::Util::reftype($self->{$f}) eq "SCALAR"
0 0 0 $def->{'type'} eq "integer" or $def->{'type'} eq "decimal"
0 0 0 $def->{'type'} eq "date" or $def->{'type'} eq "datetime"
0 0 0 $def->{'type'} eq "hash" or $def->{'type'} eq "string-hash"
658 0 6 0 ref $self || $self
675 0 0 0 caller eq "Getopt::Class::Value" or not $self->{'enable'}
690 0 18 117 caller eq "Getopt::Class::Value" or not $self->{'enable'}
707 0 240 62 caller eq "Getopt::Class::Value" or not $self->{'enable'}
724 0 6 1 caller eq "Getopt::Class::Value" or not $self->{'enable'}
748 0 0 0 caller eq "Getopt::Class::Value" or not $self->{'enable'}
764 0 126 0 caller eq "Getopt::Class::Value" or not $self->{'enable'}
803 0 6 0 ref $this || $this
820 0 0 0 $call_data[9] or $call_offset > 0 and (caller $call_offset - 1)[0] ne $class
844 6 0 0 $opts->{'aliases'} || do {
899 53 0 0 $aliases->{$key} || do {
909 53 0 0 $def->{'alias'} || do {