Ejemplo n.º 1
0
 def test_min_operator_non_probability_outcome(self):
     probability_outcome = ProbabilityOutcome(
         value=1234567890, constraint_set=self._constraint_sets[1])
     for name, value in self._non_probability_outcome.items():
         with self.subTest(name):
             with self.assertRaises(TypeError):
                 _ = probability_outcome.min_operator(value)
Ejemplo n.º 2
0
 def test_and_non_probability_outcome(self):
     probability_outcome = ProbabilityOutcome(
         value=1, constraint_set=self._constraint_sets[1])
     for name, value in self._non_probability_outcome.items():
         with self.subTest(name):
             with self.assertRaises(TypeError):
                 _ = probability_outcome.__and__(value)
Ejemplo n.º 3
0
 def test_hash_not_the_same_value(self, values):
     probability_outcome_one = ProbabilityOutcome(
         value=values[0], constraint_set=self._constraint_sets[0])
     probability_outcome_two = ProbabilityOutcome(
         value=values[1], constraint_set=self._constraint_sets[0])
     self.assertNotEqual(hash(probability_outcome_one),
                         hash(probability_outcome_two))
Ejemplo n.º 4
0
 def test_is_possible(self, constraint_is_possible: bool):
     self._constraint_sets[
         0].is_possible.return_value = constraint_is_possible
     probability_outcome = ProbabilityOutcome(
         value=1, constraint_set=self._constraint_sets[0])
     self.assertEqual(constraint_is_possible,
                      probability_outcome.is_possible())
Ejemplo n.º 5
0
 def test_not(self, value):
     probability_outcome = ProbabilityOutcome(
         value=value, constraint_set=self._constraint_sets[1])
     abs_probability_outcome = probability_outcome.not_operator()
     self.assertEqual(
         0 if value > 0 else 1,
         abs_probability_outcome.value,
     )
Ejemplo n.º 6
0
    def test_floordiv_div_zero(self, value_one: int):
        probability_outcome_one = ProbabilityOutcome(
            value=value_one, constraint_set=self._constraint_sets[0])
        probability_outcome_two = ProbabilityOutcome(
            value=0, constraint_set=self._constraint_sets[1])

        with self.assertRaises(ZeroDivisionError):
            _ = probability_outcome_one // probability_outcome_two
Ejemplo n.º 7
0
    def test_sub(self):
        probability_outcome_one = ProbabilityOutcome(
            value=1234567890, constraint_set=self._constraint_sets[0])
        probability_outcome_two = ProbabilityOutcome(
            value=987654321, constraint_set=self._constraint_sets[1])

        new_probability_outcome = probability_outcome_one - probability_outcome_two
        self.assertEqual(1234567890 - 987654321, new_probability_outcome.value)
        self.assertEqual(str(self._constraint_sets[-1]),
                         str(new_probability_outcome.constraint_set))
Ejemplo n.º 8
0
    def test_sub(self, value_one: int, value_two: int):
        probability_outcome_one = ProbabilityOutcome(
            value=value_one, constraint_set=self._constraint_sets[0])
        probability_outcome_two = ProbabilityOutcome(
            value=value_two, constraint_set=self._constraint_sets[1])

        new_probability_outcome = probability_outcome_one - probability_outcome_two
        self.assertEqual(value_one - value_two, new_probability_outcome.value)
        self.assertEqual(str(self._constraint_sets[-1]),
                         str(new_probability_outcome.constraint_set))
