def puzzle_tester(self, puzzle, solution = None): """ Verify solvability of a sudoku puzzle and correctness of the solution. If a solution is provided, they are compared. """ p = SudokuPuzzle(puzzle) self.assertTrue(p.solve()) self.assertTrue(p.is_solved_correctly()) if solution: self.assertEqual(p.as_line(), solution.replace("\n", ""))
[1, 2, 0, 9, 0, 7, 0, 8, 6], [3, 5, 0, 0, 4, 1, 7, 0, 2], [0, 0, 3, 1, 0, 0, 0, 4, 9], [0, 0, 0, 3, 0, 0, 0, 7, 8], [9, 1, 0, 0, 0, 0, 0, 0, 0]] # Hard puzzle # puzzle = [[0, 2, 6, 0, 4, 3, 0, 0, 0], # [0, 0, 0, 6, 0, 0, 0, 0, 0], # [0, 0, 3, 0, 0, 0, 2, 0, 5], # [5, 6, 8, 0, 0, 0, 0, 0, 2], # [0, 0, 0, 0, 0, 0, 9, 0, 1], # [0, 0, 7, 0, 0, 0, 0, 3, 0], # [0, 1, 0, 0, 0, 0, 0, 4, 6], # [7, 0, 0, 0, 6, 0, 0, 0, 0], # [0, 8, 0, 9, 7, 4, 0, 0, 0]] validp = [[1, 4, 7, 2, 5, 8, 3, 6, 9], [2, 5, 8, 3, 6, 9, 4, 7, 1], [3, 6, 9, 4, 7, 1, 5, 8, 2], [4, 7, 1, 5, 8, 2, 6, 9, 3], [5, 8, 2, 6, 9, 3, 7, 1, 4], [6, 9, 3, 7, 1, 4, 8, 2, 5], [7, 1, 4, 8, 2, 5, 9, 3, 6], [8, 2, 5, 9, 3, 6, 1, 4, 7], [9, 3, 6, 1, 4, 7, 2, 5, 8]] puzzle = SudokuPuzzle(puzzle, 3) print(puzzle) # puzzle.fill(0, 0, 4) # print(puzzle.get_possible(0, 1)) NaiveSudokuSolver().solve(puzzle) print("\nSolved:") print(puzzle) # print(puzzle.validate())
def test_unsolvable_sudoku(self): """ An impossible sudoku must not be solvable """ p = SudokuPuzzle("1" * 80 + "0") self.assertFalse(p.solve())
def main(): s = SudokuPuzzle( "Sudoku-boards.txt", "name,sudokugarden_de/files/100sudoku2-en_pdf-Nr-50,unsolved") y = SudokuPuzzle( "Sudoku-boards.txt", "name,sudokugarden_de/files/100sudoku2-en_pdf-Nr-50,unsolved") z = SudokuPuzzle("outTemp.txt") y.data[0], y.data[1] = y.data[1], y.data[0] #y.solve() s.solve() z.solve() #y.printDataFile() s.printData() print "\n\n" z.printData()