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());
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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));
 }
Esempio n. 5
0
 public void BeforeEachTest()
 {
     Target                = new Board();
     OriginCoordinate      = BoardCoordinate.For(1, 1);
     DestinationCoordinate = BoardCoordinate.For(1, 2);
     new PiecePositioner(Target).SetupStandardPieces(1);
 }
Esempio n. 6
0
        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);
        }
Esempio n. 12
0
        public void BeforeEachTest()
        {
            Target = new Board();
            var startingPosition = BoardCoordinate.For(1, 7);

            Target.AddPiece(new Pawn(), startingPosition);
            Target.MovePiece(startingPosition, BoardCoordinate.For(1, 8));
        }
Esempio n. 13
0
        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)));
        }
Esempio n. 14
0
        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());
        }
Esempio n. 20
0
        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);
        }
Esempio n. 22
0
        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));
        }
Esempio n. 23
0
        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);
            }
        }
Esempio n. 25
0
 public void Return_Empty_Set_For_Rook_At_8_8()
 {
     Assert.IsFalse(Target.GetMovesFrom(BoardCoordinate.For(8, 8)).Any());
 }
Esempio n. 26
0
        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)));
        }
Esempio n. 30
0
            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());
            }