def test_read_sqrt(self): ast = self.parse('\\sqrt{2x + 3}') self.assertEqual( ast, Function( Func.SQRT, Addition(Multiplication(Constant('2'), Variable('x')), Constant('3'))))
def test_read_complex_exponent(self): ast = self.parse('x^{2y + 3}') self.assertEqual( ast, Exponentiation( Variable('x'), Addition(Multiplication(Constant('2'), Variable('y')), Constant('3'))))
def test_read_alternative_sin(self): ast = self.parse('sin(2x + 3)') self.assertEqual( ast, Function( Func.SIN, Addition(Multiplication(Constant('2'), Variable('x')), Constant('3'))))
def test_read_atom_without_times(self): ast = self.parse(r'3! (2 + 1) 4^n') self.assertEqual( ast, Multiplication( Multiplication(Function(Func.FACTORIAL, Constant('3')), Addition(Constant('2'), Constant('1'))), Exponentiation(Constant('4'), Variable('n'))))
def test_read_addition_of_constants(self): ast = self.parse('3 + 2') self.assertEqual(ast, Addition(Constant('3'), Constant('2')))
def test_read_addition_of_constant_and_variable(self): ast = self.parse('n+1') self.assertEqual(ast, Addition(Variable('n'), Constant('1')))
def test_read_addition_of_variables(self): ast = self.parse('x + y') self.assertEqual(ast, Addition(Variable('x'), Variable('y'))) ast = self.parse('x+y') self.assertEqual(ast, Addition(Variable('x'), Variable('y')))
def test_read_addition_of_multiple_constants(self): ast = self.parse('3 + 2 + 5') self.assertEqual(ast, Addition(Addition(Constant('3'), Constant('2')), Constant('5'))) ast = self.parse('3+2+5') self.assertEqual(ast, Addition(Addition(Constant('3'), Constant('2')), Constant('5')))
def test_read_absolute(self): ast = self.parse('|x + 3|') self.assertEqual( ast, Function(Func.ABS, Addition(Variable('x'), Constant('3'))))