public void AdvancedPerft_DefaultBoard(int depth, ulong expectedLeafsCount, ulong expectedCapturesCount, ulong expectedEnPassantsCount, ulong expectedCastlesCount, ulong expectedChecksCount, ulong expectedCheckmatesCount) { var boardState = new BoardState(); boardState.SetDefaultState(); var result = AdvancedPerft.Run(boardState, depth); Assert.Equal(expectedLeafsCount, result.Leafs); Assert.Equal(expectedCapturesCount, result.Captures); Assert.Equal(expectedEnPassantsCount, result.EnPassants); Assert.Equal(expectedCastlesCount, result.Castles); Assert.Equal(expectedChecksCount, result.Checks); Assert.Equal(expectedCheckmatesCount, result.Checkmates); }
public void Run(params string[] parameters) { if (parameters.Length < 1 || !int.TryParse(parameters[0], out var depth)) { _interactiveConsole.WriteLine("No depth specified"); return; } var boardState = new BoardState(); boardState.SetDefaultState(); for (var i = 0; i <= depth; i++) { var result = AdvancedPerft.Run(boardState, i); _interactiveConsole.WriteLine($"Depth {i}: {result.Leafs} leafs ({result.Time:F} s), Captures: {result.Captures}, " + $"Checkmates: {result.Checkmates}, Castlings: {result.Castles}, " + $"En passants: {result.EnPassants}, Checks: {result.Checks}"); } }