Ejemplo n.º 1
0
 def test_erase_pencil_rcn(self):
     s = SSR.construct_sudoku(verbose=self.verbose)
     rcn = [[2, 2, 4], [5, 6, 7]]
     SSR.erase_pencil_rcn(sudoku=s, rcn=rcn, verbose=self.verbose)
     #         SSD.display_pencil(s)
     self.assertTrue(s[2, 2, 4] == 0)
     self.assertTrue(s[5, 6, 7] == 0)
Ejemplo n.º 2
0
 def test_1(self):
     s = SSR.construct_sudoku(verbose=self.verbose)
     rows, cols, nums, blocks = SSR.unfinished_rcnbrbc(s, self.verbose)
     self.assertTrue(len(rows) == 9)
     self.assertTrue(len(cols) == 9)
     self.assertTrue(len(nums) == 9)
     self.assertTrue(len(blocks) == 9)
Ejemplo n.º 3
0
 def test_1(self):
     """
     """
     s = SSR.construct_sudoku(verbose=self.verbose)
     s[0, 0, 1:10] = 0
     s[1, 1, 0] = 2
     SSR.check_sanity(s)
Ejemplo n.º 4
0
 def test_init(self):
     """
     """
     s = SSR.construct_sudoku(verbose=self.verbose)
     self.assertTrue(numpy.shape(s) == (9, 9, 12))
     self.assertTrue(s[0, 0, 10] == 0)
     self.assertTrue(s[1, 1, 10] == 0)
     self.assertTrue(s[1, 1, 11] == 0)
     self.assertTrue(s[3, 0, 10] == 1)
     self.assertTrue(s[3, 0, 11] == 0)
Ejemplo n.º 5
0
    def test_1(self):
        """
        """
        s = SSR.construct_sudoku(verbose=self.verbose)

        res = SSR.check_finished(s)
        self.assertFalse(res)

        s[:, :, 0] = 1
        res = SSR.check_finished(s)
        self.assertTrue(res)
Ejemplo n.º 6
0
    def test_row(self):
        s = SSR.construct_sudoku(verbose=self.verbose)
        for i in range(9):
            s, f = SSR.fill_value(s, i, 0, i + 1, verbose=self.verbose)
#         SSD.display_pencil(s)
        rows, cols, nums, blocks = SSR.unfinished_rcnbrbc(s, self.verbose)
        #         print(rows, cols, nums, blocks)
        self.assertTrue(len(rows) == 9)
        self.assertTrue(len(cols) == 8)
        self.assertTrue(len(nums) == 9)
        self.assertTrue(len(blocks) == 9)
Ejemplo n.º 7
0
 def test_erase_pencil_col(self):
     s = SSR.construct_sudoku(verbose=self.verbose)
     SSR.erase_pencil_col(sudoku=s,
                          except_r=[3, 4, 5],
                          c=3,
                          n=9,
                          verbose=self.verbose)
     #         SSD.display_pencil(s)
     self.assertTrue(numpy.all(s[0:3, 3, 9] == 0))
     self.assertTrue(numpy.all(s[3:6, 3, 9] == 9))
     self.assertTrue(numpy.all(s[6:, 3, 9] == 0))
Ejemplo n.º 8
0
 def test_erase_pencil_row(self):
     s = SSR.construct_sudoku(verbose=self.verbose)
     SSR.erase_pencil_row(sudoku=s,
                          r=0,
                          except_c=[1, 2],
                          n=1,
                          verbose=self.verbose)
     #         SSD.display_pencil(s)
     self.assertTrue(s[0, 0, 1] == 0)
     self.assertTrue(numpy.all(s[0, 1:3, 1] == 1))
     self.assertTrue(numpy.all(s[0, 3:, 1] == 0))
