private string GetPartialSAN() { if (MovingPiece.Kind == ChessPieceKind.Pawn) { if (CapturedPiece == ChessPieceKind.None) { return(To.AlgebraicNotation); } else { if ((MoveKind & ChessMoveType.EP_Capture) == ChessMoveType.EP_Capture) { return($"{From.File}x{To.AlgebraicNotation} e.p."); } return($"{From.File}x{To.AlgebraicNotation}"); } } else { if (MoveKind == ChessMoveType.KSide_Castle) { return("O-O"); } if (MoveKind == ChessMoveType.QSide_Castle) { return("O-O-O"); } if ((MoveKind & ChessMoveType.Capture) == ChessMoveType.Capture) { return($"{FEN.ChessPieceToFEN(MovingPiece).ToUpper()}x{To.AlgebraicNotation}"); } return($"{FEN.ChessPieceToFEN(MovingPiece).ToUpper()}{To.AlgebraicNotation}"); } }
public void Constructor_Should_Initialize(string rank1, string rank2, string rank3, string rank4, string rank5, string rank6, string rank7, string rank8, string turn, string castling, string enpassant, string halfMove, string moves, ChessCastling expectedCastlingForWhite, ChessCastling expectedCastlingForBlack) { // Arrange SUT fenObj = new SUT($"{rank1}/{rank2}/{rank3}/{rank4}/{rank5}/{rank6}/{rank7}/{rank8} {turn} {castling} {enpassant} {halfMove} {moves}"); // Assert Assert.AreEqual(rank1.Trim(), fenObj.Ranks[0]); Assert.AreEqual(rank2.Trim(), fenObj.Ranks[1]); Assert.AreEqual(rank3.Trim(), fenObj.Ranks[2]); Assert.AreEqual(rank4.Trim(), fenObj.Ranks[3]); Assert.AreEqual(rank5.Trim(), fenObj.Ranks[4]); Assert.AreEqual(rank6.Trim(), fenObj.Ranks[5]); Assert.AreEqual(rank7.Trim(), fenObj.Ranks[6]); Assert.AreEqual(rank8.Trim(), fenObj.Ranks[7]); Assert.AreEqual(expectedCastlingForWhite, fenObj.CastlingForWhite); Assert.AreEqual(expectedCastlingForBlack, fenObj.CastlingForBlack); Assert.AreEqual(enpassant.Trim(), fenObj.EnPassant); Assert.AreEqual(int.Parse(halfMove), fenObj.HalfMoveCount); Assert.AreEqual(int.Parse(moves), fenObj.MoveCount); Assert.AreEqual(turn.Trim() == "w"? ChessColor.White: ChessColor.Black, fenObj.Turn); }
public void FenToChessPiece_Should_ThrowArgumentOutOfRangeException() { // Act SUT.FenToChessPiece('v'); }
public void FenToChessPiece_Should_Return_ChessPieceKind(char piece, ChessPieceKind expectedResult) { // Assert Assert.AreEqual(expectedResult, SUT.FenToChessPiece(piece)); }
public void ChessPieceToFEN_Should_ThrowArgumentNullException_WhenPieceIsNull() { SUT.ChessPieceToFEN(null); }
public void ChessPieceToFEN_Should_ReturnCorrectFENPiece(ChessPieceKind pieceKind, ChessColor pieceColor, string expectedFEN) { // Assert Assert.AreEqual(expectedFEN, SUT.ChessPieceToFEN(new ChessPiece(pieceKind, pieceColor))); }