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