line |
true |
false |
branch |
50
|
12 |
102 |
unless $sq =~ /^([a-h])([1-8])$/ |
57
|
292 |
0 |
if $colour == 1 or $colour == 2 |
71
|
0 |
224 |
if ($Games::Chess::DEBUG > 0) |
74
|
0 |
0 |
$Games::Chess::DEBUG >= 2 ? : |
81
|
225 |
0 |
if $halfmove =~ /^[0-9]+$/ |
87
|
425 |
0 |
if $move =~ /^[0-9]+$/ and $move > 0 |
93
|
284 |
0 |
if 1 <= $piece and $piece <= 6 |
99
|
101 |
64 |
unless &xy_valid($x, $y) |
105
|
3252 |
2 |
if 0 <= $x and $x < 8 and 0 <= $y and $y < 8 |
129
|
1 |
2974 |
if (@_ < 2) { } |
|
0 |
2974 |
elsif (@_ > 3) { } |
|
284 |
2690 |
elsif (@_ == 3) { } |
|
13 |
2677 |
elsif (UNIVERSAL::isa($val, 'Games::Chess::Piece')) { } |
|
49 |
2628 |
elsif (exists $PIECE_CODES{$val}) { } |
|
0 |
2628 |
elsif (not $val =~ /^\d+$/) { } |
|
2628 |
0 |
elsif (0 <= $val and $val < 256 and $val == int $val) { } |
134
|
0 |
284 |
unless colour_valid $_[1] |
135
|
0 |
284 |
unless piece_valid $_[2] |
155
|
398 |
2145 |
$col == 2 ? : |
193
|
0 |
0 |
unless &xy_valid($xs, $ys) and &xy_valid($xd, $yd) |
195
|
0 |
0 |
if (@promotion) |
197
|
0 |
0 |
unless $p |
205
|
0 |
0 |
unless UNIVERSAL::isa($b, 'Games::Chess::Move') |
248
|
0 |
25 |
if (defined $val and UNIVERSAL::isa($val, 'Games::Chess::Position')) |
254
|
2 |
23 |
unless $val |
261
|
0 |
25 |
unless @ranks == 8 |
268
|
0 |
200 |
unless length $rank == 8 |
271
|
0 |
200 |
unless @{$ranks[$r];} == 8 |
279
|
0 |
25 |
unless defined $fields[1] |
280
|
21 |
4 |
if ($fields[1] eq 'w') { } |
|
4 |
0 |
elsif ($fields[1] eq 'b') { } |
289
|
0 |
25 |
unless defined $fields[2] |
290
|
13 |
12 |
unless ($fields[2] eq '-') |
291
|
0 |
13 |
unless join('', sort(split(//, $fields[2], 0))) eq $fields[2] |
294
|
0 |
38 |
unless /^[KQkq]$/ |
300
|
0 |
25 |
unless defined $fields[3] |
301
|
2 |
23 |
unless ($fields[3] eq '-') |
303
|
0 |
2 |
unless @square == 2 |
308
|
0 |
25 |
unless defined $fields[4] |
309
|
0 |
25 |
unless halfmove_count_valid $fields[4] |
313
|
0 |
25 |
unless defined $fields[5] |
314
|
0 |
25 |
unless move_number_valid $fields[5] |
323
|
0 |
2748 |
unless &xy_valid($x, $y) |
324
|
2628 |
120 |
unless @piece |
327
|
0 |
120 |
unless defined $p |
340
|
0 |
116 |
unless defined $p |
342
|
0 |
116 |
unless $code =~ /^[KQkq]$/ |
344
|
84 |
32 |
unless defined $can_castle |
345
|
16 |
16 |
if ($can_castle) { } |
355
|
0 |
120 |
unless &xy_valid($x, $y) |
363
|
258 |
2 |
defined $ep ? : |
|
260 |
256 |
unless @en_passant |
364
|
0 |
256 |
unless &xy_valid(@en_passant) |
371
|
204 |
200 |
unless defined $halfmove |
372
|
0 |
200 |
unless &halfmove_count_valid($halfmove) |
379
|
404 |
400 |
unless defined $move |
380
|
0 |
400 |
unless &move_number_valid($move) |
387
|
12 |
8 |
unless defined $colour |
388
|
0 |
8 |
unless &colour_valid($colour) |
417
|
1 |
18 |
unless $n{'p'} <= 8 |
418
|
1 |
17 |
unless $n{'P'} <= 8 |
421
|
1 |
16 |
2 < $n{'n'} ? : |
|
1 |
16 |
2 < $n{'b'} ? : |
|
1 |
16 |
2 < $n{'r'} ? : |
|
1 |
16 |
1 < $n{'q'} ? : |
|
1 |
16 |
unless $n{'p'} + (2 < $n{'n'} ? $n{'n'} - 2 : 0) + (2 < $n{'b'} ? $n{'b'} - 2 : 0) + (2 < $n{'r'} ? $n{'r'} - 2 : 0) + (1 < $n{'q'} ? $n{'q'} - 1 : 0) <= 8 |
424
|
1 |
15 |
2 < $n{'N'} ? : |
|
1 |
15 |
2 < $n{'B'} ? : |
|
1 |
15 |
2 < $n{'R'} ? : |
|
1 |
15 |
1 < $n{'Q'} ? : |
|
1 |
15 |
unless $n{'P'} + (2 < $n{'N'} ? $n{'N'} - 2 : 0) + (2 < $n{'B'} ? $n{'B'} - 2 : 0) + (2 < $n{'R'} ? $n{'R'} - 2 : 0) + (1 < $n{'Q'} ? $n{'Q'} - 1 : 0) <= 8 |
429
|
1 |
14 |
unless $n{'k'} == 1 |
430
|
1 |
13 |
unless $n{'K'} == 1 |
433
|
2 |
11 |
unless $m{'p'} == 0 |
434
|
2 |
9 |
unless $m{'P'} == 0 |
438
|
0 |
9 |
if ($ep) |
439
|
0 |
0 |
if ($$self{'player_to_move'} == &WHITE) { } |
440
|
0 |
0 |
unless $$ep[1] == 5 |
442
|
0 |
0 |
unless $self->at($$ep[0], 6)->code == ' ' |
444
|
0 |
0 |
unless $self->at($$ep[0], 5)->code == ' ' |
446
|
0 |
0 |
unless $self->at($$ep[0], 4)->code == 'p' |
449
|
0 |
0 |
unless $$ep[1] == 2 |
451
|
0 |
0 |
unless $self->at($$ep[0], 1)->code == ' ' |
453
|
0 |
0 |
unless $self->at($$ep[0], 2)->code == ' ' |
455
|
0 |
0 |
unless $self->at($$ep[0], 3)->code == 'P' |
463
|
18 |
18 |
if ($self->can_castle($$c[0], $$c[1])) |
469
|
0 |
36 |
unless $self->at(&algebraic_to_xy($sq))->code eq $required |
477
|
0 |
9 |
unless 0 <= $h |
478
|
0 |
9 |
unless $h == int $h |
479
|
0 |
9 |
unless $h <= 50 |
481
|
0 |
9 |
unless 1 <= $m |
482
|
0 |
9 |
unless $m == int $m |
505
|
1 |
4 |
$$self{'player_to_move'} == &BLACK ? : |
|
0 |
5 |
defined $$self{'en_passant'} ? : |
516
|
91 |
165 |
if $sq eq ' ' and ($y + $_) % 2 == 0 |
532
|
0 |
0 |
unless $opts{'letters'} |
534
|
0 |
0 |
unless 0 <= $opts{$_} |
536
|
0 |
0 |
unless UNIVERSAL::isa($opts{'font'}, 'GD::Font') |
567
|
0 |
0 |
if ($opts{'letters'}) |
586
|
0 |
0 |
if ($x + $y) % 2 == 0 |
589
|
0 |
0 |
if $c eq ' ' |
616
|
0 |
0 |
unless (%Games::Chess::Position::gifs) |
619
|
0 |
0 |
if $code eq ' ' |