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_possible_val_mod(self): # Change the set returned by the possible val method, make sure it stays the same. c = Cell(9, 0, 0, poss_vals=frozenset({2, 3, 4})) ret_set = c.possible_vals() ret_set.add(5) self.assertEqual(4, len(ret_set)) self.assertEqual(3, len(c.possible_vals())) self.assertEqual(3, c.possible_count())
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_set_possible_value(self): c = Cell(9, 0, 0, poss_vals=frozenset({1})) c2 = c.set_possible_value(2) self.assertEqual({1}, c.possible_vals()) self.assertEqual({1, 2}, c2.possible_vals()) # Out of range checks with self.assertRaises(ValueError): c.set_possible_value(0) with self.assertRaises(ValueError): c.set_possible_value(-1) with self.assertRaises(ValueError): c.set_possible_value(10) # Make sure setting a possible value on a set value doesn't change the value. c = Cell(9, 0, 0, 4) c2 = c.set_possible_value(5) self.assertFalse(c2.has_possible_val(5)) self.assertEqual(-1, c2.possible_count()) self.assertEqual(4, c2.value())
def test_clear_possible_value(self): c = Cell(9, 0, 0, poss_vals=frozenset({2, 3, 4})) c2 = c for i in range(1, 10): c2 = c2.clear_possible_value(i) self.assertEqual({2, 3, 4}, c.possible_vals()) self.assertEqual(set(), c2.possible_vals()) c2 = c.clear_possible_value(5) self.assertEqual(c, c2) c2 = c.clear_possible_value(4) self.assertEqual({2, 3}, c2.possible_vals()) self.assertEqual({2, 3, 4}, c.possible_vals()) c = Cell(9, 0, 0, 4)
def test_possible_values(self): for x in self.__test_maxes: vals = frozenset(range(1, x + 1)) Cell(x, 0, 0, poss_vals=vals) with self.assertRaises(ValueError): vals = frozenset(range(0, x + 1)) Cell(x, 0, 0, poss_vals=vals) with self.assertRaises(ValueError): vals = frozenset(range(1, x + 2)) Cell(x, 0, 0, poss_vals=vals) s = frozenset({2, 3, 4}) c = Cell(9, 0, 0, poss_vals=s) self.assertEqual(s, c.possible_vals()) s = frozenset({4, 2, 9}) c = Cell(9, 0, 0, poss_vals=s) self.assertEqual(s, c.possible_vals())