Пример #1
0
 def __init__(self, y, x, possibilities=None, val=None):
     self.y = y
     self.x = x
     self.block = SudokuHelper.loc_to_block_num(y, x)
     self.block_cell_num = SudokuHelper.loc_to_block_cell_num(y, x)
     self.possibilities = copy.deepcopy(possibilities if possibilities is not None else all_possibilities)
     self.name = 'c' + str(self.y) + str(self.x) + str(self.block)
     self.val = val
Пример #2
0
 def __init__(self, y, x, possibilities=None, val=None):
     self.y = y
     self.x = x
     self.block = SudokuHelper.loc_to_block_num(y, x)
     self.block_cell_num = SudokuHelper.loc_to_block_cell_num(y, x)
     self.possibilities = copy.deepcopy(
         possibilities if possibilities is not None else all_possibilities)
     self.name = 'c' + str(self.y) + str(self.x) + str(self.block)
     self.val = val
Пример #3
0
 def test_cell_num_to_block_offsets(self):
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(0), (0, 0))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(1), (0, 1))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(2), (0, 2))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(3), (1, 0))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(4), (1, 1))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(5), (1, 2))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(6), (2, 0))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(7), (2, 1))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(8), (2, 2))
Пример #4
0
 def test_block_num_to_block_offsets(self):
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(0), (0, 0))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(1), (0, 3))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(2), (0, 6))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(3), (3, 0))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(4), (3, 3))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(5), (3, 6))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(6), (6, 0))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(7), (6, 3))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(8), (6, 6))
Пример #5
0
 def test_block_num_to_block_offsets(self):
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(0), (0, 0))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(1), (0, 3))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(2), (0, 6))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(3), (3, 0))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(4), (3, 3))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(5), (3, 6))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(6), (6, 0))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(7), (6, 3))
     self.assertEqual(SudokuHelper.block_num_to_block_offsets(8), (6, 6))
Пример #6
0
 def test_cell_num_to_block_offsets(self):
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(0), (0, 0))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(1), (0, 1))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(2), (0, 2))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(3), (1, 0))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(4), (1, 1))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(5), (1, 2))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(6), (2, 0))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(7), (2, 1))
     self.assertEqual(SudokuHelper.cell_num_to_block_offsets(8), (2, 2))
Пример #7
0
 def test_offsets_to_cell_num(self):
     self.assertEqual(SudokuHelper.offsets_to_cell_num(0, 0), 0)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(0, 1), 1)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(0, 2), 2)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(1, 0), 3)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(1, 1), 4)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(1, 2), 5)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(2, 0), 6)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(2, 1), 7)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(2, 2), 8)
Пример #8
0
 def test_get_other_block_nums_vertical(self):
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(0), [3, 6])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(1), [4, 7])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(2), [5, 8])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(3), [0, 6])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(4), [1, 7])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(5), [2, 8])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(6), [0, 3])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(7), [1, 4])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(8), [2, 5])
Пример #9
0
 def test_offsets_to_cell_num(self):
     self.assertEqual(SudokuHelper.offsets_to_cell_num(0, 0), 0)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(0, 1), 1)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(0, 2), 2)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(1, 0), 3)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(1, 1), 4)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(1, 2), 5)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(2, 0), 6)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(2, 1), 7)
     self.assertEqual(SudokuHelper.offsets_to_cell_num(2, 2), 8)
Пример #10
0
 def test_get_other_block_nums_horizontal(self):
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(0), [1, 2])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(1), [0, 2])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(2), [0, 1])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(3), [4, 5])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(4), [3, 5])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(5), [3, 4])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(6), [7, 8])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(7), [6, 8])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(8), [6, 7])
Пример #11
0
 def test_cell_name_to_loc(self):
     self.assertEqual(SudokuHelper.cell_name_to_loc('c000'), (0, 0))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c100'), (1, 0))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c220'), (2, 2))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c241'), (2, 4))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c313'), (3, 1))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c455'), (4, 5))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c688'), (6, 8))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c757'), (7, 5))
Пример #12
0
 def test_cell_name_to_loc(self):
     self.assertEqual(SudokuHelper.cell_name_to_loc('c000'), (0, 0))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c100'), (1, 0))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c220'), (2, 2))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c241'), (2, 4))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c313'), (3, 1))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c455'), (4, 5))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c688'), (6, 8))
     self.assertEqual(SudokuHelper.cell_name_to_loc('c757'), (7, 5))
