Example #1
0
    def test_sudoku_solved(self):
        solved = [[4, 5, 2, 3, 8, 9, 7, 1, 6], [3, 8, 7, 4, 6, 1, 2, 9, 5],
                  [6, 1, 9, 2, 5, 7, 3, 4, 8], [9, 3, 5, 1, 2, 6, 8, 7, 4],
                  [7, 6, 4, 9, 3, 8, 5, 2, 1], [1, 2, 8, 5, 7, 4, 6, 3, 9],
                  [5, 7, 1, 8, 9, 2, 4, 6, 3], [8, 9, 6, 7, 4, 3, 1, 5, 2],
                  [2, 4, 3, 6, 1, 5, 9, 8, 7]]
        self.assertTrue(sudoku_solved(solved))

        wrong = [[1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9]]
        self.assertFalse(sudoku_solved(wrong))
Example #2
0
 def test_with_not_solved_sudokus(self):
     self.assertFalse(solution.sudoku_solved([[2, 4, 8,    9, 5, 7, 1, 6],
                                              [5, 7, 1, 6, 2, 8, 3, 4, 9],
                                              [9, 3, 6,    4, 1, 5, 8, 2],
                                              [6, 8, 2, 5, 3, 9, 1, 7, 4],
                                              [3, 5, 9, 1,    4, 6, 2,  ],
                                              [7, 1, 4, 8, 6, 2, 9, 5, 3],
                                              [8, 6, 3, 4, 1, 7, 2, 9, 5],
                                              [1,    5, 2, 8, 6, 4, 3, 7],
                                              [4, 2, 7, 9, 5,    8,    1]]))
Example #3
0
 def test_sudoku_2(self):
     self.assertTrue(not solution.sudoku_solved([
         [1, 2, 3, 4, 5, 6, 7, 8, 9],
         [1, 2, 3, 4, 5, 6, 7, 8, 9],
         [1, 2, 3, 4, 5, 6, 7, 8, 9],
         [1, 2, 3, 4, 5, 6, 7, 8, 9],
         [1, 2, 3, 4, 5, 6, 7, 8, 9],
         [1, 2, 3, 4, 5, 6, 7, 8, 9],
         [1, 2, 3, 4, 5, 6, 7, 8, 9],
         [1, 2, 3, 4, 5, 6, 7, 8, 9],
         [1, 2, 3, 4, 5, 6, 7, 8, 9]]))
Example #4
0
 def test_True(self):
     self.assertTrue(
         sudoku_solved([[4, 5, 2, 3, 8, 9, 7, 1, 6],
                        [3, 8, 7, 4, 6, 1, 2, 9, 5],
                        [6, 1, 9, 2, 5, 7, 3, 4, 8],
                        [9, 3, 5, 1, 2, 6, 8, 7, 4],
                        [7, 6, 4, 9, 3, 8, 5, 2, 1],
                        [1, 2, 8, 5, 7, 4, 6, 3, 9],
                        [5, 7, 1, 8, 9, 2, 4, 6, 3],
                        [8, 9, 6, 7, 4, 3, 1, 5, 2],
                        [2, 4, 3, 6, 1, 5, 9, 8, 7]]))
Example #5
0
    def test_with_correctly_solved_sudokus(self):
        self.assertTrue(solution.sudoku_solved([[2, 4, 8, 3, 9, 5, 7, 1, 6],
                                                [5, 7, 1, 6, 2, 8, 3, 4, 9],
                                                [9, 3, 6, 7, 4, 1, 5, 8, 2],
                                                [6, 8, 2, 5, 3, 9, 1, 7, 4],
                                                [3, 5, 9, 1, 7, 4, 6, 2, 8],
                                                [7, 1, 4, 8, 6, 2, 9, 5, 3],
                                                [8, 6, 3, 4, 1, 7, 2, 9, 5],
                                                [1, 9, 5, 2, 8, 6, 4, 3, 7],
                                                [4, 2, 7, 9, 5, 3, 8, 6, 1]]))

        self.assertTrue(solution.sudoku_solved([[4, 5, 2, 3, 8, 9, 7, 1, 6],
                                                [3, 8, 7, 4, 6, 1, 2, 9, 5],
                                                [6, 1, 9, 2, 5, 7, 3, 4, 8],
                                                [9, 3, 5, 1, 2, 6, 8, 7, 4],
                                                [7, 6, 4, 9, 3, 8, 5, 2, 1],
                                                [1, 2, 8, 5, 7, 4, 6, 3, 9],
                                                [5, 7, 1, 8, 9, 2, 4, 6, 3],
                                                [8, 9, 6, 7, 4, 3, 1, 5, 2],
                                                [2, 4, 3, 6, 1, 5, 9, 8, 7]]))
Example #6
0
 def test_sudoku1(self):
     self.assertTrue(solution.sudoku_solved([
         [4, 5, 2, 3, 8, 9, 7, 1, 6],
         [3, 8, 7, 4, 6, 1, 2, 9, 5],
         [6, 1, 9, 2, 5, 7, 3, 4, 8],
         [9, 3, 5, 1, 2, 6, 8, 7, 4],
         [7, 6, 4, 9, 3, 8, 5, 2, 1],
         [1, 2, 8, 5, 7, 4, 6, 3, 9],
         [5, 7, 1, 8, 9, 2, 4, 6, 3],
         [8, 9, 6, 7, 4, 3, 1, 5, 2],
         [2, 4, 3, 6, 1, 5, 9, 8, 7]]))
