コード例 #1
0
    def test_value_poss_exclusive(self):

        c = Cell(9, 0, 0, 4)

        self.assertEqual(4, c.value())
        self.assertEqual(-1, c.possible_count())
        self.assertIsNone(c.possible_vals())

        c = Cell(9, 0, 0, poss_vals=frozenset({2, 3, 4}))

        self.assertIsNone(c.value())
        self.assertEqual({2, 3, 4}, c.possible_vals())
        self.assertEqual(3, c.possible_count())
コード例 #2
0
    def test_neither_set(self):
        c = Cell(9, 0, 0)
        self.assertIsNone(c.value())
        self.assertIsNotNone(c.possible_vals())
        self.assertEqual(9, c.possible_count())

        for x in self.__test_maxes:
            s = set(range(1, x + 1))
            c = Cell(x, 0, 0)
            self.assertEqual(s, c.possible_vals())
コード例 #3
0
    def __test_xy_value_helper(self, val):
        for i in range(val):
            c = Cell(val, i, 0, 1)
            self.assertEqual(i, c.x())
            self.assertEqual(0, c.y())
            self.assertEqual(1, c.value())

            c = Cell(val, 0, i, 1)
            self.assertEqual(0, c.x())
            self.assertEqual(i, c.y())
            self.assertEqual(1, c.value())

            c = Cell(val, i, i, 1)
            self.assertEqual(i, c.x())
            self.assertEqual(i, c.y())
            self.assertEqual(1, c.value())

            c = Cell(val, 0, 0, i + 1)
            self.assertEqual(i + 1, c.value())
コード例 #4
0
def _clear_possible_action(board: Board, mod_cell: Cell, value: int):
    if mod_cell.is_initial():
        return

    if mod_cell.value() is not None:
        return

    if mod_cell.has_possible_val(value):
        new_cell = mod_cell.clear_possible_value(value)
        board.set_cell(new_cell)