Ejemplo n.º 9
0
 def test_erase_pencil_block(self):
     s = SSR.construct_sudoku(verbose=self.verbose)
     SSR.erase_pencil_block(sudoku=s,
                            br=1,
                            bc=1,
                            except_rc=[[3, 3], [4, 4], [5, 5]],
                            n=9,
                            verbose=self.verbose)
     #         SSD.display_pencil(s)
     self.assertTrue(s[3, 3, 9] == 9)
     self.assertTrue(s[4, 4, 9] == 9)
     self.assertTrue(s[5, 5, 9] == 9)
     self.assertTrue(s[4:5, 3, 9] == 0)
     self.assertTrue(numpy.all(s[0:3, :, 9] == 9))
     self.assertTrue(numpy.all(s[:, 0:3, 9] == 9))
Ejemplo n.º 10
0
    def test_fill_2(self):
        """
        """
        s = SSR.construct_sudoku(verbose=self.verbose)

        r = 3
        c = 1
        n = 2
        s, f = SSR.fill_value(s, r, c, n)

        self.assertTrue(s[3, 1, 0] == 2)  # number is filled in
        self.assertTrue(numpy.all(s[3, 1, 1:10] == 0))  # pencils for num are 0
        self.assertTrue(numpy.all(s[:, 1, 2] == 0))  # pencils in row are 0
        self.assertTrue(numpy.all(s[3, :, 2] == 0))  # pencils in col are 0
        self.assertTrue(numpy.all(s[3:6, 0:3,
                                    2] == 0))  # pencils in block are 0
Ejemplo n.º 11
0
    def test_fill_1(self):
        """
        """
        s = SSR.construct_sudoku(verbose=self.verbose)

        r = 0
        c = 0
        n = 1
        s, f = SSR.fill_value(s, r, c, n)

        self.assertTrue(s[0, 0, 0] == 1)  # number is filled in
        self.assertTrue(numpy.all(s[0, 0, 1:10] == 0))  # pencils for num are 0
        self.assertTrue(numpy.all(s[:, 0, 1] == 0))  # pencils in row are 0
        self.assertTrue(numpy.all(s[0, :, 1] == 0))  # pencils in col are 0
        self.assertTrue(numpy.all(s[0:3, 0:3,
                                    1] == 0))  # pencils in block are 0
Ejemplo n.º 12
0
    def test_block(self):
        s = SSR.construct_sudoku(verbose=self.verbose)

        s, f = SSR.fill_value(s, 0, 0, 1, verbose=self.verbose)
        s, f = SSR.fill_value(s, 1, 0, 2, verbose=self.verbose)
        s, f = SSR.fill_value(s, 2, 0, 3, verbose=self.verbose)

        s, f = SSR.fill_value(s, 0, 1, 4, verbose=self.verbose)
        s, f = SSR.fill_value(s, 1, 1, 5, verbose=self.verbose)
        s, f = SSR.fill_value(s, 2, 1, 6, verbose=self.verbose)

        s, f = SSR.fill_value(s, 0, 2, 7, verbose=self.verbose)
        s, f = SSR.fill_value(s, 1, 2, 8, verbose=self.verbose)
        s, f = SSR.fill_value(s, 2, 2, 9, verbose=self.verbose)
        #         SSD.display_pencil(s)
        rows, cols, nums, blocks = SSR.unfinished_rcnbrbc(s, self.verbose)
        #         print(rows, cols, nums, blocks)
        self.assertTrue(len(rows) == 9)
        self.assertTrue(len(cols) == 9)
        self.assertTrue(len(nums) == 9)
        self.assertTrue(len(blocks) == 8)
Ejemplo n.º 13
0
 def test_erase_pencil_n_array(self):
     s = SSR.construct_sudoku(verbose=self.verbose)
     SSR.erase_pencil(sudoku=s, r=0, c=0, n=[1, 2], verbose=self.verbose)
     #         SSD.display_pencil(s)
     self.assertTrue(s[0, 0, 1] == 0)
     self.assertTrue(s[0, 0, 2] == 0)
Ejemplo n.º 14
0
 def test_3(self):
     """
     """
     s = SSR.construct_sudoku(verbose=self.verbose)
     s[0:3, 0:3, 2] = 0
     SSR.check_sanity(s)