GameBaseTest created

GameMovesTest
Nicholas H. 2025-01-06 23:23:47 +01:00
parent 1d806f85a3
commit 6f15430fed
1 changed files with 91 additions and 0 deletions

View File

@ -0,0 +1,91 @@
import org.junit.jupiter.api.*;
import static org.junit.jupiter.api.Assertions.*;
class HitoriGameBaseTest {
private domain.GameBase game;
private static final int[][] TEST_BOARD = {
{1, 2, 1, 3},
{3, 1, 2, 1},
{2, 3, 3, 2},
{1, 2, 1, 3}
};
@BeforeEach
void setUp() {
game = new domain.GameBase(TEST_BOARD);
}
@Test
void testInitialization() {
assertNotNull(game);
assertArrayEquals(TEST_BOARD, game.getBoard());
assertEquals(0, game.getMistakeCount());
}
@Test
void testReset() {
// Directly set some cells (since we can't use markCell methods in base class)
game.blackCells[0][0] = true;
game.whiteCells[1][1] = true;
// Reset game
game.reset();
// Verify all cells are reset
boolean[][] blackCells = game.getBlackCells();
boolean[][] whiteCells = game.getWhiteCells();
for (int i = 0; i < TEST_BOARD.length; i++) {
for (int j = 0; j < TEST_BOARD[0].length; j++) {
assertFalse(blackCells[i][j], "Black cell at [" + i + "][" + j + "] should be false");
assertFalse(whiteCells[i][j], "White cell at [" + i + "][" + j + "] should be false");
}
}
assertEquals(0, game.getMistakeCount());
}
@Test
void testGetBoard() {
int[][] board = game.getBoard();
assertArrayEquals(TEST_BOARD, board);
// Test deep copy - modifying returned board should not affect original
board[0][0] = 999;
assertNotEquals(999, game.getBoard()[0][0]);
}
@Test
void testGetCurrentState() {
int[][] currentState = game.getCurrentState();
assertArrayEquals(TEST_BOARD, currentState);
}
@Test
void testGetBlackCells() {
boolean[][] blackCells = game.getBlackCells();
assertNotNull(blackCells);
assertEquals(TEST_BOARD.length, blackCells.length);
assertEquals(TEST_BOARD[0].length, blackCells[0].length);
}
@Test
void testGetWhiteCells() {
boolean[][] whiteCells = game.getWhiteCells();
assertNotNull(whiteCells);
assertEquals(TEST_BOARD.length, whiteCells.length);
assertEquals(TEST_BOARD[0].length, whiteCells[0].length);
}
@Test
void testGetMistakeCount() {
assertEquals(0, game.getMistakeCount());
}
@Test
void testBoardDimensions() {
int[][] board = game.getBoard();
assertEquals(TEST_BOARD.length, board.length);
assertEquals(TEST_BOARD[0].length, board[0].length);
}
}