Esempio n. 1
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))
Esempio n. 2
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')))
Esempio n. 3
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))
Esempio n. 4
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)
Esempio n. 5
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)
Esempio n. 6
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'))
 def test_expression_substitute_existing_false(self):
     e = Expression('b1')
     self.assertFalse(e.substitute(lambda v: {'b1': False}.get(v.symbol, v)))
Esempio n. 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'))
Esempio n. 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))
Esempio n. 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)
Esempio n. 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')))
Esempio n. 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))
Esempio n. 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))
Esempio n. 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')))
Esempio n. 15
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)
Esempio n. 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)
Esempio n. 17
0
 def test_expression_substitute_unknown_to_variable(self):
     e = Expression('b1')
     e1 = e.substitute(lambda v: v)
     self.assertEqual(e1, Expression(Variable('b1')))
Esempio n. 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)
Esempio n. 19
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))
 def test_expression_substitute_existing(self):
     e = Expression('b1')
     self.assertTrue(e.substitute(lambda v: {'b1': True}.get(v.symbol, v)))