public void Return_Moves_For_Bishop_That_Is_Not_Blocked() { Target.AddPiece(new Pawn(), BoardCoordinate.For(2, 2)); var moves = Target.GetMovesFrom(BoardCoordinate.For(3, 1)); Assert.IsTrue(moves.Any()); }
public void Set_The_Pawns_At_Position_7_To_Be_Player2() { Target.SetupStandardBoard(); var firstPawnOnTheLeft = TheBoard.GetPiece(BoardCoordinate.For(1, 7)); Assert.IsFalse(firstPawnOnTheLeft.IsFirstPlayerPiece); }
public void Generate_Board_With_Two_Pieces_When_Two_Pawns_Are_Added() { Target.AddPiece(BoardCoordinate.For(1, 1), "WP"); Target.AddPiece(BoardCoordinate.For(1, 2), "WP"); Assert.AreEqual <int>(2, GeneratedBoard.PieceCount); }
public void BeforeEachTest() { Target = new Board(); new PiecePositioner(Target).SetupStandardBoard(); Target.MovePiece(BoardCoordinate.For(2, 7), BoardCoordinate.For(2, 5)); Target.MovePiece(BoardCoordinate.For(2, 5), BoardCoordinate.For(2, 4)); }
public void BeforeEachTest() { Target = new Board(); OriginCoordinate = BoardCoordinate.For(1, 1); DestinationCoordinate = BoardCoordinate.For(1, 2); new PiecePositioner(Target).SetupStandardPieces(1); }
public void Set_BlackPawns_CanPerformEnPassant_For_WhitePiece_At_14() { Target.MovePiece(BoardCoordinate.For(1, 2), BoardCoordinate.For(1, 4)); var piece = Target.GetPiece(BoardCoordinate.For(2, 4)) as Pawn; Assert.IsTrue(piece.CanPerformEnPassantOn(BoardCoordinate.For(1, 4))); }
public void Return_WhiteCastleMoveKingsSide_Only_When_QueensRook_Is_Blocked() { Board.AddPiece(new Knight(), BoardCoordinate.For(2, 1)); var movesForWhiteKing = Target.GetCastlingMovesFor(WhiteKingStart); Assert.IsTrue(movesForWhiteKing.All(bc => bc.Matches(WhiteCastleMoveKingsSide))); }
public void Return_False_For_Square_Directly_In_Front_Of_Pawn() { Board.AddPiece(new Pawn(true), BoardCoordinate.For(1, 2)); var isSquareThreatened = Target.IsThreatened(BoardCoordinate.For(1, 3), false); Assert.IsFalse(isSquareThreatened); }
public void Return_True_For_Square_KiddyCorner_To_King() { Board.AddPiece(new King(true), BoardCoordinate.For(5, 1)); var isSquareThreatened = Target.IsThreatened(BoardCoordinate.For(4, 2), false); Assert.IsTrue(isSquareThreatened); }
public void Return_False_For_Square_KiddyCorner_To_Rook() { Board.AddPiece(new Rook(true), BoardCoordinate.For(1, 1)); var isSquareThreatened = Target.IsThreatened(BoardCoordinate.For(2, 2), false); Assert.IsFalse(isSquareThreatened); }
public void Return_True_For_Square_Adjacent_To_Opposing_Rook() { Board.AddPiece(new Rook(true), BoardCoordinate.For(1, 2)); var isSquareThreatened = Target.IsThreatened(BoardCoordinate.For(1, 1), false); Assert.IsTrue(isSquareThreatened); }
public void BeforeEachTest() { Target = new Board(); var startingPosition = BoardCoordinate.For(1, 7); Target.AddPiece(new Pawn(), startingPosition); Target.MovePiece(startingPosition, BoardCoordinate.For(1, 8)); }
public void Not_Set_BlackPawns_CanPerformEnPassantOn_For_Square_At_34() { Target.MovePiece(BoardCoordinate.For(1, 2), BoardCoordinate.For(1, 4)); var piece = Target.GetPiece(BoardCoordinate.For(2, 4)) as Pawn; Assert.IsFalse(piece.CanPerformEnPassantOn(BoardCoordinate.For(3, 4))); }
public void Not_Allow_King_To_Move_Into_Check() { Target.AddPiece(new Queen(false), BoardCoordinate.For(4, 8)); var kingMoves = Target.GetMovesFrom(KingStart); Assert.IsFalse(kingMoves.Any(bc => bc.X == 4)); }
public void Return_False_For_Pieces_Of_Same_Color() { Board.AddPiece(new Rook(true), BoardCoordinate.For(1, 2)); var isSquareThreatened = Target.IsThreatened(BoardCoordinate.For(1, 1), true); Assert.IsFalse(isSquareThreatened); }
public void Return_Only_WhiteCastleMoveKingSide_When_Black_Queen_Threatens_4_1() { Board.AddPiece(new Queen(false), BoardCoordinate.For(4, 8)); var movesForWhiteKing = Target.GetCastlingMovesFor(WhiteKingStart); Assert.IsTrue(movesForWhiteKing.All(bc => bc.Matches(WhiteCastleMoveKingsSide))); }
public void Not_Allow_Rook_At_11_To_Capture_Rook_At_18_When_A_Pawn_Is_In_Front_Of_It() { Target.AddPiece(new Pawn(false), BoardCoordinate.For(1, 7)); var moves = Target.GetMovesFrom(BoardCoordinate.For(1, 1)); Assert.IsFalse(moves.Any(m => m.Matches(1, 8))); }
public void Return_Empty_For_Bishop_After_Blocking_Pawns_Are_Added() { Target.AddPiece(new Pawn(), BoardCoordinate.For(2, 2)); Target.AddPiece(new Pawn(), BoardCoordinate.For(4, 2)); var moves = Target.GetMovesFrom(BoardCoordinate.For(3, 1)); Assert.IsFalse(moves.Any()); }
public void Return_Empty_For_Bishop_at_3_8_When_Blocked() { Target.AddPiece(new Pawn(false), BoardCoordinate.For(2, 7)); Target.AddPiece(new Pawn(false), BoardCoordinate.For(4, 7)); var moves = Target.GetMovesFrom(BoardCoordinate.For(3, 8)); Assert.IsFalse(moves.Any()); }
public void Return_EmptyCollection_For_Origin_Same_As_Destination() { var origin = BoardCoordinate.For(1, 1); var destination = BoardCoordinate.For(1, 1); var target = new PathMaker(origin, destination); Assert.IsFalse(target.GetPathToDestination().Any()); }
public void ThenThePieceAtShouldHaveTheFollowingMoves(int xCoordinate, int yCoordinate, Table table) { var board = GetFromContext <Board>(); var boardMoves = board.GetMovesFrom(BoardCoordinate.For(xCoordinate, yCoordinate)).ToList(); var tableCoordinates = GetCoordinatesFromTable(table); CollectionAssert.AreEquivalent(tableCoordinates, boardMoves); }
public void BeforeEachTest() { Target = new Board(); Target.AddPiece(new Rook(false), BoardCoordinate.For(3, 1)); Target.AddPiece(new Rook(false), BoardCoordinate.For(5, 1)); Target.AddPiece(new Bishop(false), BoardCoordinate.For(3, 2)); Target.AddPiece(new Bishop(false), BoardCoordinate.For(4, 2)); Target.AddPiece(new Pawn(false), BoardCoordinate.For(5, 2)); Target.AddPiece(new Queen(), BoardCoordinate.For(4, 1)); }
public void Return_Single_Point_For_Single_Move() { var origin = BoardCoordinate.For(4, 8); var destination = BoardCoordinate.For(4, 7); var target = new PathMaker(origin, destination); var path = target.GetPathToDestination(); Assert.IsTrue(path.First().Matches(4, 7)); }
private void AddNonEmptyPiece(AsciiBoardBuilder builder, Table table, int rowIndex, int columnIndex) { var xCoordinate = columnIndex + 1; var yCoordinate = 8 - rowIndex; var pieceString = table.Rows[rowIndex][columnIndex]; if (!string.IsNullOrEmpty(pieceString)) { builder.AddPiece(BoardCoordinate.For(xCoordinate, yCoordinate), pieceString); } }
public void Return_Empty_Set_For_Rook_At_8_8() { Assert.IsFalse(Target.GetMovesFrom(BoardCoordinate.For(8, 8)).Any()); }
public void Return_Empty_Set_For_Rook_At_8_1() { var moves = Target.GetMovesFrom(BoardCoordinate.For(8, 1)); Assert.IsFalse(moves.Any()); }
public void Return_EmptyEnumeration_For_Unoccupied_Square() { var movesForUnoccupied = Target.GetCastlingMovesFor(BoardCoordinate.For(3, 3)); Assert.IsFalse(movesForUnoccupied.Any()); }
public void Throw_Exception_When_Called_With_1_2() { ExtendedAssert.Throws <ArgumentException>(() => Target.RemovePiece(BoardCoordinate.For(1, 2))); }
public void Result_In_GetPiece_For_1_1_Being_Null_When_Called_With_1_1() { Target.RemovePiece(BoardCoordinate.For(1, 1)); Assert.IsFalse(Target.DoesPieceExistAt(BoardCoordinate.For(1, 1))); }
public void Has_Five_Moves_When_Starting_At_Back_End_Of_Board() { var moves = Target.GetMovesFrom(BoardCoordinate.For(4, 8)); Assert.AreEqual <int>(5, moves.Count()); }