From 6f15430fed6f123ae71980fbeb681ff110889e03 Mon Sep 17 00:00:00 2001 From: nicho <3013379@stud.hs-mannheim.de> Date: Mon, 6 Jan 2025 23:23:47 +0100 Subject: [PATCH] GameBaseTest created --- src/test/java/GameBaseTest.java | 91 +++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 src/test/java/GameBaseTest.java diff --git a/src/test/java/GameBaseTest.java b/src/test/java/GameBaseTest.java new file mode 100644 index 0000000..238a64a --- /dev/null +++ b/src/test/java/GameBaseTest.java @@ -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); + } +} \ No newline at end of file