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 18041 25029 263 $suppliers[$val] and @{$suppliers[$val];} == 1
1915 228656 40109 43371 not $imposs and $int_supplies[$val]
1923 331 7906 24 @occurs_in and @occurs_in < @set_names
2044 48 18 4 $tcontr[$val] and $contributed->[$val] > $tcontr[$val]
2072 7645 6093 60 $tcontr[$val] and $contributed->[$val] == $tcontr[$val]
2079 32 8 11 $tcontr[$val] and $contributed->[$val] > $tcontr[$val]
2084 62 10 12 $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 76653 26004 $suppliers[$val] ||= []
1981 6130 214 $contributors{$name} ||= []
1987 169 45 $tuple[scalar @open] ||= [map({[$_];} 0 .. $#open)]
2049 2 2 $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 685 0 $constraint_method{$constraint} || "_constraint_$constraint"
2054 8 2 10 $tuple_member[$inx] or $open->[$inx]{'possible'}{$val}
2205 43 2 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)