func TestInitSolverBadInput(t *testing.T) { cases := negativeTestCases() for i, testCase := range cases { sut, _ := sudoku.InitSolver(testCase.input) if sut != nil { t.Errorf("InitSolver given corrupted grid %v (testCase %v) \nshould return nil", testCase.input, i) } } }
func main() { input := readGrid(os.Stdin) solver, err := sudoku.InitSolver(input) if err != nil || !solver.Solve() { fmt.Println("Couldn't solve given sudoku: ", err) return } sudoku.PrintReadableGrid(solver.GetSolution()) }
func TestSolvePositive(t *testing.T) { cases := positiveTestCases() for _, testCase := range cases { sut, _ := sudoku.InitSolver(testCase.input) if !sut.Solve() { t.Errorf("Sudoku didn't solved but solution was expected for %v", testCase.input) } result := sut.GetSolution() if result != testCase.correct { t.Errorf("Solver returned wrong value from Solve.\nExpected:\n %v\nGot:\n %v", testCase.correct, result) } } }