public static void TestGetValidMovesBlackStartingPosition()
{
ChessGame cb = new ChessGame();
cb.ApplyMove(new Move(new Position(File.A, 2), new Position(File.A, 3), Player.White), true);
ReadOnlyCollection<Move> actual = cb.GetValidMoves(Player.Black);
List<Move> expected = new List<Move>()
{
new Move("A7", "A6", Player.Black),
new Move("A7", "A5", Player.Black),
new Move("B7", "B6", Player.Black),
new Move("B7", "B5", Player.Black),
new Move("C7", "C6", Player.Black),
new Move("C7", "C5", Player.Black),
new Move("D7", "D6", Player.Black),
new Move("D7", "D5", Player.Black),
new Move("E7", "E6", Player.Black),
new Move("E7", "E5", Player.Black),
new Move("F7", "F6", Player.Black),
new Move("F7", "F5", Player.Black),
new Move("G7", "G6", Player.Black),
new Move("G7", "G5", Player.Black),
new Move("H7", "H6", Player.Black),
new Move("H7", "H5", Player.Black),
new Move("B8", "A6", Player.Black),
new Move("B8", "C6", Player.Black),
new Move("G8", "F6", Player.Black),
new Move("G8", "H6", Player.Black)
};
Assert.AreEqual(expected.Count, actual.Count);
foreach (Move move in expected)
{
Assert.True(actual.Contains(move), "Actual does not contain " + move.ToString());
}
}