Exemplo n.º 1
0
    def test_blank_scorer(self):
        board = BitBoard(8)
        scorer = coord.BlankScorer()

        # initial
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, 0)

        # test1
        board.put_disc('black', 5, 4)
        board.put_disc('white', 5, 3)
        board.put_disc('black', 3, 2)
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, -20)

        # test2
        board.undo()
        board.put_disc('black', 2, 2)
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, -16)

        # test3
        board.undo()
        board.put_disc('black', 4, 2)
        board.put_disc('white', 5, 5)
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, 8)

        # test4(left-top)
        board._black_bitboard = 0x2058082010000000
        board._white_bitboard = 0x4020101C0C040000
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, 1)

        # test5(right-bottom)
        board._black_bitboard = 0x20583E3C1C060200
        board._white_bitboard = 0x4020000000000000
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, -53)

        # test6(right-top)
        board._black_bitboard = 0x007A562C7C060200
        board._white_bitboard = 0xFA84A8D080000000
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, -42)

        # test7(left-bottom)
        board._black_bitboard = 0x043A170C14320000
        board._white_bitboard = 0xFAC4E8F1E8CCC241
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, 8)
Exemplo n.º 2
0
    def test_scorer_force_import_error(self):
        import os
        import importlib
        import reversi

        # -------------------------------
        # switch environ and reload module
        os.environ['FORCE_SCORERMETHODS_IMPORT_ERROR'] = 'RAISE'
        importlib.reload(reversi.strategies.coordinator.ScorerMethods)
        self.assertTrue(reversi.strategies.coordinator.ScorerMethods.SLOW_MODE)
        # -------------------------------

        # BlankScorer
        board = BitBoard(8)
        scorer = coord.BlankScorer()

        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, 0)

        board.put_disc('black', 5, 4)
        board.put_disc('white', 5, 3)
        board.put_disc('black', 3, 2)
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, -20)

        board.undo()
        board.put_disc('black', 2, 2)
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, -16)

        board.undo()
        board.put_disc('black', 4, 2)
        board.put_disc('white', 5, 5)
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, 8)

        board._black_bitboard = 0x2058082010000000
        board._white_bitboard = 0x4020101C0C040000
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, 1)

        board._black_bitboard = 0x20583E3C1C060200
        board._white_bitboard = 0x4020000000000000
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, -53)

        board._black_bitboard = 0x007A562C7C060200
        board._white_bitboard = 0xFA84A8D080000000
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, -42)

        board._black_bitboard = 0x043A170C14320000
        board._white_bitboard = 0xFAC4E8F1E8CCC241
        score = scorer.get_score(None, board, None, None)
        self.assertEqual(score, 8)

        # -------------------------------
        # recover environment and reload module
        del os.environ['FORCE_SCORERMETHODS_IMPORT_ERROR']
        importlib.reload(reversi.strategies.coordinator.ScorerMethods)
        self.assertFalse(
            reversi.strategies.coordinator.ScorerMethods.SLOW_MODE)