public void ParseDefault() { var parser = new FENParser(); string fenRecord = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1"; Assert.AreEqual(fenRecord, parser.Parse(fenRecord).ToString()); }
public void ParseEmptySpaces() { var parser = new FENParser(); string fenRecord = "r1b2b2/1ppppp2/8/8/8/8/7P/RNBQKBNR w KQkq - 0 1"; Assert.AreEqual(fenRecord, parser.Parse(fenRecord).ToString()); }
public void ParseFENCastling() { ChessState gameState = new FENParser().Parse("rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w Kq - 0 1"); Assert.IsTrue(gameState.Castling.KingsideWhite); Assert.IsFalse(gameState.Castling.QueensideWhite); Assert.IsFalse(gameState.Castling.KingsideBlack); Assert.IsTrue(gameState.Castling.QueensideBlack); }
public void CannotSolveKingSuicide() { string from = "1r6/8/8/8/8/8/7r/K7 w KQkq - 0 1"; var players = new List<Player> { new Player(1), new Player(2) }; var s = new FENParser().Parse(from, players); var m = new ChessMove("Kb2") { PieceType = PieceTypes.King, Player = players[0], From = new Position(), To = "b2" }; m.Apply(s); }
public void SolveNothing() { string from = "8/8/8/8/8/3R4/2R1R3/3R4 w KQkq - 0 1"; string to = "8/8/8/8/8/3R4/2RRR3/8 b KQkq - 0 1"; var players = new List<Player> { new Player(1), new Player(2) }; var s = new FENParser().Parse(from, players); var m = new ChessMove("Rd1d2") { PieceType = PieceTypes.Rook, Player = players[0], From = "d1", To = "d2" }; m.Apply(s); Assert.AreEqual(to, s.ToString()); }
public void SolveKingUnderCheck() { string from = "3r4/8/8/8/8/8/3N1N2/3K4 w KQkq - 0 1"; string to = "3r4/8/8/8/4N3/8/3N4/3K4 b KQkq - 0 1"; var players = new List<Player> { new Player(1), new Player(2) }; var s = new FENParser().Parse(from, players); var m = new ChessMove("Ne4") { PieceType = PieceTypes.Knight, Player = players[0], From = new Position(), To = "e4" }; m.Apply(s); Assert.AreEqual(to, s.ToString()); }
public void SolveFile() { string from = "R7/8/8/8/8/8/8/R7 w KQkq - 0 1"; string to = "R7/8/8/8/R7/8/8/8 b KQkq - 0 1"; var players = new List<Player> { new Player(1), new Player(2) }; var s = new FENParser().Parse(from, players); var m = new ChessMove("R1a4") { PieceType = PieceTypes.Rook, Player = players[0], From = new Position(null, 1), To = "a4"}; m.Apply(s); Assert.AreEqual(to, s.ToString()); }
public void SimpleMove() { string from = "8/8/8/8/8/8/P7/8 w KQkq - 0 1"; string to = "8/8/8/8/8/P7/8/8 b KQkq - 0 1"; var players = new List<Player> { new Player(1), new Player(2) }; var s = new FENParser().Parse(from, players); var m = new ChessMove("a3") { PieceType = PieceTypes.Pawn, Player = players[0], From = new Position(), To = "a3"}; m.Apply(s); Assert.AreEqual(to, s.ToString()); }
public ChessGame(Meta metainfo) { Info = metainfo; Players.Add(new Player(1)); Players.Add(new Player(2)); State = new FENParser().Parse( (Info["FEN"] == null) || (Info["FEN"].Equals("")) ? FENParser.DefaultFEN : Info["FEN"], Players); }
public void ParseWrongBoard() { var parser = new FENParser(); string fenRecord = "z1b2b2/1ppppp2/8/8/8/8/7P"; parser.ParseBoard(fenRecord); }
public void ParseNoEnding() { var parser = new FENParser(); string fenRecord = "r1b2b2/1ppppp2/8/8/8/8/7P/RNBQKBNR"; parser.Parse(fenRecord); }
public void ParseBoardDefault() { var parser = new FENParser(); string fenRecord = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR"; Assert.AreEqual(fenRecord, parser.ParseBoard(fenRecord).ToStringShort()); }
public void SolveRightPlayer() { string from = "8/8/8/8/8/8/8/R6r w KQkq - 0 1"; string to = "8/8/8/8/8/8/8/3R3r b KQkq - 0 1"; var players = new List<Player> { new Player(1), new Player(2) }; var s = new FENParser().Parse(from, players); var m = new ChessMove("Rd1") { PieceType = PieceTypes.Rook, Player = players[0], From = new Position(), To = "d1" }; m.Apply(s); Assert.AreEqual(to, s.ToString()); }