public void TestSolvingSpecificPuzzles() { string badPuzzlePath = @"Input\Puzzle-25x25-0902.txt"; string multipleSolutionsPuzzlePath = @"Input\Puzzle-16x16-0902.txt"; string goodPuzzlePath = @"Input\Puzzle-16x16-0301.txt"; SudokuFiler filer = null; try { filer = new SudokuFiler(badPuzzlePath); } catch (Exception) { } Assert.IsTrue(filer == null); filer = new SudokuFiler(multipleSolutionsPuzzlePath); SudokuPuzzle puzzle = filer.CreatePuzzle(); SudokuSolver.SudokuSolver.SudokuSolver solver = new SudokuSolver.SudokuSolver.SudokuSolver(); Assert.IsTrue(solver.Solve(puzzle).Count == 2); filer = new SudokuFiler(goodPuzzlePath); puzzle = filer.CreatePuzzle(); solver = new SudokuSolver.SudokuSolver.SudokuSolver(); Assert.IsTrue(solver.Solve(puzzle).Count == 1); }
/// <summary> /// The main entry point of the program /// </summary> /// <param name="args">An array of command line arguments</param> public static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Error: Missing file paths"); } else if (!File.Exists(args[0])) { Console.WriteLine($"Error: Could not find file {args[0]}"); } else { try { SudokuFiler filer = new SudokuFiler(args[0]); SudokuPuzzle puzzleToSolve = filer.CreatePuzzle(); SudokuSolver.SudokuSolver solver = new SudokuSolver.SudokuSolver(); List <SudokuPuzzle> solutions = solver.Solve(puzzleToSolve); OutputSolutions(args[1], filer, puzzleToSolve, solutions); } catch (Exception) { string[] sudokuFile = File.ReadAllLines(args[0]); List <string> lines = new List <string>(); foreach (string line in sudokuFile) { lines.Add(line); } lines.Add(string.Empty); lines.Add("Bad Puzzle"); WriteToFile(args[1], lines); } } }
public void TestSudokuSolver() { string[] files = Directory.GetFiles(Directory.GetCurrentDirectory() + @"\Input"); foreach (string file in files) { try { SudokuFiler filer = new SudokuFiler(file); SudokuSolver.SudokuSolver.SudokuSolver solver = new SudokuSolver.SudokuSolver.SudokuSolver(); List <SudokuPuzzle> puzzles = solver.Solve(filer.CreatePuzzle()); Assert.IsTrue(puzzles.Count == 1); } catch (Exception e) { } } }