| line |
true |
false |
branch |
|
633
|
0 |
2 |
if ref $class |
|
640
|
0 |
2 |
if @args |
|
641
|
2 |
0 |
unless $self->{'cell'} |
|
643
|
0 |
2 |
unless $self->{'symbol_list'} |
|
645
|
0 |
2 |
unless defined $self->{'columns'} |
|
647
|
2 |
0 |
unless defined $self->{'status_value'} |
|
649
|
2 |
0 |
unless defined $self->{'max_tuple'} |
|
666
|
0 |
21 |
if $self->{'set'}{$name} |
|
670
|
0 |
184 |
unless $self->{'cell'}[$inx] |
|
676
|
0 |
184 |
unless @{$cell->{'membership'};} |
|
713
|
0 |
6 |
unless $self->{'constraints_used'} and defined wantarray |
|
714
|
0 |
6 |
if wantarray |
|
736
|
0 |
1 |
unless $copier ||= eval {
do {
require Clipboard;
"Clipboard"->import;
sub {
"Clipboard"->copy(join("", @_));
return;
}
}
} |
|
761
|
0 |
1 |
unless $self->{'set'}{$name} |
|
768
|
8 |
4 |
if ($other ne $name) |
|
774
|
4 |
0 |
if (@mbr) { } |
|
870
|
0 |
0 |
if ref $const and "HASH" ne ref $const |
|
874
|
0 |
0 |
if ($_) |
|
|
0 |
0 |
unless "HASH" eq ref $const |
|
878
|
0 |
0 |
if ($self->{'debug'}) |
|
885
|
0 |
0 |
if $min > $size |
|
894
|
0 |
0 |
$self->{'cells_unused'} ? : |
|
904
|
0 |
0 |
unless my(@pos) = grep({not $cell->{'possible'}{$_};} 1 .. $syms) |
|
906
|
0 |
0 |
unless defined $val |
|
911
|
0 |
0 |
if $self->_try($cell, $val) |
|
916
|
0 |
0 |
unless $self->solution |
|
920
|
0 |
0 |
if $self->{'autocopy'} |
|
962
|
21 |
0 |
unless wantarray |
|
964
|
0 |
21 |
unless exists $accessor{$name} |
|
969
|
0 |
21 |
wantarray ? : |
|
980
|
27 |
27 |
if $self->{'allowed_symbols'}{$_}[$val] |
|
997
|
0 |
583 |
unless join ",", @{$_->{'membership'};} |
|
999
|
522 |
61 |
if (--$col > 0) { } |
|
1004
|
8 |
53 |
if (--$row <= 0) |
|
1033
|
0 |
1 |
unless $paster ||= eval {
do {
require Clipboard;
"Clipboard"->import;
return sub {
return "Clipboard"->paste;
}
}
} |
|
1084
|
0 |
19 |
unless $val =~ /\S/ |
|
1085
|
17 |
2 |
unless $self->{'biggest_spec'} > 1 |
|
1088
|
0 |
19 |
if $self->{'debug'} |
|
1093
|
0 |
19 |
if $self->{'largest_set'} >= @{$self->{'symbol_list'};} |
|
1114
|
2 |
17 |
$self->{'biggest_spec'} > 1 ? : |
|
1115
|
0 |
1651 |
if $inx >= $max |
|
1118
|
0 |
1651 |
unless defined $_ |
|
1121
|
0 |
1651 |
if ($self->{'cells_unused'} and not @{$self->{'cell'}[$inx]{'membership'};}) |
|
1122
|
195 |
1456 |
if ($self->{'allowed_symbols'}{$_}) |
|
1123
|
0 |
195 |
if $self->{'debug'} > 1 |
|
1127
|
0 |
195 |
unless @{$cell->{'membership'};} |
|
1131
|
943 |
749 |
if $self->{'allowed_symbols'}{$_}[$val] |
|
1135
|
365 |
1286 |
unless defined $hash->{$_} |
|
1137
|
0 |
1651 |
unless @{$self->{'cell'}[$inx]{'membership'};} or $_ eq $self->{'symbol_list'}[0] |
|
1141
|
0 |
1651 |
if $self->{'debug'} > 1 |
|
1144
|
0 |
1651 |
if $self->_try($inx, $hash->{$_}) |
|
1149
|
480 |
1171 |
$hash->{$_} ? : |
|
1154
|
0 |
19 |
unless ($inx == $max) |
|
1156
|
0 |
0 |
if ($self->{'cells_unused'}) |
|
1168
|
0 |
19 |
if $self->{'debug'} |
|
1176
|
0 |
19 |
if $self->{'debug'} > 1 |
|
1229
|
0 |
90 |
unless exists $mutator{$name} |
|
1240
|
0 |
4 |
unless defined $value |
|
1242
|
0 |
4 |
if $self->{'debug'} |
|
1245
|
4 |
0 |
if ($value) { } |
|
1248
|
0 |
22 |
if $self->{'symbol_hash'}{$name} |
|
1252
|
2 |
20 |
unless ($value) |
|
1254
|
0 |
20 |
if $self->{'debug'} > 1 |
|
1260
|
0 |
93 |
if $self->{'debug'} > 1 |
|
1263
|
0 |
93 |
unless $self->{'symbol_hash'}{$_} |
|
1272
|
1 |
3 |
if $maxlen > $self->{'biggest_spec'} |
|
1278
|
5 |
1 |
ref $value ? : |
|
1279
|
0 |
6 |
if defined $size |
|
1282
|
0 |
6 |
if $size % $horiz or $size % $vert |
|
1364
|
2 |
0 |
if ($type =~ /\D/) { } |
|
1365
|
0 |
2 |
unless $cube{$type} |
|
1417
|
0 |
0 |
ref $value ? : |
|
1428
|
0 |
0 |
if defined $columns |
|
1429
|
0 |
0 |
if defined $rows |
|
1435
|
0 |
23 |
unless _looks_like_number($value) |
|
1445
|
0 |
0 |
ref $value ? : |
|
1446
|
0 |
0 |
if $order =~ /\D/ |
|
1449
|
0 |
0 |
if (defined $gap) { } |
|
1450
|
0 |
0 |
if $gap =~ /\D/ |
|
1453
|
0 |
0 |
if $gap > $order - 2 |
|
1456
|
0 |
0 |
unless $gap % 2 == $order % 2 |
|
1500
|
0 |
0 |
unless $sqgened[$o1]++ |
|
1509
|
0 |
21 |
unless _looks_like_number($value) |
|
1512
|
0 |
21 |
if $value < 0 or $value >= @status_values |
|
1548
|
0 |
142 |
unless defined $_ |
|
1549
|
0 |
142 |
if /,/ |
|
1552
|
0 |
142 |
if exists $hsh{$_} |
|
1591
|
0 |
938 |
unless @{$cell->{'membership'};} |
|
1621
|
0 |
19 |
unless $self->{'backtrack_stack'} |
|
1626
|
0 |
19 |
if $self->{'debug'} |
|
1686
|
1 |
0 |
defined wantarray ? : |
|
|
0 |
1 |
wantarray ? : |
|
1728
|
0 |
19 |
if $self->{'iteration_limit'} > 0 |
|
1731
|
0 |
19 |
if $self->{'no_more_solutions'} |
|
1733
|
1 |
18 |
if (@{$self->{'backtrack_stack'};}) |
|
1734
|
1 |
0 |
if $self->_constraint_remove |
|
1738
|
0 |
18 |
unless ($self->{'cells_unassigned'}) |
|
1749
|
0 |
693 |
if @{$self->{'cell'};} != $number_of_cells |
|
1756
|
0 |
693 |
unless my $rslt = $self->$method |
|
1757
|
332 |
361 |
unless @$rslt |
|
1759
|
1151 |
0 |
if (ref $constr) { } |
|
1763
|
0 |
0 |
unless my $rslt = $self->_constraint_remove |
|
1769
|
18 |
343 |
unless $self->{'cells_unassigned'} |
|
1798
|
35865 |
30695 |
if $cell->{'content'} |
|
1799
|
0 |
30695 |
unless @{$cell->{'membership'};} |
|
1801
|
110294 |
276989 |
unless $_ |
|
1802
|
29838 |
857 |
if ($pos > 1) { } |
|
|
857 |
0 |
elsif ($pos == 1) { } |
|
1806
|
3966 |
857 |
if $cell->{'possible'}{$_} |
|
1810
|
0 |
857 |
if $self->_try($cell, $val) |
|
1815
|
0 |
857 |
if $self->{'debug'} |
|
1818
|
18 |
839 |
unless ($self->{'cells_unassigned'}) |
|
1820
|
0 |
0 |
if $self->{'debug'} |
|
1823
|
0 |
0 |
if ($self->{'debug'} > 1) |
|
1846
|
25726 |
25529 |
if $cell->{'content'} |
|
1850
|
245121 |
101572 |
if $count |
|
1857
|
43051 |
262 |
unless $suppliers[$val] and @{$suppliers[$val];} == 1 |
|
1859
|
0 |
0 |
$self->{'debug'} ? : |
|
|
0 |
262 |
if $self->_try($inx, $val) |
|
1869
|
0 |
262 |
if $self->{'debug'} |
|
1890
|
2634 |
1414 |
unless @$cells > 1 |
|
1894
|
2376 |
2942 |
if $self->{'cell'}[$inx]{'content'} |
|
1900
|
12059 |
31699 |
unless $imposs |
|
1910
|
5884 |
34672 |
if $int_cells{$inx} |
|
1911
|
17939 |
16733 |
if $self->{'cell'}[$inx]{'content'} |
|
1915
|
36785 |
32972 |
if not $imposs and $int_supplies[$val] |
|
1921
|
9067 |
6896 |
unless $int_supplies[$val] |
|
1923
|
6870 |
26 |
unless @occurs_in and @occurs_in < @set_names |
|
1927
|
73 |
68 |
if $self->{'cell'}[$inx]{'possible'}{$val} |
|
1933
|
0 |
26 |
unless $done |
|
1936
|
0 |
26 |
if $self->{'debug'} |
|
1974
|
19 |
187 |
unless my(@open) = grep({not $_->{'content'};} map({$self->{'cell'}[$_];} @{$$set{"membership"};})) |
|
1980
|
12142 |
4457 |
if $cell->{'possible'}{$val} |
|
1985
|
1079 |
1212 |
unless $_ |
|
1992
|
12 |
40 |
unless $tuple[$inx] |
|
1997
|
0 |
40 |
unless @{$tuple[$inx];} |
|
2013
|
0 |
38 |
unless $tuple[@$open] |
|
2021
|
27499 |
10775 |
if $cell->{'possible'}{$val} |
|
2025
|
10394 |
8620 |
unless $_ |
|
2042
|
7 |
1221 |
if ($discrete == $order) { } |
|
|
1221 |
0 |
elsif ($discrete > $order) { } |
|
2044
|
49 |
4 |
unless $tcontr[$val] and $contributed->[$val] > $tcontr[$val] |
|
2050
|
2 |
2 |
unless @tuple_member |
|
2054
|
12 |
6 |
if $tuple_member[$inx] or $open->[$inx]{'possible'}{$val} |
|
2059
|
4 |
0 |
if @ccl |
|
2072
|
45 |
17688 |
if $tcontr[$val] and $contributed->[$val] == $tcontr[$val] |
|
2075
|
1217 |
4 |
unless $within >= $order |
|
2079
|
36 |
11 |
unless $tcontr[$val] and $contributed->[$val] > $tcontr[$val] |
|
2084
|
65 |
13 |
unless $tuple_member[$inx] and not $open->[$inx]{'possible'}{$val} |
|
2092
|
11 |
0 |
if @ccl |
|
2096
|
5 |
6 |
unless $constraint |
|
2098
|
0 |
6 |
if $self->{'debug'} |
|
2116
|
0 |
0 |
if $cell->{'content'} |
|
2117
|
0 |
0 |
unless @{$cell->{'membership'};} |
|
2120
|
0 |
0 |
unless $cell->{'possible'}{$val} |
|
2122
|
0 |
0 |
unless $possible |
|
2126
|
0 |
0 |
unless $Games::Sudoku::General::a->[1] <=> $Games::Sudoku::General::b->[1] |
|
2129
|
0 |
0 |
if $cell->{'possible'}{$val} |
|
2130
|
0 |
0 |
if $self->_try($cell, $val) |
|
2136
|
0 |
0 |
if $self->{'debug'} |
|
2163
|
0 |
1 |
if $min |
|
2164
|
0 |
1 |
if $max |
|
2165
|
0 |
1 |
if $self->{'no_more_solutions'} |
|
2166
|
0 |
1 |
unless my $stack = $self->{'backtrack_stack'} |
|
2170
|
0 |
1 |
if $self->{'debug'} and $inx |
|
2175
|
0 |
45 |
if ($min and $self->{'cells_unassigned'} >= $min) |
|
2176
|
0 |
0 |
if $self->{'debug'} |
|
2182
|
0 |
45 |
if ($removal_ok) { } |
|
2185
|
0 |
0 |
if $max and $self->{'cells_unassigned'} <= $max and not exists $removal_ok->{$constraint} |
|
2187
|
0 |
0 |
if (not exists $removal_ok->{$constraint}) { } |
|
|
0 |
0 |
elsif (defined $removal_ok->{$constraint} and --$removal_ok->{$constraint}) { } |
|
2188
|
0 |
0 |
if $self->{'debug'} |
|
2194
|
0 |
0 |
if $self->{'debug'} |
|
2200
|
0 |
0 |
if $max and $self->{'cells_unassigned'} <= $max and $constraint eq "?" |
|
2205
|
45 |
0 |
if ($constraint eq 'F' or $constraint eq 'N') { } |
|
|
0 |
0 |
elsif ($constraint eq 'B' or $constraint eq 'T') { } |
|
|
0 |
0 |
elsif ($constraint eq '?') { } |
|
2207
|
45 |
45 |
if ref $ref |
|
2211
|
0 |
0 |
unless ref $ref |
|
2221
|
0 |
0 |
if $removal_ok |
|
2223
|
0 |
0 |
if $cell->{'possible'}{$val} |
|
2224
|
0 |
0 |
if $self->_try($cell, $val) |
|
2231
|
0 |
0 |
if ($self->{'debug'}) |
|
2249
|
0 |
1 |
if $self->{'debug'} |
|
2277
|
0 |
0 |
unless my $info = $deprecate{$name} |
|
2280
|
0 |
0 |
unless $info->{'level'} |
|
2282
|
0 |
0 |
if $info->{'level'} >= 3 |
|
2284
|
0 |
0 |
if warnings::enabled("deprecated") |
|
2286
|
0 |
0 |
if $info->{'level'} == 1 |
|
2300
|
0 |
104 |
unless $_ |
|
2306
|
0 |
52 |
ref $_->[0] ? : |
|
|
0 |
52 |
ref $_->[1] ? : |
|
|
52 |
52 |
ref $_ ? : |
|
2323
|
0 |
44 |
if not defined $_ or ref $_ |
|
2324
|
44 |
0 |
if /^[+-]?\d+$/ |
|
2341
|
1958 |
857 |
unless ref $cell |
|
2342
|
0 |
2815 |
unless defined $new |
|
2345
|
0 |
2815 |
unless defined(my $old = $cell->{'content'}) |
|
2348
|
1171 |
1644 |
if $old == $new |
|
2349
|
1599 |
45 |
if ($new) |
|
2351
|
0 |
4833 |
if $self->{'set'}{$set}{'content'}[$new] |
|
2355
|
45 |
1599 |
if $old |
|
2356
|
1599 |
45 |
if $new |
|
2360
|
135 |
4833 |
if ($old) |
|
2367
|
4833 |
135 |
if ($new) |
|
2376
|
0 |
2815 |
if $@ |
|
2390
|
5 |
18 |
unless defined $prefix |
|
2391
|
19 |
4 |
if (@args) |
|
2393
|
1 |
18 |
if $args[0] |
|
2400
|
220 |
1674 |
if $col == $self->{'columns'} |
|
2404
|
0 |
1894 |
$self->{'cells_unused'} && !@{$_->{'membership'};} ? : |
|
2405
|
1674 |
220 |
if (--$col > 0) { } |
|
2409
|
0 |
220 |
if $self->{'cells_unused'} |
|
2412
|
29 |
191 |
if (--$row <= 0) |