public static void TestGetValidMovesWhitePawn()
{
Piece[][] board = new Piece[8][]
{
new[] { kw, o, o, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, o },
new[] { o, o, o, kb, o, o, o, o },
new[] { pb, o, pb, o, o, o, o, o },
new[] { o, pw, o, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, o }
};
ChessGame cb = new ChessGame(board, Player.White);
ReadOnlyCollection<Move> actual = cb.GetValidMoves(new Position(File.B, 2));
List<Move> expected = new List<Move>()
{
new Move("B2", "B3", Player.White),
new Move("B2", "B4", Player.White),
new Move("B2", "A3", Player.White),
new Move("B2", "C3", Player.White)
};
Assert.AreEqual(expected.Count, actual.Count);
foreach (Move move in expected)
{
Assert.True(actual.Contains(move), "Actual does not contain " + move.ToString());
}
}