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()
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()
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()
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()
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()
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()
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()
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)' )