def test_expression_substitute_with_expression_is_atomic(self): e = Expression({ Variable('x'): 1, Variable('y'): 1 }) es = e.substitute(lambda v: {'x': Expression('x + y'), 'y': Expression('x + y') }.get(v.symbol, v)) self.assertEquals(es, Expression('2x + 2y'))
def test_expression_substitute_with_variable(self): e = Expression({ Variable('x'): 1, Variable('y'): 2 }) self.assertEquals(e.substitute(lambda v: {'y': Variable('x')}.get(v.symbol, v)), Expression('3x'))
def test_expression_substitute_with_expression(self): e = Expression({ Variable('x'): 3, Variable('y'): -2 }) es = e.substitute(lambda v: {'x': Expression('y + 2z')}.get(v.symbol, v)) self.assertEquals(es, Expression('y + 6z'))
def test_expression_substitute_unknown_to_variable(self): e = Expression({ Variable('x'): 1 }) self.assertEquals(e.substitute(lambda v: v), Variable('x'))
def test_expression_substitute_unknown_to_expression(self): e = Expression({ Variable('x'): 2 }, 1) self.assertEquals(e.substitute(lambda v: v), Expression('2x + 1'))
def test_expression_substitute_with_expression_is_atomic(self): e = Expression({ Variable('x'): 1, Variable('y'): 1 }) es = e.substitute(lambda v: {'x': Expression('x + y'), 'y': Expression('x + y') }.get(v.symbol, v)) self.assertEqual(es, Expression('2x + 2y'))
def test_expression_substitute_existing(self): e = Expression({ Variable('x'): 2 }, 1) self.assertEquals(e.substitute(lambda v: {'x': 2}.get(v.symbol, v)), 5)
def test_expression_substitute_with_expression(self): e = Expression({ Variable('x'): 3, Variable('y'): -2 }) es = e.substitute(lambda v: {'x': Expression('y + 2z')}.get(v.symbol, v)) self.assertEqual(es, Expression('y + 6z'))
def test_expression_substitute_with_variable(self): e = Expression({ Variable('x'): 1, Variable('y'): 2 }) self.assertEqual(e.substitute(lambda v: {'y': Variable('x')}.get(v.symbol, v)), Expression('3x'))
def test_expression_substitute_unknown_to_expression(self): e = Expression({ Variable('x'): 2 }, 1) self.assertEqual(e.substitute(lambda v: v), Expression('2x + 1'))
def test_expression_substitute_unknown_to_variable(self): e = Expression({ Variable('x'): 1 }) self.assertEqual(e.substitute(lambda v: v), Variable('x'))
def test_expression_substitute_existing(self): e = Expression({ Variable('x'): 2 }, 1) self.assertEqual(e.substitute(lambda v: {'x': 2}.get(v.symbol, v)), 5)