def build_result(self, score, result_type=ResultType.COMPLETE): if result_type == ResultType.EXCEPTION: traceback = "KeyError ..." else: traceback = None return Result( result_type=result_type, score=score, move_list=[0, 1, 4, 7, 8], traceback=traceback, invalid_move=None, )
def report_result(bot1_id, bot2_id, score, move_list=None): if move_list is None: move_list = [] result = Result( result_type=ResultType.COMPLETE, score=score, move_list=move_list, traceback=None, invalid_move=None, ) actions.report_result(bot1_id, bot2_id, result)
def test_invalid_state(self): # X | . | . # --|---|-- # . | . | . # --|---|-- # . | . | . result = run_game(game, get_next_move_1, get_next_move_11) expected_result = Result( result_type=ResultType.INVALID_STATE, score=1, move_list=[0], traceback=None, invalid_move=None, ) self.assertEqual(result, expected_result)
def test_timeout_when_opcode_limit_not_set(self): # X | O | X # --|---|-- # O | X | O # --|---|-- # X | . | . result = run_game(game, get_next_move_1, get_next_move_10) expected_result = Result( result_type=ResultType.COMPLETE, score=1, move_list=[0, 1, 2, 3, 4, 5, 6], traceback=None, invalid_move=None, ) self.assertEqual(result, expected_result)
def test_all_params(self): # X | O | X # --|---|-- # O | X | O # --|---|-- # X | . | . result = run_game(game, get_next_move_7, get_next_move_7) expected_result = Result( result_type=ResultType.COMPLETE, score=1, move_list=[0, 1, 2, 3, 4, 5, 6], traceback=None, invalid_move=None, ) self.assertEqual(result, expected_result)
def test_draw(self): # X | X | O # --|---|-- # O | O | X # --|---|-- # X | X | O result = run_game(game, get_next_move_3, get_next_move_4) expected_result = Result( result_type=ResultType.COMPLETE, score=0, move_list=[0, 2, 1, 3, 5, 4, 6, 8, 7], traceback=None, invalid_move=None, ) self.assertEqual(result, expected_result)
def test_bot2_wins(self): # . | X | O # --|---|-- # X | O | X # --|---|-- # O | . | . result = run_game(game, get_next_move_2, get_next_move_2) expected_result = Result( result_type=ResultType.COMPLETE, score=-1, move_list=[1, 2, 3, 4, 5, 6], traceback=None, invalid_move=None, ) self.assertEqual(result, expected_result)
def test_timeout(self): # X | . | . # --|---|-- # . | . | . # --|---|-- # . | . | . result = run_game(game, get_next_move_1, get_next_move_10, opcode_limit=1000) expected_result = Result( result_type=ResultType.TIMEOUT, score=1, move_list=[0], traceback=None, invalid_move=None, ) self.assertEqual(result, expected_result)