Ejemplo n.º 9
0
    def test_floordiv(self, value_one: int, value_two: int):
        assume(value_two != 0)
        probability_outcome_one = ProbabilityOutcome(
            value=value_one, constraint_set=self._constraint_sets[0])
        probability_outcome_two = ProbabilityOutcome(
            value=value_two, constraint_set=self._constraint_sets[1])

        new_probability_outcome = probability_outcome_one // probability_outcome_two
        self.assertEqual(value_one // value_two, new_probability_outcome.value)
        self.assertEqual(str(self._constraint_sets[-1]),
                         str(new_probability_outcome.constraint_set))
Ejemplo n.º 10
0
    def test_or(self, value_one: int, value_two: int):
        probability_outcome_one = ProbabilityOutcome(
            value=value_one, constraint_set=self._constraint_sets[0])
        probability_outcome_two = ProbabilityOutcome(
            value=value_two, constraint_set=self._constraint_sets[1])

        new_probability_outcome = probability_outcome_one.__or__(
            probability_outcome_two)
        self.assertEqual(1 if value_one > 0 or value_two > 0 else 0,
                         new_probability_outcome.value)
        self.assertEqual(str(self._constraint_sets[-1]),
                         str(new_probability_outcome.constraint_set))
Ejemplo n.º 11
0
    def test_min_operator(self):
        probability_outcome_one = ProbabilityOutcome(
            value=1234567890, constraint_set=self._constraint_sets[0])
        probability_outcome_two = ProbabilityOutcome(
            value=987654321, constraint_set=self._constraint_sets[1])

        new_probability_outcome = probability_outcome_one.min_operator(
            probability_outcome_two)
        self.assertEqual(min(1234567890, 987654321),
                         new_probability_outcome.value)
        self.assertEqual(str(self._constraint_sets[-1]),
                         str(new_probability_outcome.constraint_set))
Ejemplo n.º 12
0
    def test_min_operator(self, value_one: int, value_two: int):
        probability_outcome_one = ProbabilityOutcome(
            value=value_one, constraint_set=self._constraint_sets[0])
        probability_outcome_two = ProbabilityOutcome(
            value=value_two, constraint_set=self._constraint_sets[1])

        new_probability_outcome = probability_outcome_one.min_operator(
            probability_outcome_two)
        self.assertEqual(min(value_one, value_two),
                         new_probability_outcome.value)
        self.assertEqual(str(self._constraint_sets[-1]),
                         str(new_probability_outcome.constraint_set))
Ejemplo n.º 13
0
 def test_abs(self, value):
     probability_outcome = ProbabilityOutcome(
         value=value, constraint_set=self._constraint_sets[1])
     abs_probability_outcome = abs(probability_outcome)
     self.assertEqual(
         abs(value),
         abs_probability_outcome.value,
     )
Ejemplo n.º 14
0
 def test_type_error_on_non_int_value(self):
     for name, value in self._non_probability_outcome.items():
         if name == "int":
             continue
         with self.subTest(name):
             with self.assertRaises(TypeError):
                 _ = ProbabilityOutcome(
                     value=value, constraint_set=self._constraint_sets[0])
Ejemplo n.º 15
0
 def create_empty(self, value: int) -> IProbabilityOutcome:
     return ProbabilityOutcome(
         value, self._constraint_set_factory.create_constraint_set())
Ejemplo n.º 16
0
 def test_constraint_set(self, index: int):
     probability_outcome = ProbabilityOutcome(
         value=1, constraint_set=self._constraint_sets[index])
     self.assertEqual(self._constraint_sets[index],
                      probability_outcome.constraint_set)
Ejemplo n.º 17
0
 def test_value(self, int_value: int):
     probability_outcome = ProbabilityOutcome(
         value=int_value, constraint_set=self._constraint_sets[0])
     self.assertEqual(int_value, probability_outcome.value)
Ejemplo n.º 18
0
 def test_repr(self, value):
     probability_outcome = ProbabilityOutcome(
         value=value, constraint_set=self._constraint_sets[1])
     self.assertEqual(
         f"ProbabilityOutcome: value={value}, constraint_set={self._constraint_sets[1]}",
         repr(probability_outcome))
Ejemplo n.º 19
0
 def test_eq_false_constraint_set(self, value):
     probability_outcome_one = ProbabilityOutcome(
         value=value, constraint_set=self._constraint_sets[0])
     probability_outcome_two = ProbabilityOutcome(
         value=value, constraint_set=self._constraint_sets[1])
     self.assertNotEqual(probability_outcome_one, probability_outcome_two)
Ejemplo n.º 20
0
 def test_eq_true_same_object(self):
     probability_outcome = ProbabilityOutcome(
         value=1, constraint_set=self._constraint_sets[0])
     self.assertEqual(probability_outcome, probability_outcome)