def test_cannot_insert_number_if_it_is_already_on_same_column(self): grid = create_zero_grid() col = 3 number = 8 grid[col][2] = number solver = SudokuSolver(grid) self.assertFalse(solver._is_possible(col,4,number)) # ok for neighbor col self.assertTrue(solver._is_possible(col + 1, 4 ,number))
def test_cannot_insert_number_if_it_is_already_on_same_row(self): grid = create_zero_grid() row = 3 number = 8 grid[2][row] = number solver = SudokuSolver(grid) self.assertFalse(solver._is_possible(4,row,number)) # ok for neighbor row self.assertTrue(solver._is_possible(4,row + 1,number))
def test_cannot_insert_number_if_it_is_already_on_same_block(self): grid = create_zero_grid() number = 8 grid[1][1] = number grid[4][4] = number grid[7][7] = number solver = SudokuSolver(grid) self.assertFalse(solver._is_possible(2,2,number)) self.assertFalse(solver._is_possible(5,5,number)) self.assertFalse(solver._is_possible(8,8,number))
def test_all_positions_and_numbers_are_possible_on_zero_grid(self): grid = create_zero_grid() solver = SudokuSolver(grid) for number in range(1, 10): for col in range(9): for row in range(9): self.assertTrue(solver._is_possible(col,row,number))