예제 #1
0
 def testGamma(self):
     self.compare(mathics.Expression('Gamma', mathics.Symbol('Global`z')),
                  sympy.gamma(sympy.Symbol('_Mathics_User_Global`z')))
     self.compare(
         mathics.Expression('Gamma', mathics.Symbol('Global`z'),
                            mathics.Symbol('Global`x')),
         sympy.uppergamma(sympy.Symbol('_Mathics_User_Global`z'),
                          sympy.Symbol('_Mathics_User_Global`x')))
예제 #2
0
 def testGamma(self):
     self.compare(
         mathics.Expression("Gamma", mathics.Symbol("Global`z")),
         sympy.gamma(sympy.Symbol("_Mathics_User_Global`z")),
     )
     self.compare(
         mathics.Expression(
             "Gamma", mathics.Symbol("Global`z"), mathics.Symbol("Global`x")
         ),
         sympy.uppergamma(
             sympy.Symbol("_Mathics_User_Global`z"),
             sympy.Symbol("_Mathics_User_Global`x"),
         ),
     )
예제 #3
0
 def testDerivative(self):
     self.compare(
         mathics.Expression(
             'D', mathics.Symbol('Global`x'), mathics.Symbol('Global`y')),
         sympy.Derivative(
             sympy.Symbol('_Mathics_User_Global`x'),
             sympy.Symbol('_Mathics_User_Global`y')))
예제 #4
0
 def testAdd(self):
     self.compare(
         mathics.Expression(
             'Plus', mathics.Integer(1), mathics.Symbol('Global`x')),
         sympy.Add(
             sympy.Integer(1),
             sympy.Symbol('_Mathics_User_Global`x')))
예제 #5
0
    def testDerivative2(self):
        kwargs = {'converted_functions': set(['Global`f'])}

        head = mathics.Expression(
            mathics.Expression('System`Derivative', mathics.Integer(1),
                               mathics.Integer(0)), mathics.Symbol('Global`f'))
        expr = mathics.Expression(head, mathics.Symbol('Global`x'),
                                  mathics.Symbol('Global`y'))

        sfxy = sympy.Function(str('_Mathics_User_Global`f'))(
            sympy.Symbol('_Mathics_User_Global`x'),
            sympy.Symbol('_Mathics_User_Global`y'))
        sym_expr = sympy.Derivative(sfxy,
                                    sympy.Symbol('_Mathics_User_Global`x'))

        self.compare_to_sympy(expr, sym_expr, **kwargs)
예제 #6
0
 def testIntegrate(self):
     self.compare(
         mathics.Expression(
             'Integrate', mathics.Symbol('Global`x'),
             mathics.Symbol('Global`y')),
         sympy.Integral(
             sympy.Symbol('_Mathics_User_Global`x'),
             sympy.Symbol('_Mathics_User_Global`y')))
예제 #7
0
    def testConvertedFunctions(self):
        kwargs = {'converted_functions': set(['Global`f'])}

        marg1 = mathics.Expression('Global`f', mathics.Symbol('Global`x'))
        sarg1 = sympy.Function(str('_Mathics_User_Global`f'))(
            sympy.Symbol('_Mathics_User_Global`x'))
        self.compare(marg1, sarg1, **kwargs)

        marg2 = mathics.Expression('Global`f', mathics.Symbol('Global`x'),
                                   mathics.Symbol('Global`y'))
        sarg2 = sympy.Function(str('_Mathics_User_Global`f'))(
            sympy.Symbol('_Mathics_User_Global`x'),
            sympy.Symbol('_Mathics_User_Global`y'))
        self.compare(marg2, sarg2, **kwargs)

        self.compare(
            mathics.Expression('D', marg2, mathics.Symbol('Global`x')),
            sympy.Derivative(sarg2, sympy.Symbol('_Mathics_User_Global`x')),
            **kwargs)
예제 #8
0
 def testDerivative(self):
     self.compare(
         mathics.Expression(
             "D", mathics.Symbol("Global`x"), mathics.Symbol("Global`y")
         ),
         sympy.Derivative(
             sympy.Symbol("_Mathics_User_Global`x"),
             sympy.Symbol("_Mathics_User_Global`y"),
         ),
     )
예제 #9
0
 def testIntegrate(self):
     self.compare(
         mathics.Expression(
             "Integrate", mathics.Symbol("Global`x"), mathics.Symbol("Global`y")
         ),
         sympy.Integral(
             sympy.Symbol("_Mathics_User_Global`x"),
             sympy.Symbol("_Mathics_User_Global`y"),
         ),
     )
예제 #10
0
    def testDerivative2(self):
        kwargs = {"converted_functions": set(["Global`f"])}

        head = mathics.Expression(
            mathics.Expression(
                "System`Derivative", mathics.Integer(1), mathics.Integer(0)
            ),
            mathics.Symbol("Global`f"),
        )
        expr = mathics.Expression(
            head, mathics.Symbol("Global`x"), mathics.Symbol("Global`y")
        )

        sfxy = sympy.Function(str("_Mathics_User_Global`f"))(
            sympy.Symbol("_Mathics_User_Global`x"),
            sympy.Symbol("_Mathics_User_Global`y"),
        )
        sym_expr = sympy.Derivative(sfxy, sympy.Symbol("_Mathics_User_Global`x"))

        self.compare_to_sympy(expr, sym_expr, **kwargs)
예제 #11
0
    def testConvertedFunctions(self):
        kwargs = {"converted_functions": set(["Global`f"])}

        marg1 = mathics.Expression("Global`f", mathics.Symbol("Global`x"))
        sarg1 = sympy.Function(str("_Mathics_User_Global`f"))(
            sympy.Symbol("_Mathics_User_Global`x")
        )
        self.compare(marg1, sarg1, **kwargs)

        marg2 = mathics.Expression(
            "Global`f", mathics.Symbol("Global`x"), mathics.Symbol("Global`y")
        )
        sarg2 = sympy.Function(str("_Mathics_User_Global`f"))(
            sympy.Symbol("_Mathics_User_Global`x"),
            sympy.Symbol("_Mathics_User_Global`y"),
        )
        self.compare(marg2, sarg2, **kwargs)

        self.compare(
            mathics.Expression("D", marg2, mathics.Symbol("Global`x")),
            sympy.Derivative(sarg2, sympy.Symbol("_Mathics_User_Global`x")),
            **kwargs
        )
예제 #12
0
 def testExpression(self):
     self.compare(
         mathics.Expression('Sin', mathics.Symbol('Global`x')),
         sympy.sin(sympy.Symbol('_Mathics_User_Global`x')))
예제 #13
0
 def testList(self):
     self.compare(mathics.Expression('List', mathics.Integer(1)), [1])
예제 #14
0
 def testAdd(self):
     self.compare(
         mathics.Expression("Plus", mathics.Integer(1), mathics.Symbol("Global`x")),
         sympy.Add(sympy.Integer(1), sympy.Symbol("_Mathics_User_Global`x")),
     )
예제 #15
0
 def testExpression(self):
     self.compare(
         mathics.Expression("Sin", mathics.Symbol("Global`x")),
         sympy.sin(sympy.Symbol("_Mathics_User_Global`x")),
     )