def test_safest_first_solver_with_hard_one(self):
     print("test_safest_first_solver_with_hard_one")
     grid = create_hard_sudoku()
     solver = SudokuSolver(grid)
     self.assertTrue( solver.safest_first_solver() )
     self.assertTrue( solver.check() )
     solver._debug()
 def test_safest_first_solver(self):
     print("test_safest_first_solver")
     grid = create_real_world_grid()
     solver = SudokuSolver(grid)
     self.assertTrue( solver.safest_first_solver() )
     self.assertTrue( solver.check())
     solver._debug()
    def test_solve_real_word_sudoku(self):
         grid = create_real_world_grid()

         solver = SudokuSolver(grid)

         import time
         start = time.monotonic()

         self.assertTrue( solver.brut_force() )
         
         end = time.monotonic()
         print ("elapsed = {} s".format(end - start))

         self.assertTrue( solver.check())
         solver._debug()
    def test_safest_first_solver_with_other_hard_one(self):
        print("test_safest_first_solver_with__other_hard_one")
        grid = [
            [1,0,0, 0,0,0, 0,0,0],
            [3,8,0, 0,0,1, 0,0,0],
            [0,7,0, 0,0,3, 5,0,0],

            [8,0,0, 0,3,5, 7,2,0],
            [0,0,3, 0,7,0, 4,0,0],
            [0,9,2, 8,4,0, 0,0,3],

            [0,0,8, 2,0,0, 0,4,0],
            [0,0,0, 4,0,0, 0,6,7],
            [0,0,0, 0,0,0, 0,0,1]
        ] 

        solver = SudokuSolver(grid)
        self.assertTrue( solver.safest_first_solver() )
        self.assertTrue( solver.check())
        solver._debug()