public void GetsCorrectAttackSquaresForSingleBlackPawn(Square pawnSquare, ulong expectedAttackSquares) { // Act var attackSquares = PawnMoves.BlackPawnAttacks(pawnSquare); // Assert Assert.Equal <Bitboard>(expectedAttackSquares, attackSquares); }
public void CanGetAllPawnAttacks(ulong pawns, Side side, ulong expectedAttacks) { // Act var attacks = PawnMoves.AllPawnAttacks(pawns, side); // Assert Assert.Equal <Bitboard>(expectedAttacks, attacks); }
public void CreatesBlackDoublePushTargetsCorrectly() { // Assemble Bitboard blackPawns = 0x00_c7_20_10_08_10_00_00; Bitboard whitePieces = 0x00_00_41_02_00_00_10_00; Bitboard emptySquares = ~(blackPawns | whitePieces); // Act Bitboard doublePushTargets = PawnMoves.PawnDoublePushTargets(blackPawns, emptySquares, Side.Black); // Assert Assert.Equal <Bitboard>(0x00_00_00_84_00_00_00_00, doublePushTargets); }
public void CreatesWhiteDoublePushTargetsCorrectly() { // Assemble Bitboard whitePawns = 0x00_00_00_08_00_01_F6_00; Bitboard blackPieces = 0x00_00_00_00_11_84_00_00; Bitboard emptySquares = ~(whitePawns | blackPieces); // Act Bitboard doublePushTargets = PawnMoves.PawnDoublePushTargets(whitePawns, emptySquares, Side.White); // Assert Assert.Equal <Bitboard>(0x00_00_00_00_62_00_00_00, doublePushTargets); }
private static Moves Create(PieceEnum piece) { switch (piece) { case PieceEnum.Knight: return(KnightMoves.Get()); case PieceEnum.Bishop: return(BishopMoves.Get()); case PieceEnum.Rook: return(RookMoves.Get()); case PieceEnum.Queen: return(QueenMoves.Get()); case PieceEnum.King: return(KingMoves.Get()); case PieceEnum.Pawn: return(PawnMoves.Get()); } return(null); }
public void ThrowsExceptionIfPawnIsOnFirstOrLastRank(Square pawnSquare) { // Act & Assert Assert.Throws <ArgumentOutOfRangeException>(() => PawnMoves.WhitePawnAttacks(pawnSquare)); Assert.Throws <ArgumentOutOfRangeException>(() => PawnMoves.BlackPawnAttacks(pawnSquare)); }