public static void TestGetValidMovesBlackPawnPromotion()
{
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[] { o, o, o, o, o, o, o, o },
new[] { o, o, o, o, o, o, o, pb },
new[] { o, o, o, o, o, o, o, o }
};
ChessGame cb = new ChessGame(board, Player.Black);
ReadOnlyCollection<Move> actual = cb.GetValidMoves(new Position(File.H, 2));
List<Move> expected = new List<Move>()
{
new Move("H2", "H1", Player.Black, 'q'),
new Move("H2", "H1", Player.Black, 'R'),
new Move("H2", "H1", Player.Black, 'N'),
new Move("H2", "H1", Player.Black, 'b')
};
Assert.AreEqual(expected.Count, actual.Count);
foreach (Move move in expected)
{
Assert.True(actual.Contains(move), "Actual does not contain " + move.ToString());
}
}