def test_expression_substitute_evaluate_all_or_terms_to_false(self):
     e = Expression('a or b')
     e1 = e.substitute(lambda v: False)
     self.assertEqual(e1, Expression(False))
 def test_expression_substitute_remove_terms_from_or(self):
     e = Expression('a or b')
     e1 = e.substitute(lambda v: {'a': False}.get(v.symbol, v))
     self.assertEqual(e1, Expression(Variable('b')))
 def test_expression_substitute_evaluate_all_and_terms_to_true(self):
     e = Expression('a and b')
     e1 = e.substitute(lambda v: True)
     self.assertEqual(e1, Expression(True))
 def test_expression_substitute_with_short_circuit_and(self):
     e = Expression('a and (b or c) and d')
     e1 = e.substitute(lambda v: {'a': False}.get(v.symbol, v))
     self.assertTrue(e1.has_value())
     self.assertFalse(e1.value)
 def test_expression_substitute_with_short_circuit_or(self):
     e = Expression('(a and b) or c or d')
     e1 = e.substitute(lambda v: {'c': True}.get(v.symbol, v))
     self.assertTrue(e1.has_value())
     self.assertTrue(e1.value)
 def test_expression_substitute_unknown_to_expression(self):
     e = Expression('b1 and b2')
     e1 = e.substitute(lambda v: v)
     self.assertEqual(e1, Expression('b1 and b2'))
 def test_expression_substitute_existing_false(self):
     e = Expression('b1')
     self.assertFalse(e.substitute(lambda v: {'b1': False}.get(v.symbol, v)))
Beispiel #8
0
 def test_expression_substitute_unknown_to_expression(self):
     e = Expression('b1 and b2')
     e1 = e.substitute(lambda v: v)
     self.assertEqual(e1, Expression('b1 and b2'))
Beispiel #9
0
 def test_expression_substitute_invalid(self):
     e = Expression('b1 and b2')
     with self.assertRaises(SubstitutionError):
         e.substitute(lambda v: {'b1': 17}.get(v.symbol, v))
Beispiel #10
0
 def test_expression_substitute_existing_false(self):
     e = Expression('b1')
     e1 = e.substitute(lambda v: {'b1': False}.get(v.symbol, v))
     self.assertTrue(e1.has_value())
     self.assertFalse(e1.value)
Beispiel #11
0
 def test_expression_substitute_unknown_to_variable(self):
     e = Expression('b1')
     e1 = e.substitute(lambda v: v)
     self.assertEqual(e1, Expression(Variable('b1')))
Beispiel #12
0
 def test_expression_substitute_evaluate_all_or_terms_to_false(self):
     e = Expression('a or b')
     e1 = e.substitute(lambda v: False)
     self.assertEqual(e1, Expression(False))
Beispiel #13
0
 def test_expression_substitute_evaluate_all_and_terms_to_true(self):
     e = Expression('a and b')
     e1 = e.substitute(lambda v: True)
     self.assertEqual(e1, Expression(True))
Beispiel #14
0
 def test_expression_substitute_remove_terms_from_or(self):
     e = Expression('a or b')
     e1 = e.substitute(lambda v: {'a': False}.get(v.symbol, v))
     self.assertEqual(e1, Expression(Variable('b')))
 def test_expression_substitute_existing_false(self):
     e = Expression('b1')
     e1 = e.substitute(lambda v: {'b1': False}.get(v.symbol, v))
     self.assertTrue(e1.has_value())
     self.assertFalse(e1.value)
Beispiel #16
0
 def test_expression_substitute_with_short_circuit_and(self):
     e = Expression('a and (b or c) and d')
     e1 = e.substitute(lambda v: {'a': False}.get(v.symbol, v))
     self.assertTrue(e1.has_value())
     self.assertFalse(e1.value)
 def test_expression_substitute_unknown_to_variable(self):
     e = Expression('b1')
     e1 = e.substitute(lambda v: v)
     self.assertEqual(e1, Expression(Variable('b1')))
Beispiel #18
0
 def test_expression_substitute_with_short_circuit_or(self):
     e = Expression('(a and b) or c or d')
     e1 = e.substitute(lambda v: {'c': True}.get(v.symbol, v))
     self.assertTrue(e1.has_value())
     self.assertTrue(e1.value)
 def test_expression_substitute_invalid(self):
     e = Expression('b1 and b2')
     with self.assertRaises(SubstitutionError):
         e.substitute(lambda v: {'b1': 17}.get(v.symbol, v))
 def test_expression_substitute_existing(self):
     e = Expression('b1')
     self.assertTrue(e.substitute(lambda v: {'b1': True}.get(v.symbol, v)))