Ejemplo n.º 1
0
        public void DecodeMoveCountersTest()
        {
            var decodedPosition = FenDecoder.Decode("rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2");

            Assert.AreEqual(1, decodedPosition.HalfMoveClock);
            Assert.AreEqual(2, decodedPosition.FullMoveNumber);
        }
Ejemplo n.º 2
0
        public void DecodePiecesTest()
        {
            var board = FenDecoder.Decode(InitialPosition).Board;

            for (int row = 2; row <= 5; ++row)
            {
                for (int column = 0; column < Board.ColumnCount; ++column)
                {
                    Assert.IsTrue(board.IsEmpty(row, column));
                }
            }

            AssertPiece(Player.White, Piece.Rook, board.GetPieceAt(SquareFromString("a1")));
            AssertPiece(Player.White, Piece.Bishop, board.GetPieceAt(SquareFromString("f1")));
            AssertPiece(Player.White, Piece.Pawn, board.GetPieceAt(SquareFromString("e2")));
            AssertPiece(Player.Black, Piece.King, board.GetPieceAt(SquareFromString("e8")));
            AssertPiece(Player.Black, Piece.Queen, board.GetPieceAt(SquareFromString("d8")));
            AssertPiece(Player.Black, Piece.Knight, board.GetPieceAt(SquareFromString("g8")));
        }
Ejemplo n.º 3
0
        public void DecodeCastlingAvailabilityTest()
        {
            var currentPosition = FenDecoder.Decode(InitialPosition);

            Assert.IsTrue(currentPosition.GetCastlingAvailability(Player.White).CanCastleShort);
            Assert.IsTrue(currentPosition.GetCastlingAvailability(Player.White).CanCastleLong);
            Assert.IsTrue(currentPosition.GetCastlingAvailability(Player.Black).CanCastleShort);
            Assert.IsTrue(currentPosition.GetCastlingAvailability(Player.Black).CanCastleLong);

            currentPosition = FenDecoder.Decode(InitialPosition.Replace("KQkq", "Qk"));
            Assert.IsFalse(currentPosition.GetCastlingAvailability(Player.White).CanCastleShort);
            Assert.IsTrue(currentPosition.GetCastlingAvailability(Player.White).CanCastleLong);
            Assert.IsTrue(currentPosition.GetCastlingAvailability(Player.Black).CanCastleShort);
            Assert.IsFalse(currentPosition.GetCastlingAvailability(Player.Black).CanCastleLong);

            currentPosition = FenDecoder.Decode(EndgamePosition);
            Assert.IsFalse(currentPosition.GetCastlingAvailability(Player.White).CanCastleShort);
            Assert.IsFalse(currentPosition.GetCastlingAvailability(Player.White).CanCastleLong);
            Assert.IsFalse(currentPosition.GetCastlingAvailability(Player.Black).CanCastleShort);
            Assert.IsFalse(currentPosition.GetCastlingAvailability(Player.Black).CanCastleLong);
        }
Ejemplo n.º 4
0
 public void DecodeEnPassantCaptureAvailabilityTest(string encodedPosition, bool expectedValue)
 {
     Assert.AreEqual(expectedValue, FenDecoder.Decode(encodedPosition).IsCanCaptureEnPassant);
 }
Ejemplo n.º 5
0
 public void DecodePlayerToMoveTest(Player expectedPlayer, string encodedPosition)
 {
     Assert.AreEqual(expectedPlayer, FenDecoder.Decode(encodedPosition).PlayerToMove);
 }