public void TestAClassicalGame() { IChess chess = new Classical(); IPiece piece; Assert.All(GameOfChessData, tuple => { Assert.True(chess.Process(tuple.Item1, out piece)); if (tuple.Item3 == null) { Assert.Null(piece); } else { Assert.Equal(tuple.Item3.GetType(), piece.GetType()); Assert.Equal(tuple.Item3.Color, piece.Color); } Assert.Equal(tuple.Item2, chess.AvailableMoves(chess.MoveEntries.Last().Position[tuple.Item1.FromSquare].Color).Count); Assert.Equal(tuple.Item4, chess.Position.Count); }); Assert.Empty(chess.AvailableMoves(true)); Assert.True(chess.IsChecked <Classical>(true)); }
public void TestProcessMove() { IChess chess = new Classical(); var move = new Move( new Square(Files.e, Ranks.two), new Square(Files.e, Ranks.four), MoveType.Rush); Assert.True(chess.Process(move, out IPiece p)); Assert.Equal(30, chess.AvailableMoves(true).Count); }