public void TestSudokuGenerator() { try { #region samurai level { var generator = SudokuGenerator.GetGenerator(9, Common.Difficulty.Samurai); var unsolvedBoard = generator.Generate(); Assert.IsNotNull(unsolvedBoard); var solvedBoard = SudokuSolver.GetSolver(unsolvedBoard).Solve(); Assert.AreEqual(generator.BaseBoard, solvedBoard); } #endregion #region hard level { var generator = SudokuGenerator.GetGenerator(9, Common.Difficulty.Hard); var unsolvedBoard = generator.Generate(); Assert.IsNotNull(unsolvedBoard); var solvedBoard = SudokuSolver.GetSolver(unsolvedBoard).Solve(); Assert.AreEqual(generator.BaseBoard, solvedBoard); } #endregion #region medium level { var generator = SudokuGenerator.GetGenerator(9, Common.Difficulty.Medium); var unsolvedBoard = generator.Generate(); Assert.IsNotNull(unsolvedBoard); var solvedBoard = SudokuSolver.GetSolver(unsolvedBoard).Solve(); Assert.AreEqual(generator.BaseBoard, solvedBoard); } #endregion #region easy level { var generator = SudokuGenerator.GetGenerator(9, Common.Difficulty.Easy); var unsolvedBoard = generator.Generate(); Assert.IsNotNull(unsolvedBoard); var solvedBoard = SudokuSolver.GetSolver(unsolvedBoard).Solve(); Assert.AreEqual(generator.BaseBoard, solvedBoard); } #endregion } catch (Exception ex) { Assert.Fail(ex.Message); } }