package dev.kske.chess.board; import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import dev.kske.chess.board.Piece.Color; import dev.kske.chess.exception.ChessException; /** * Project: Chess
* File: FENStringTest.java
* Created: 24 Oct 2019
* * @author Kai S. K. Engelbart */ class FENStringTest { private List fenStrings = new ArrayList<>(); private List boards = new ArrayList<>(); /** * Removes all pieces from a board * * @param board the board to clean */ void cleanBoard(Board board) { for (int i = 0; i < 8; i++) for (int j = 0; j < 8; j++) board.getBoardArr()[i][j] = null; } /** * @throws java.lang.Exception */ @BeforeEach void setUp() throws Exception { fenStrings.addAll( Arrays.asList( "rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2" ) ); Board board = new Board(); board.set(Position.fromLAN("c7"), null); board.set(Position.fromLAN("c5"), new Pawn(Color.BLACK, board)); board.set(Position.fromLAN("e4"), new Pawn(Color.WHITE, board)); board.set(Position.fromLAN("f3"), new Knight(Color.WHITE, board)); board.set(Position.fromLAN("e2"), null); board.set(Position.fromLAN("g1"), null); board.getLog().setActiveColor(Color.BLACK); board.getLog().setHalfmoveClock(1); board.getLog().setFullmoveNumber(2); boards.add(board); } /** * Test method for {@link FENString#toString()}. */ @Test void testToString() { for (int i = 0; i < fenStrings.size(); i++) assertEquals( fenStrings.get(i), new FENString(boards.get(i)).toString() ); } /** * Test method for {@link FENString#getBoard()}. * * @throws ChessException */ @Test void testGetBoard() throws ChessException { for (int i = 0; i < boards.size(); i++) assertEquals( boards.get(i), new FENString(fenStrings.get(i)).getBoard() ); } }