Bugfix - check for cache existence to avoid notice in log
This commit is contained in:
@@ -295,7 +295,7 @@ class FenParser0x88
|
|||||||
$paths[] = $piece['s'] + 15;
|
$paths[] = $piece['s'] + 15;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!isset($pinned[$piece['s']]) || ($pinned[$piece['s']] && $pinned[$piece['s']]['by'] === $piece['s'] + 17)) {
|
if (isset($this->cache['board'][$piece['s'] + 17]) && (!isset($pinned[$piece['s']]) || ($pinned[$piece['s']] && $pinned[$piece['s']]['by'] === $piece['s'] + 17))) {
|
||||||
if ($enPassantSquare == $piece['s'] + 17 || ($this->cache['board'][$piece['s'] + 17]) && $this->cache['board'][$piece['s'] + 17] & 0x8) {
|
if ($enPassantSquare == $piece['s'] + 17 || ($this->cache['board'][$piece['s'] + 17]) && $this->cache['board'][$piece['s'] + 17] & 0x8) {
|
||||||
$paths[] = $piece['s'] + 17;
|
$paths[] = $piece['s'] + 17;
|
||||||
}
|
}
|
||||||
|
@@ -12,6 +12,12 @@ require_once(__DIR__."/../autoload.php");
|
|||||||
|
|
||||||
class ParserTest extends PHPUnit_Framework_TestCase
|
class ParserTest extends PHPUnit_Framework_TestCase
|
||||||
{
|
{
|
||||||
|
protected function setUp()
|
||||||
|
{
|
||||||
|
parent::setUp(); // TODO: Change the autogenerated stub
|
||||||
|
error_reporting(E_ALL);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private function getNumericSquare($square)
|
private function getNumericSquare($square)
|
||||||
{
|
{
|
||||||
@@ -106,6 +112,48 @@ Qe7 28. e4 Nh7 29. h5 Nf8 30. Qb8 g5 31. Qc8 Ne6 32. Bxe6 Qxe6 33. Qxe6 fxe6
|
|||||||
$this->assertEquals("Nf3", $notation);
|
$this->assertEquals("Nf3", $notation);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @test
|
||||||
|
*/
|
||||||
|
public function shouldParseProblematic3(){
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$pgn = '[Event "Moscow Championship (blitz) 2015"]
|
||||||
|
[Site "Moscow RUS"]
|
||||||
|
[Date "2015.09.06"]
|
||||||
|
[Round "19"]
|
||||||
|
[White "Morozevich, Alexander"]
|
||||||
|
[Black "Dubov, Daniil"]
|
||||||
|
[Result "0-1"]
|
||||||
|
[ECO "B20"]
|
||||||
|
[WhiteElo "2711"]
|
||||||
|
[BlackElo "2661"]
|
||||||
|
[PlyCount "146"]
|
||||||
|
[EventDate "2015.09.06"]
|
||||||
|
|
||||||
|
1. e4 c5 2. g3 g6 3. Bg2 Bg7 4. d3 Nc6 5. f4 e6 6. Nf3 d5 7. O-O Nf6 8. e5 Nd7
|
||||||
|
9. c4 Nb6 10. Qe2 O-O 11. Nc3 f6 12. exf6 Bxf6 13. Kh1 Bd7 14. Bd2 Nd4 15. Nxd4
|
||||||
|
cxd4 16. Nd1 dxc4 17. dxc4 Bc6 18. Bxc6 bxc6 19. Nf2 c5 20. Rae1 Qd7 21. b3
|
||||||
|
Rfe8 22. Nd3 Rac8 23. Qe4 Qc6 24. g4 Qxe4+ 25. Rxe4 Nd7 26. Be1 h5 27. gxh5
|
||||||
|
gxh5 28. Rf3 Kh7 29. Bf2 Kg6 30. Rxe6 Kf5 31. Rd6 Nb6 32. Rh3 h4 33. Kg2 Be7
|
||||||
|
34. Rh6 Ke4 35. Re6+ Kf5 36. Re5+ Kg6 37. Kf3 Nd7 38. Re6+ Kf7 39. f5 Bf6 40.
|
||||||
|
Bxh4 Rxe6 41. fxe6+ Kxe6 42. Bg3 Rf8 43. Rh5 Bg5+ 44. Kg2 Be3 45. Rd5 Re8 46.
|
||||||
|
Rd6+ Ke7 47. Ra6 Ra8 48. h4 Nf6 49. Nxc5 Nd7 50. Nd3 Rg8 51. Kf3 Rf8+ 52. Ke2
|
||||||
|
Rg8 53. Bf4 Bxf4 54. Nxf4 Nc5 55. Rxa7+ Kd6 56. b4 Re8+ 57. Kf3 Re3+ 58. Kg4
|
||||||
|
Ne4 59. Ra6+ Kd7 60. Ra5 Nf2+ 61. Kf5 d3 62. Rd5+ Kc7 63. h5 Rf3 64. Ke5 Re3+
|
||||||
|
65. Kf5 Rf3 66. h6 Nh3 67. h7 Rxf4+ 68. Kg6 Rh4 69. Kg7 Nf4 70. Rc5+ Kd6 71.
|
||||||
|
Rc8 Ne6+ 72. Kf6 d2 73. c5+ Kd7 0-1';
|
||||||
|
|
||||||
|
$parser = new PgnParser();
|
||||||
|
$parser->setPgnContent($pgn);
|
||||||
|
$game = $parser->getFirstGame();
|
||||||
|
echo json_encode($game);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user