private void SolveAndVerifyBoard(string name, IBoard board) { var solver = SolverCombiner.AllSolvers.Value; IEnumerable <BoardChange> changes; do { changes = solver.Solve(board); board = board.ApplyChanges(changes); } while (changes.Any()); Assert.True(BoardChecker.IsBoardCompleted(board), $"Board: {name}\n{BoardASCIIArt.BoardOnlyAsciiArt(board)}"); }