def test_deeply_nested(self): # just for fun :-) ap = tctl.AtomicProposition(None) deepnest = tctl.And(ap, ap) for _ in range(10): deepnest = tctl.And(deepnest, tctl.And(ap, tctl.Or(deepnest, ap))) self.assertCountEqual(deepnest.get_propositions(), [ap])
def test_U_operators(self): ap = tctl.AtomicProposition(None) ap2 = tctl.AtomicProposition(None) eu = tctl.EU(ap, ap2) self.assertCountEqual(eu.get_propositions(), [ap, ap2])
def test_Or_return_parts_avoids_nested_duplicates(self): ap = tctl.AtomicProposition(None) ap2 = tctl.AtomicProposition(None) or_formula = tctl.Or(ap, ap2) or_or_formula = tctl.Or(ap, or_formula) self.assertCountEqual(or_or_formula.get_propositions(), [ap, ap2])
def test_Or_return_parts(self): ap = tctl.AtomicProposition(None) ap2 = tctl.AtomicProposition(None) ap3 = tctl.AtomicProposition(None) or_formula = tctl.Or(ap, ap2) self.assertCountEqual(or_formula.get_propositions(), [ap, ap2])
def test_And_return_parts_avoids_nested_duplicates(self): ap = tctl.AtomicProposition(None) ap2 = tctl.AtomicProposition(None) and_formula = tctl.And(ap, ap2) and_and_formula = tctl.And(ap, and_formula) self.assertCountEqual(and_and_formula.get_propositions(), [ap, ap2])
def test_And_return_parts(self): ap = tctl.AtomicProposition(None) ap2 = tctl.AtomicProposition(None) and_formula = tctl.And(ap, ap2) self.assertCountEqual(and_formula.get_propositions(), [ap, ap2])
def test_AtomicProposition_return_self(self): ap = tctl.AtomicProposition(None) self.assertEqual(ap.get_propositions(), [ap], "Calling get_propositions on an AP, returns the AP")