public static void TestGetValidMovesWhiteStartingPosition()
{
ChessGame cb = new ChessGame();
ReadOnlyCollection<Move> actual = cb.GetValidMoves(Player.White);
List<Move> expected = new List<Move>()
{
new Move("A2", "A3", Player.White),
new Move("A2", "A4", Player.White),
new Move("B2", "B3", Player.White),
new Move("B2", "B4", Player.White),
new Move("C2", "C3", Player.White),
new Move("C2", "C4", Player.White),
new Move("D2", "D3", Player.White),
new Move("D2", "D4", Player.White),
new Move("E2", "E3", Player.White),
new Move("E2", "E4", Player.White),
new Move("F2", "F3", Player.White),
new Move("F2", "F4", Player.White),
new Move("G2", "G3", Player.White),
new Move("G2", "G4", Player.White),
new Move("H2", "H3", Player.White),
new Move("H2", "H4", Player.White),
new Move("B1", "A3", Player.White),
new Move("B1", "C3", Player.White),
new Move("G1", "F3", Player.White),
new Move("G1", "H3", Player.White)
};
Assert.AreEqual(expected.Count, actual.Count);
foreach (Move move in expected)
{
Assert.True(actual.Contains(move), "Actual does not contain " + move.ToString());
}
}