Condition Coverage

blib/lib/Games/Sudoku/General.pm
Criterion Covered Total %
condition 63 125 50.4


and 3 conditions

line !l l&&!r l&&r condition
713 0 0 6 $self->{'constraints_used'} and defined wantarray
870 0 0 0 ref $const and 'HASH' ne ref $const
1121 1651 0 0 $self->{'cells_unused'} and not @{$self->{'cell'}[$inx]{'membership'};}
1857 18128 25229 266 $suppliers[$val] and @{$suppliers[$val];} == 1
1915 275300 47368 52243 not $imposs and $int_supplies[$val]
1923 450 9511 28 @occurs_in and @occurs_in < @set_names
2044 118 39 5 $tcontr[$val] and $contributed->[$val] > $tcontr[$val]
2072 8946 8086 108 $tcontr[$val] and $contributed->[$val] == $tcontr[$val]
2079 30 10 14 $tcontr[$val] and $contributed->[$val] > $tcontr[$val]
2084 69 12 16 $tuple_member[$inx] and not $open->[$inx]{'possible'}{$val}
2170 1 0 0 $self->{'debug'} and $inx
2175 45 0 0 $min and $self->{'cells_unassigned'} >= $min
2185 0 0 0 $max and $self->{'cells_unassigned'} <= $max
0 0 0 $max and $self->{'cells_unassigned'} <= $max and not exists $removal_ok->{$constraint}
2187 0 0 0 defined $removal_ok->{$constraint} and --$removal_ok->{$constraint}
2200 45 0 0 $max and $self->{'cells_unassigned'} <= $max
45 0 0 $max and $self->{'cells_unassigned'} <= $max and $constraint eq '?'
2404 1894 0 0 $self->{'cells_unused'} && !@{$_->{'membership'};}

or 2 conditions

line l !l condition
679 192 276 $self->{'intersection'}{$int} ||= []
869 0 0 $const ||= 'F N B T'
1081 19 0 $val ||= ''
1581 1199 1421 $self->{'intersection'}{$int} ||= []
1585 2454 263 $self->{'set'}{$name} ||= {'name', $name, 'membership', []}
1723 19 0 $self->{'backtrack_stack'} ||= []
1725 19 0 $self->{'constraints_used'} ||= {}
1851 76667 26229 $suppliers[$val] ||= []
1981 7404 281 $contributors{$name} ||= []
1987 221 60 $tuple[scalar @open] ||= [map({[$_];} 0 .. $#open)]
2049 2 3 $constraint ||= ['T', 'naked', $order]
2167 1 0 $self->{'constraints_used'} ||= {}
2404 1686 208 $_->{'content'} or 0

or 3 conditions

line l !l&&r !l&&!r condition
736 0 1 0 $copier ||= eval { do { require Clipboard; 'Clipboard'->import; sub { 'Clipboard'->copy(join('', @_)); return; } } }
864 0 0 0 $min ||= do { floor($size * $size / ($self->{'largest_set'} * keys(%{$$self{'set'};}))) }
868 0 0 0 $max ||= floor($min * 1.5)
996 8 0 0 $self->{'rows'} ||= floor(@{$self->{'cell'};} / $col)
1033 0 1 0 $paster ||= eval { do { require Clipboard; 'Clipboard'->import; return sub { return 'Clipboard'->paste; } } }
1137 1651 0 0 @{$self->{'cell'}[$inx]{'membership'};} or $_ eq $self->{'symbol_list'}[0]
1281 0 6 0 $size ||= $horiz * $vert
1282 0 0 6 $size % $horiz or $size % $vert
1512 0 0 21 $value < 0 or $value >= @status_values
1754 0 716 0 $constraint_method{$constraint} || "_constraint_$constraint"
2054 10 6 7 $tuple_member[$inx] or $open->[$inx]{'possible'}{$val}
2205 42 3 0 $constraint eq 'F' or $constraint eq 'N'
0 0 0 $constraint eq 'B' or $constraint eq 'T'
2323 0 0 44 not defined $_ or ref $_
2397 22 0 0 $self->{'rows'} ||= floor(@{$self->{'cell'};} / $col)