def test_promotions_are_valid_with_capturable(self): pawn = Pawn(self.white, (4, 6)) rook = Rook(self.black, (3, 7)) self.board.add_piece(pawn) self.board.add_piece(rook) moves = list(pawn.moves(self.board)) self.assertTrue(all(move.promotion is not None for move in moves))
def test_promotions_with_capturable(self): pawn = Pawn(self.white, (4, 6)) rook = Rook(self.black, (3, 7)) self.board.add_piece(pawn) self.board.add_piece(rook) moves = list(pawn.moves(self.board)) self.assertTrue(len(moves), 8)
def test_moves_captureable_enemy(self): king = King(self.white, (0, 4)) pawn = Pawn(self.white, (4, 4)) bishop = Bishop(self.black, (5, 5)) self.board.add_piece(king) self.board.add_piece(pawn) self.board.add_piece(bishop) moves = list(pawn.moves(self.board)) self.assertEquals(len(moves), 2, moves)
def test_cant_en_passant(self): pawn1 = Pawn(self.white, (4, 4)) pawn2 = Pawn(self.black, (3, 5)) self.board.add_piece(pawn1) self.board.add_piece(pawn2) move = Move(pawn2, pawn2.location, (3, 4)) self.game._make_move(move) moves = [m for m in pawn1.moves(self.board)] self.assertEqual(len(moves), 1)
def test_promotions(self): pawn = Pawn(self.white, (4, 6)) moves = list(pawn.moves(self.board)) self.assertEquals(len(moves), 4, moves)
def test_moves_blocked_enemy(self): pawn = Pawn(self.white, (4, 4)) bishop = Bishop(self.black, (4, 5)) self.board.add_piece(bishop) moves = list(pawn.moves(self.board)) self.assertEquals(len(moves), 0, moves)
def test_moves_start_blocked(self): pawn = Pawn(self.white, (4, 1)) bishop = Bishop(self.white, (4, 3)) self.board.add_piece(bishop) moves = list(pawn.moves(self.board)) self.assertEquals(len(moves), 1, moves)
def test_moves_start(self): pawn = Pawn(self.white, (4, 1)) moves = list(pawn.moves(self.board)) self.assertEquals(len(moves), 2, moves)
def test_moves_center(self): pawn = Pawn(self.white, (4, 4)) moves = list(pawn.moves(self.board)) self.assertEquals(len(moves), 1, moves)
def test_promotions_are_valid(self): pawn = Pawn(self.white, (4, 6)) moves = list(pawn.moves(self.board)) self.assertTrue(all(move.promotion is not None for move in moves))