class TestGameBoard(unittest.TestCase): def setUp(self): self.tester = PuzzleGame() self.test_settings = GameSettingsManager() self.test_settings.load_settings() self.test_settings.set(consts.BOARD_SIZE_STR, SettingsType.TYPE_NUMERIC, 3) def test_initial_boards_game_won(self): self.tester.generate_new_puzzle(self.test_settings, fixed_board=get_completed_board(), fixed_empty_spot=BoardPosition(2, 2)) assert self.tester.game_won() self.tester.generate_new_puzzle( self.test_settings, fixed_board=get_almost_complete_board(), fixed_empty_spot=BoardPosition(2, 1)) assert not self.tester.game_won() def test_game_won_with_move(self): self.tester.generate_new_puzzle( self.test_settings, fixed_board=get_almost_complete_board(), fixed_empty_spot=BoardPosition(2, 1)) assert not self.tester.game_won() self.tester.move(consts.LEFT) assert self.tester.game_won() self.tester.move(consts.RIGHT) assert not self.tester.game_won() self.tester.move(consts.RIGHT) assert not self.tester.game_won()
class TestGameBoard(unittest.TestCase): def setUp(self): self.tester = PuzzleGame() self.test_settings = GameSettingsManager() self.test_settings.load_settings() def test_game_move_in_all_directions(self): self.test_settings.set(consts.BOARD_SIZE_STR, SettingsType.TYPE_NUMERIC, 3) self.tester.generate_new_puzzle(self.test_settings) first_empty_spot = self.tester.game_board.empty_spot empty_spot_left_neighbour = first_empty_spot.get_left_neighbour() self.tester.move(consts.RIGHT) current_empty_spot = self.tester.game_board.empty_spot assert current_empty_spot == empty_spot_left_neighbour empty_spot_above_neighbour = current_empty_spot.get_above_neighbour() self.tester.move(consts.DOWN) current_empty_spot = self.tester.game_board.empty_spot assert current_empty_spot == empty_spot_above_neighbour empty_spot_right_neighbour = current_empty_spot.get_right_neighbour() self.tester.move(consts.LEFT) current_empty_spot = self.tester.game_board.empty_spot assert current_empty_spot == empty_spot_right_neighbour def test_game_ignore_impossible_moves(self): self.tester.generate_new_puzzle(self.test_settings) first_empty_spot = self.tester.game_board.empty_spot empty_spot_right_neighbour = first_empty_spot.get_right_neighbour() #since the default empty spot is also the right most bottom corener, a "left move" won't affect it self.tester.move(consts.LEFT) current_empty_spot = self.tester.game_board.empty_spot assert current_empty_spot == first_empty_spot assert current_empty_spot != empty_spot_right_neighbour
class TestGameBoard(unittest.TestCase): def setUp(self): self.tester = PuzzleGame() self.test_settings = GameSettingsManager() self.test_settings.load_settings() def test_game_board_size(self): self.test_settings.set(consts.BOARD_SIZE_STR, SettingsType.TYPE_NUMERIC, 4) self.tester.generate_new_puzzle(self.test_settings) board = self.tester.game_board.board assert len(board) == 4 self.test_settings.set(consts.BOARD_SIZE_STR, SettingsType.TYPE_NUMERIC, 3) self.tester.generate_new_puzzle(self.test_settings) board = self.tester.game_board.board assert len(board) == 3 self.test_settings.set(consts.BOARD_SIZE_STR, SettingsType.TYPE_NUMERIC, 4) self.tester.generate_new_puzzle(self.test_settings) board = self.tester.game_board.board assert len(board) == 4