Exemplo n.º 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')
Exemplo n.º 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 }))
Exemplo n.º 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')])
Exemplo n.º 4
0
 def test_variables_not_equals(self):
     self.assertNotEqual(Variable('x'), Variable('y'))
Exemplo n.º 5
0
 def test_variable_neg(self):
     self.assertEqual(-Variable('x'), Expression('-x'))
Exemplo n.º 6
0
 def test_variable_rmul_number(self):
     self.assertEqual(3 * Variable('x'), Expression('3x'))
Exemplo n.º 7
0
 def test_variable_mul_one(self):
     self.assertEqual(Variable('x') * 1, Variable('x'))
Exemplo n.º 8
0
 def test_variable_rsub_number(self):
     self.assertEqual(4 - Variable('x'), Expression('4 - x'))
Exemplo n.º 9
0
 def test_variable_init_underscore_symbol(self):
     v = Variable('x_y')
Exemplo n.º 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))
Exemplo n.º 11
0
 def test_expression_parse_large_coefficient(self):
     e = Expression('x + 4200y')
     self.assertEqual(e, Expression({ Variable('x'): 1, Variable('y'): 4200 }))
Exemplo n.º 12
0
 def test_variable_init_number_symbol(self):
     v = Variable('x2')
Exemplo n.º 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 }))
Exemplo n.º 14
0
 def test_expression_parse_zero_coefficient(self):
     e = Expression('2x + 0y + 4')
     self.assertEqual(e, Expression({ Variable('x'): 2 }, 4))
Exemplo n.º 15
0
 def test_variable_radd_number(self):
     self.assertEqual(1 + Variable('x'), Expression('x + 1'))
Exemplo n.º 16
0
 def test_variable_init_invalid_number(self):
     with self.assertRaises(ValueError):
         v = Variable('45x')
Exemplo n.º 17
0
 def test_variable_sub_number(self):
     self.assertEqual(Variable('x') - 4, Expression('x - 4'))
Exemplo n.º 18
0
 def test_variable_symbol(self):
     self.assertEqual(Variable('x').symbol, 'x')
Exemplo n.º 19
0
 def test_variable_mul_zero(self):
     self.assertEqual(Variable('x') * 0, 0)
Exemplo n.º 20
0
 def test_variable_simplify_returns_self(self):
     self.assertEqual(Variable('y').simplify(), Variable('y'))
Exemplo n.º 21
0
 def test_variable_mul_number(self):
     self.assertEqual(Variable('x') * 2, Expression('2x'))
Exemplo n.º 22
0
 def test_variable_substitute(self):
     self.assertEqual(Variable('x').substitute(lambda v: {'x': 567}.get(v.symbol, v)), 567)
Exemplo n.º 23
0
 def test_variable_div_number(self):
     self.assertEqual(Variable('x')/1, Variable('x'))
Exemplo n.º 24
0
 def test_variable_substitute_unknown(self):
     self.assertEqual(Variable('x').substitute(lambda v: v), Variable('x'))
Exemplo n.º 25
0
 def test_variables_equals_true(self):
     self.assertEqual(Variable('x'), Variable('x'))
Exemplo n.º 26
0
 def test_variable_substitute_multiple(self):
     self.assertEqual(Variable('x').substitute(lambda v: {'y': 123, 'x': 56}.get(v.symbol, v)), 56)
Exemplo n.º 27
0
 def test_variable_not_equals_number(self):
     self.assertNotEqual(Variable('x'), 5)
Exemplo n.º 28
0
 def test_variable_add_number(self):
     self.assertEqual(Variable('x') + 1, Expression('x + 1'))
Exemplo n.º 29
0
 def test_variable_hash(self):
     self.assertEqual(hash(Variable('xyz')), hash(Variable('xyz')))
Exemplo n.º 30
0
 def test_expression_parse_multiple_occurences(self):
     e = Expression('x + 4y + 2x')
     self.assertEqual(e, Expression({ Variable('x'): 3, Variable('y'): 4 }))