def test_get_previous_state(self): game = Game(4, Game.Modes.human_human, Game.DifficultyLevels.easy, True, 5) state = (game.mover.board, s.WHITE) my_state = game.get_next_state(state, (1, 0)) game.next_move('a3') self.assertEqual(game.get_current_state(), my_state) opp_state = game.get_next_state(my_state, (2, 0)) game.next_move('a2') self.assertEqual(game.get_current_state(), opp_state) my_prev_state = game.get_previous_state(opp_state, (2, 0)) self.assertEqual(my_state, my_prev_state)
def test_undo_redo(self): game = Game(4, Game.Modes.human_human, Game.DifficultyLevels.easy, True, 5) initial_state = (deepcopy(game.mover.board), s.WHITE) game.next_move('a3') game.next_move('a2') my_state = game.get_current_state() game.undo() self.assertEqual(initial_state, game.get_current_state()) game.redo() self.assertEqual(my_state, game.get_current_state()) game.undo() self.assertEqual(initial_state, game.get_current_state())