Пример #1
0
    def test_check_valid_no_conflict_kings(self):
        '''
            -------
            |K| |K|
            -------
        '''

        board = Board(
            dimensions=(3, 1),
            placements={
                (0, 0): King(),
                (2, 0): King(),
            },
        )

        # does not raise
        board.check_valid()
Пример #2
0
    def test_check_valid_conflict_kings(self):
        '''
            -----
            |K|K|
            -----
        '''

        board = Board(
            dimensions=(2, 1),
            placements={
                (0, 0): King(),
                (1, 0): King(),
            },
        )

        with self.assertRaises(ConflictError):
            board.check_valid()
Пример #3
0
    def test_check_valid_no_conflict_knights(self):
        '''
            ---------
            |N| | | |
            ---------
            | | | |N|
            ---------
        '''

        board = Board(
            dimensions=(4, 2),
            placements={
                (0, 0): Knight(),
                (3, 1): Knight(),
            },
        )

        # does not raise
        board.check_valid()
Пример #4
0
    def test_check_valid_conflict_knights(self):
        '''
            -------
            |N| | |
            -------
            | | |N|
            -------
        '''

        board = Board(
            dimensions=(3, 2),
            placements={
                (0, 0): Knight(),
                (2, 1): Knight(),
            },
        )

        with self.assertRaises(ConflictError):
            board.check_valid()
Пример #5
0
    def test_check_valid_no_conflict_queens(self):
        '''
            -------
            |Q| | |
            -------
            | | |Q|
            -------
        '''

        board = Board(
            dimensions=(3, 2),
            placements={
                (0, 0): Queen(),
                (2, 1): Queen(),
            },
        )

        # does not raise
        board.check_valid()
Пример #6
0
    def test_check_valid_no_conflict_rooks(self):
        '''
            -----
            |R| |
            -----
            | |R|
            -----
        '''

        board = Board(
            dimensions=(2, 2),
            placements={
                (0, 0): Rook(),
                (1, 1): Rook(),
            },
        )

        # does not raise
        board.check_valid()
Пример #7
0
    def test_check_valid_no_conflict_bishop(self):
        '''
            -------
            | |R| |
            -------
            | | | |
            -------
            | | |B|
            -------
        '''

        board = Board(
            dimensions=(3, 3),
            placements={
                (1, 0): Rook(),
                (2, 2): Bishop(),
            },
        )

        # does not raise
        board.check_valid()
Пример #8
0
    def test_check_valid_conflict(self):
        '''
            -------
            |K| |R|
            -------
        '''

        board = Board(
            dimensions=(3, 1),
            placements={
                (0, 0): King(),
                (2, 0): Rook(),
            },
        )

        with self.assertRaises(ConflictError) as cm:
            board.check_valid()

        exc = cm.exception
        assert exc.message == (
            'Overlap detected at (0, 0): contains piece King '
            'and is reachable by Rook at (2, 0)'
        )