Example #1
0
    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,
        )
Example #2
0
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)
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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)
Example #7
0
    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)
Example #8
0
    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)