/** * @dataProvider fenProvider */ public function testImportExport($fen) { $game = $this->createGame(); Forsyth::import($game, $fen); $simplifyFen = function ($fen) { return substr($fen, 0, strpos($fen, ' ')); }; $this->assertEquals($simplifyFen($fen), $simplifyFen(Forsyth::export($game))); }
/** * Creates a return game for the given player, * reverting players colors * * @param Player the player who creates the return game * @return Player the new player on the new game **/ public function createReturnGame(Player $player) { $game = $player->getGame(); $variant = $game->getVariant(); $nextGame = $this->createGame($variant); if (Game::VARIANT_960 == $game->getVariant()) { Forsyth::import($nextGame, $game->getInitialFen()); $nextGame->setInitialFen($game->getInitialFen()); } $nextPlayer = $nextGame->getPlayer($player->getOpponent()->getColor()); $nextGame->setCreator($nextPlayer); if ($game->hasClock()) { $nextGame->setClock(clone $game->getClock()); } $nextGame->setIsRated($game->getIsRated()); $nextGame->getPlayer('white')->setUser($game->getPlayer('black')->getUser()); $nextGame->getPlayer('black')->setUser($game->getPlayer('white')->getUser()); $game->setNext($nextGame); return $nextPlayer; }