Пример #13
0
 def test_loc_to_block_num(self):
     self.assertEqual(SudokuHelper.loc_to_block_num(0, 0), 0)
     self.assertEqual(SudokuHelper.loc_to_block_num(2, 2), 0)
     self.assertEqual(SudokuHelper.loc_to_block_num(3, 2), 3)
     self.assertEqual(SudokuHelper.loc_to_block_num(4, 7), 5)
     self.assertEqual(SudokuHelper.loc_to_block_num(6, 6), 8)
     self.assertEqual(SudokuHelper.loc_to_block_num(8, 8), 8)
Пример #14
0
 def test_loc_to_block_num(self):
     self.assertEqual(SudokuHelper.loc_to_block_num(0, 0), 0)
     self.assertEqual(SudokuHelper.loc_to_block_num(2, 2), 0)
     self.assertEqual(SudokuHelper.loc_to_block_num(3, 2), 3)
     self.assertEqual(SudokuHelper.loc_to_block_num(4, 7), 5)
     self.assertEqual(SudokuHelper.loc_to_block_num(6, 6), 8)
     self.assertEqual(SudokuHelper.loc_to_block_num(8, 8), 8)
Пример #15
0
 def test_get_other_block_nums_horizontal(self):
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(0),
                          [1, 2])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(1),
                          [0, 2])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(2),
                          [0, 1])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(3),
                          [4, 5])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(4),
                          [3, 5])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(5),
                          [3, 4])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(6),
                          [7, 8])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(7),
                          [6, 8])
     self.assertListEqual(SudokuHelper.get_other_block_nums_horizontal(8),
                          [6, 7])
Пример #16
0
 def test_get_other_block_nums_vertical(self):
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(0),
                          [3, 6])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(1),
                          [4, 7])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(2),
                          [5, 8])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(3),
                          [0, 6])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(4),
                          [1, 7])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(5),
                          [2, 8])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(6),
                          [0, 3])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(7),
                          [1, 4])
     self.assertListEqual(SudokuHelper.get_other_block_nums_vertical(8),
                          [2, 5])
Пример #17
0
 def test_block_num_and_cell_num_to_offsets(self):
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(0, 0),
                      (0, 0))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(0, 2),
                      (0, 2))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(0, 3),
                      (1, 0))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(0, 7),
                      (2, 1))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(1, 0),
                      (0, 3))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(1, 2),
                      (0, 5))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(1, 3),
                      (1, 3))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(1, 7),
                      (2, 4))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(6, 0),
                      (6, 0))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(6, 2),
                      (6, 2))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(6, 3),
                      (7, 0))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(6, 7),
                      (8, 1))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(8, 8),
                      (8, 8))
Пример #18
0
 def test_loc_to_block_cell_num(self):
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(0, 0), 0)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(1, 2), 5)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(2, 1), 7)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(2, 2), 8)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(3, 0), 0)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(4, 5), 5)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(5, 5), 8)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(6, 6), 0)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(7, 7), 4)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(7, 8), 5)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(8, 8), 8)
Пример #19
0
 def test_loc_to_block_cell_num(self):
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(0, 0), 0)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(1, 2), 5)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(2, 1), 7)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(2, 2), 8)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(3, 0), 0)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(4, 5), 5)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(5, 5), 8)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(6, 6), 0)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(7, 7), 4)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(7, 8), 5)
     self.assertEqual(SudokuHelper.loc_to_block_cell_num(8, 8), 8)
Пример #20
0
 def test_block_num_and_cell_num_to_offsets(self):
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(0, 0), (0, 0))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(0, 2), (0, 2))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(0, 3), (1, 0))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(0, 7), (2, 1))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(1, 0), (0, 3))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(1, 2), (0, 5))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(1, 3), (1, 3))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(1, 7), (2, 4))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(6, 0), (6, 0))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(6, 2), (6, 2))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(6, 3), (7, 0))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(6, 7), (8, 1))
     self.assertEqual(SudokuHelper.block_num_and_cell_num_to_offsets(8, 8), (8, 8))