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())
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())
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())
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)