Example #1
0
 def test_expression_to_str(self):
     e = Expression({
         Variable('x1'): -2,
         Variable('pi'): 5,
         Variable('x2'): -3
     })
     self.assertEqual(str(e), '5pi - 2x1 - 3x2')
Example #2
0
 def test_expression_parse_negative_coefficient(self):
     e = Expression('-x + 4y - 3z')
     self.assertEqual(e, Expression({ Variable('x'): -1, Variable('y'): 4, Variable('z'): -3 }))
Example #3
0
 def test_variables_ordered_by_symbol(self):
     var_list = sorted([Variable('b'), Variable('cd'), Variable('a'), Variable('cc')])
     self.assertEqual(var_list, [Variable('a'), Variable('b'), Variable('cc'), Variable('cd')])
Example #4
0
 def test_variables_not_equals(self):
     self.assertNotEqual(Variable('x'), Variable('y'))
Example #5
0
 def test_variable_neg(self):
     self.assertEqual(-Variable('x'), Expression('-x'))
Example #6
0
 def test_variable_rmul_number(self):
     self.assertEqual(3 * Variable('x'), Expression('3x'))
Example #7
0
 def test_variable_mul_one(self):
     self.assertEqual(Variable('x') * 1, Variable('x'))
Example #8
0
 def test_variable_rsub_number(self):
     self.assertEqual(4 - Variable('x'), Expression('4 - x'))
Example #9
0
 def test_variable_init_underscore_symbol(self):
     v = Variable('x_y')
Example #10
0
 def test_expression_parse_no_space(self):
     e = Expression('x+3f+6h+10')
     self.assertEqual(e, Expression({ Variable('x'): 1, Variable('f'): 3, Variable('h'): 6 }, 10))
Example #11
0
 def test_expression_parse_large_coefficient(self):
     e = Expression('x + 4200y')
     self.assertEqual(e, Expression({ Variable('x'): 1, Variable('y'): 4200 }))
Example #12
0
 def test_variable_init_number_symbol(self):
     v = Variable('x2')
Example #13
0
 def test_expression_parse_long_variable_symbols(self):
     e = Expression('-2x1 + 5pi - 3x2')
     self.assertEqual(e, Expression({ Variable('x1'): -2, Variable('pi'): 5, Variable('x2'): -3 }))
Example #14
0
 def test_expression_parse_zero_coefficient(self):
     e = Expression('2x + 0y + 4')
     self.assertEqual(e, Expression({ Variable('x'): 2 }, 4))
Example #15
0
 def test_variable_radd_number(self):
     self.assertEqual(1 + Variable('x'), Expression('x + 1'))
Example #16
0
 def test_variable_init_invalid_number(self):
     with self.assertRaises(ValueError):
         v = Variable('45x')
Example #17
0
 def test_variable_sub_number(self):
     self.assertEqual(Variable('x') - 4, Expression('x - 4'))
Example #18
0
 def test_variable_symbol(self):
     self.assertEqual(Variable('x').symbol, 'x')
Example #19
0
 def test_variable_mul_zero(self):
     self.assertEqual(Variable('x') * 0, 0)
Example #20
0
 def test_variable_simplify_returns_self(self):
     self.assertEqual(Variable('y').simplify(), Variable('y'))
Example #21
0
 def test_variable_mul_number(self):
     self.assertEqual(Variable('x') * 2, Expression('2x'))
Example #22
0
 def test_variable_substitute(self):
     self.assertEqual(Variable('x').substitute(lambda v: {'x': 567}.get(v.symbol, v)), 567)
Example #23
0
 def test_variable_div_number(self):
     self.assertEqual(Variable('x')/1, Variable('x'))
Example #24
0
 def test_variable_substitute_unknown(self):
     self.assertEqual(Variable('x').substitute(lambda v: v), Variable('x'))
Example #25
0
 def test_variables_equals_true(self):
     self.assertEqual(Variable('x'), Variable('x'))
Example #26
0
 def test_variable_substitute_multiple(self):
     self.assertEqual(Variable('x').substitute(lambda v: {'y': 123, 'x': 56}.get(v.symbol, v)), 56)
Example #27
0
 def test_variable_not_equals_number(self):
     self.assertNotEqual(Variable('x'), 5)
Example #28
0
 def test_variable_add_number(self):
     self.assertEqual(Variable('x') + 1, Expression('x + 1'))
Example #29
0
 def test_variable_hash(self):
     self.assertEqual(hash(Variable('xyz')), hash(Variable('xyz')))
Example #30
0
 def test_expression_parse_multiple_occurences(self):
     e = Expression('x + 4y + 2x')
     self.assertEqual(e, Expression({ Variable('x'): 3, Variable('y'): 4 }))