Example #7
0
 def test_False(self):
     self.assertFalse(
         sudoku_solved([[1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9]]))
 def test_sudoku_solved2(self):
     self.assertEqual(
         False,
         solution.sudoku_solved([[1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9]]))
 def test_sudoku_solved_2(self):
     self.assertEqual(False, solution.sudoku_solved([
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                         [1, 2, 3, 4, 5, 6, 7, 8, 9]
                                         ]))
Example #10
0
 def test_two(self):
     self.assertEquals(sudoku_solved([
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9]
                 ]), False)
Example #11
0
 def test_sudoku_solved(self):
     sudoku1 = [ [4, 5, 2, 3, 8, 9, 7, 1, 6],
                 [3, 8, 7, 4, 6, 1, 2, 9, 5],
                 [6, 1, 9, 2, 5, 7, 3, 4 ,8],
                 [9, 3, 5, 1, 2, 6, 8, 7, 4],
                 [7, 6, 4, 9, 3, 8, 5, 2, 1],
                 [1, 2, 8, 5, 7, 4, 6, 3, 9],
                 [5, 7, 1, 8, 9, 2, 4, 6, 3],
                 [8, 9, 6, 7, 4, 3, 1, 5 ,2],
                 [2, 4, 3, 6, 1, 5, 9, 8, 7] ]
     sudoku2 = [ [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                 [1, 2, 3, 4, 5, 6, 7, 8, 9] ]
     self.assertTrue(sudoku_solved(sudoku1))
     self.assertFalse(sudoku_solved(sudoku2))
Example #12
0
	def test_not_solved(self):
		self.assertFalse(sudoku_solved([
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9],
[1, 2, 3, 4, 5, 6, 7, 8, 9]
]))
 def test_sudoku_solved3(self):
     self.assertEqual(False, solution.sudoku_solved([
         [1, 1, 1, 1, 1, 1, 1, 1, 1],
         [2, 2, 2, 2, 2, 2, 2, 2, 2],
         [3, 3, 3, 3, 3, 3, 3, 3, 3],
         [4, 4, 4, 4, 4, 4, 4, 4, 4],
         [5, 5, 5, 5, 5, 5, 5, 5, 5],
         [6, 6, 6, 6, 6, 6, 6, 6, 6],
         [7, 7, 7, 7, 7, 7, 7, 7, 7],
         [8, 8, 8, 8, 8, 8, 8, 8, 8],
         [9, 9, 9, 9, 9, 9, 9, 9, 9]
     ]))
 def test_sudoku_solved3(self):
     self.assertEqual(
         False,
         solution.sudoku_solved([[1, 1, 1, 1, 1, 1, 1, 1, 1],
                                 [2, 2, 2, 2, 2, 2, 2, 2, 2],
                                 [3, 3, 3, 3, 3, 3, 3, 3, 3],
                                 [4, 4, 4, 4, 4, 4, 4, 4, 4],
                                 [5, 5, 5, 5, 5, 5, 5, 5, 5],
                                 [6, 6, 6, 6, 6, 6, 6, 6, 6],
                                 [7, 7, 7, 7, 7, 7, 7, 7, 7],
                                 [8, 8, 8, 8, 8, 8, 8, 8, 8],
                                 [9, 9, 9, 9, 9, 9, 9, 9, 9]]))
Example #15
0
    def test_sudoku_solved(self):

        self.assertTrue(True, sudoku_solved([[4, 5, 2, 3, 8, 9, 7, 1, 6],
                                             [3, 8, 7, 4, 6, 1, 2, 9, 5],
                                             [6, 1, 9, 2, 5, 7, 3, 4, 8],
                                             [9, 3, 5, 1, 2, 6, 8, 7, 4],
                                             [7, 6, 4, 9, 3, 8, 5, 2, 1],
                                             [1, 2, 8, 5, 7, 4, 6, 3, 9],
                                             [5, 7, 1, 8, 9, 2, 4, 6, 3],
                                             [8, 9, 6, 7, 4, 3, 1, 5, 2],
                                             [2, 4, 3, 6, 1, 5, 9, 8, 7]]))
        # True
        self.assertFalse(False, sudoku_solved([[1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9]]))
Example #16
0
 def test_sudoku_solved(self):
     self.assertEqual(
         True,
         solution.sudoku_solved([[4, 5, 2, 3, 8, 9, 7, 1, 6],
                                 [3, 8, 7, 4, 6, 1, 2, 9, 5],
                                 [6, 1, 9, 2, 5, 7, 3, 4, 8],
                                 [9, 3, 5, 1, 2, 6, 8, 7, 4],
                                 [7, 6, 4, 9, 3, 8, 5, 2, 1],
                                 [1, 2, 8, 5, 7, 4, 6, 3, 9],
                                 [5, 7, 1, 8, 9, 2, 4, 6, 3],
                                 [8, 9, 6, 7, 4, 3, 1, 5, 2],
                                 [2, 4, 3, 6, 1, 5, 9, 8, 7]]))
     self.assertEqual(
         False,
         solution.sudoku_solved([[1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                 [1, 2, 3, 4, 5, 6, 7, 8, 9]]))
Example #17
0
 def test_problem_statement_cases(self):
     self.assertEqual(True, sudoku_solved([
     [4, 5, 2, 3, 8, 9, 7, 1, 6],
     [3, 8, 7, 4, 6, 1, 2, 9, 5],
     [6, 1, 9, 2, 5, 7, 3, 4 ,8],
     [9, 3, 5, 1, 2, 6, 8, 7, 4],
     [7, 6, 4, 9, 3, 8, 5, 2, 1],
     [1, 2, 8, 5, 7, 4, 6, 3, 9],
     [5, 7, 1, 8, 9, 2, 4, 6, 3],
     [8, 9, 6, 7, 4, 3, 1, 5 ,2],
     [2, 4, 3, 6, 1, 5, 9, 8, 7]
     ]))
     self.assertEqual(False, sudoku_solved([
     [1, 2, 3, 4, 5, 6, 7, 8, 9],
     [1, 2, 3, 4, 5, 6, 7, 8, 9],
     [1, 2, 3, 4, 5, 6, 7, 8, 9],
     [1, 2, 3, 4, 5, 6, 7, 8, 9],
     [1, 2, 3, 4, 5, 6, 7, 8, 9],
     [1, 2, 3, 4, 5, 6, 7, 8, 9],
     [1, 2, 3, 4, 5, 6, 7, 8, 9],
     [1, 2, 3, 4, 5, 6, 7, 8, 9],
     [1, 2, 3, 4, 5, 6, 7, 8, 9]
     ]))
    def SudokuSolvedTest(self):
        solved = [[4, 5, 2, 3, 8, 9, 7, 1, 6],
            [3, 8, 7, 4, 6, 1, 2, 9, 5],
            [6, 1, 9, 2, 5, 7, 3, 4 ,8],
            [9, 3, 5, 1, 2, 6, 8, 7, 4],
            [7, 6, 4, 9, 3, 8, 5, 2, 1],
            [1, 2, 8, 5, 7, 4, 6, 3, 9],
            [5, 7, 1, 8, 9, 2, 4, 6, 3],
            [8, 9, 6, 7, 4, 3, 1, 5 ,2],
            [2, 4, 3, 6, 1, 5, 9, 8, 7]]

        not_solved = [[1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9],
            [1, 2, 3, 4, 5, 6, 7, 8, 9]]

        self.assertTrue(sudoku_solved(solved))
        self.assertFalse(sudoku_solved(not_solved))
Example #19
0
 def test(self):
     self.assertEqual(True, solution.sudoku_solved([
                                                     [4, 5, 2, 3, 8, 9, 7, 1, 6],
                                                     [3, 8, 7, 4, 6, 1, 2, 9, 5],
                                                     [6, 1, 9, 2, 5, 7, 3, 4 ,8],
                                                     [9, 3, 5, 1, 2, 6, 8, 7, 4],
                                                     [7, 6, 4, 9, 3, 8, 5, 2, 1],
                                                     [1, 2, 8, 5, 7, 4, 6, 3, 9],
                                                     [5, 7, 1, 8, 9, 2, 4, 6, 3],
                                                     [8, 9, 6, 7, 4, 3, 1, 5 ,2],
                                                     [2, 4, 3, 6, 1, 5, 9, 8, 7]
                                                     ]))
     self.assertEqual(False, solution.sudoku_solved([
                                                     [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                                     [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                                     [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                                     [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                                     [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                                     [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                                     [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                                     [1, 2, 3, 4, 5, 6, 7, 8, 9],
                                                     [1, 2, 3, 4, 5, 6, 7, 8, 9]
                                                     ]))
Example #20
0
 def test_problem_statement_cases(self):
     self.assertEqual(
         True,
         sudoku_solved([[4, 5, 2, 3, 8, 9, 7, 1, 6],
                        [3, 8, 7, 4, 6, 1, 2, 9, 5],
                        [6, 1, 9, 2, 5, 7, 3, 4, 8],
                        [9, 3, 5, 1, 2, 6, 8, 7, 4],
                        [7, 6, 4, 9, 3, 8, 5, 2, 1],
                        [1, 2, 8, 5, 7, 4, 6, 3, 9],
                        [5, 7, 1, 8, 9, 2, 4, 6, 3],
                        [8, 9, 6, 7, 4, 3, 1, 5, 2],
                        [2, 4, 3, 6, 1, 5, 9, 8, 7]]))
     self.assertEqual(
         False,
         sudoku_solved([[1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9],
                        [1, 2, 3, 4, 5, 6, 7, 8, 9]]))
Example #21
0
 def test_with_incorrectly_solved_sudokus(self):
     self.assertFalse(solution.sudoku_solved([list(range(9))
                                              for i in range(9)]))