Ejemplo n.º 1
0
def test_issue_16535_16536():
    from sympy import lowergamma, uppergamma

    a = symbols('a')
    expr1 = lowergamma(a, x)
    expr2 = uppergamma(a, x)

    prntr = SciPyPrinter()
    assert prntr.doprint(
        expr1) == 'scipy.special.gamma(a)*scipy.special.gammainc(a, x)'
    assert prntr.doprint(
        expr2) == 'scipy.special.gamma(a)*scipy.special.gammaincc(a, x)'

    prntr = NumPyPrinter()
    assert prntr.doprint(
        expr1
    ) == '  # Not supported in Python with NumPy:\n  # lowergamma\nlowergamma(a, x)'
    assert prntr.doprint(
        expr2
    ) == '  # Not supported in Python with NumPy:\n  # uppergamma\nuppergamma(a, x)'

    prntr = PythonCodePrinter()
    assert prntr.doprint(
        expr1
    ) == '  # Not supported in Python:\n  # lowergamma\nlowergamma(a, x)'
    assert prntr.doprint(
        expr2
    ) == '  # Not supported in Python:\n  # uppergamma\nuppergamma(a, x)'
Ejemplo n.º 2
0
def test_SciPyPrinter():
    p = SciPyPrinter()
    expr = acos(x)
    assert 'numpy' not in p.module_imports
    assert p.doprint(expr) == 'numpy.arccos(x)'
    assert 'numpy' in p.module_imports
    assert not any(m.startswith('scipy') for m in p.module_imports)
    smat = SparseMatrix(2, 5, {(0, 1): 3})
    assert p.doprint(smat) == 'scipy.sparse.coo_matrix([3], ([0], [1]), shape=(2, 5))'
    assert 'scipy.sparse' in p.module_imports
def test_SciPyPrinter():
    p = SciPyPrinter()
    expr = acos(x)
    assert 'numpy' not in p.module_imports
    assert p.doprint(expr) == 'numpy.arccos(x)'
    assert 'numpy' in p.module_imports
    assert not any(m.startswith('scipy') for m in p.module_imports)
    smat = SparseMatrix(2, 5, {(0, 1): 3})
    assert p.doprint(smat) == 'scipy.sparse.coo_matrix([3], ([0], [1]), shape=(2, 5))'
    assert 'scipy.sparse' in p.module_imports
Ejemplo n.º 4
0
def test_airy_prime():
    from sympy import airyaiprime, airybiprime

    expr1 = airyaiprime(x)
    expr2 = airybiprime(x)

    prntr = SciPyPrinter()
    assert prntr.doprint(expr1) == 'scipy.special.airy(x)[1]'
    assert prntr.doprint(expr2) == 'scipy.special.airy(x)[3]'

    prntr = NumPyPrinter()
    assert prntr.doprint(
        expr1
    ) == '  # Not supported in Python with NumPy:\n  # airyaiprime\nairyaiprime(x)'
    assert prntr.doprint(
        expr2
    ) == '  # Not supported in Python with NumPy:\n  # airybiprime\nairybiprime(x)'

    prntr = PythonCodePrinter()
    assert prntr.doprint(
        expr1
    ) == '  # Not supported in Python:\n  # airyaiprime\nairyaiprime(x)'
    assert prntr.doprint(
        expr2
    ) == '  # Not supported in Python:\n  # airybiprime\nairybiprime(x)'
Ejemplo n.º 5
0
def test_Integral():
    from sympy import Integral, exp

    single = Integral(exp(-x), (x, 0, oo))
    double = Integral(x**2 * exp(x * y), (x, -z, z), (y, 0, z))
    indefinite = Integral(x**2, x)
    evaluateat = Integral(x**2, (x, 1))

    prntr = SciPyPrinter()
    assert prntr.doprint(
        single
    ) == 'scipy.integrate.quad(lambda x: numpy.exp(-x), 0, numpy.PINF)[0]'
    assert prntr.doprint(
        double
    ) == 'scipy.integrate.nquad(lambda x, y: x**2*numpy.exp(x*y), ((-z, z), (0, z)))[0]'
    raises(NotImplementedError, lambda: prntr.doprint(indefinite))
    raises(NotImplementedError, lambda: prntr.doprint(evaluateat))

    prntr = MpmathPrinter()
    assert prntr.doprint(
        single) == 'mpmath.quad(lambda x: mpmath.exp(-x), (0, mpmath.inf))'
    assert prntr.doprint(
        double
    ) == 'mpmath.quad(lambda x, y: x**2*mpmath.exp(x*y), (-z, z), (0, z))'
    raises(NotImplementedError, lambda: prntr.doprint(indefinite))
    raises(NotImplementedError, lambda: prntr.doprint(evaluateat))
Ejemplo n.º 6
0
def test_sqrt():
    prntr = PythonCodePrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == 'math.sqrt(x)'
    assert prntr._print_Pow(1 / sqrt(x), rational=False) == '1/math.sqrt(x)'

    prntr = PythonCodePrinter({'standard': 'python2'})
    assert prntr._print_Pow(sqrt(x), rational=True) == 'x**(1./2.)'
    assert prntr._print_Pow(1 / sqrt(x), rational=True) == 'x**(-1./2.)'

    prntr = PythonCodePrinter({'standard': 'python3'})
    assert prntr._print_Pow(sqrt(x), rational=True) == 'x**(1/2)'
    assert prntr._print_Pow(1 / sqrt(x), rational=True) == 'x**(-1/2)'

    prntr = MpmathPrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == 'mpmath.sqrt(x)'
    assert prntr._print_Pow(sqrt(x), rational=True) == \
        "x**(mpmath.mpf(1)/mpmath.mpf(2))"

    prntr = NumPyPrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == 'numpy.sqrt(x)'
    assert prntr._print_Pow(sqrt(x), rational=True) == 'x**(1/2)'

    prntr = SciPyPrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == 'numpy.sqrt(x)'
    assert prntr._print_Pow(sqrt(x), rational=True) == 'x**(1/2)'

    prntr = SymPyPrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == 'sympy.sqrt(x)'
    assert prntr._print_Pow(sqrt(x), rational=True) == 'x**(1/2)'
Ejemplo n.º 7
0
def test_sqrt():
    prntr = PythonCodePrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == "math.sqrt(x)"
    assert prntr._print_Pow(1 / sqrt(x), rational=False) == "1/math.sqrt(x)"

    prntr = PythonCodePrinter({"standard": "python2"})
    assert prntr._print_Pow(sqrt(x), rational=True) == "x**(1./2.)"
    assert prntr._print_Pow(1 / sqrt(x), rational=True) == "x**(-1./2.)"

    prntr = PythonCodePrinter({"standard": "python3"})
    assert prntr._print_Pow(sqrt(x), rational=True) == "x**(1/2)"
    assert prntr._print_Pow(1 / sqrt(x), rational=True) == "x**(-1/2)"

    prntr = MpmathPrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == "mpmath.sqrt(x)"
    assert (prntr._print_Pow(
        sqrt(x), rational=True) == "x**(mpmath.mpf(1)/mpmath.mpf(2))")

    prntr = NumPyPrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == "numpy.sqrt(x)"
    assert prntr._print_Pow(sqrt(x), rational=True) == "x**(1/2)"

    prntr = SciPyPrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == "numpy.sqrt(x)"
    assert prntr._print_Pow(sqrt(x), rational=True) == "x**(1/2)"

    prntr = SymPyPrinter()
    assert prntr._print_Pow(sqrt(x), rational=False) == "sympy.sqrt(x)"
    assert prntr._print_Pow(sqrt(x), rational=True) == "x**(1/2)"
Ejemplo n.º 8
0
def test_beta():
    from sympy import beta

    expr = beta(x, y)

    prntr = SciPyPrinter()
    assert prntr.doprint(expr) == 'scipy.special.beta(x, y)'

    prntr = NumPyPrinter()
    assert prntr.doprint(expr) == 'math.gamma(x)*math.gamma(y)/math.gamma(x + y)'

    prntr = PythonCodePrinter()
    assert prntr.doprint(expr) == 'math.gamma(x)*math.gamma(y)/math.gamma(x + y)'

    prntr = MpmathPrinter()
    assert prntr.doprint(expr) ==  'mpmath.beta(x, y)'
Ejemplo n.º 9
0
 def __init__(self, glob=None, locale=None, printer=None):
     self._global = glob
     self._locale = locale
     self._body = []
     if printer is None:
         printer = SciPyPrinter({
             'fully_qualified_modules': True,
             'inline': True,
             'allow_unknown_functions': True,
             'user_functions': {}
         })
     self._printer = printer
Ejemplo n.º 10
0
def test_fresnel_integrals():
    from sympy import fresnelc, fresnels

    expr1 = fresnelc(x)
    expr2 = fresnels(x)

    prntr = SciPyPrinter()
    assert prntr.doprint(expr1) == 'scipy.special.fresnel(x)[1]'
    assert prntr.doprint(expr2) == 'scipy.special.fresnel(x)[0]'

    prntr = NumPyPrinter()
    assert prntr.doprint(expr1) == '  # Not supported in Python with NumPy:\n  # fresnelc\nfresnelc(x)'
    assert prntr.doprint(expr2) == '  # Not supported in Python with NumPy:\n  # fresnels\nfresnels(x)'

    prntr = PythonCodePrinter()
    assert prntr.doprint(expr1) == '  # Not supported in Python:\n  # fresnelc\nfresnelc(x)'
    assert prntr.doprint(expr2) == '  # Not supported in Python:\n  # fresnels\nfresnels(x)'

    prntr = MpmathPrinter()
    assert prntr.doprint(expr1) == 'mpmath.fresnelc(x)'
    assert prntr.doprint(expr2) == 'mpmath.fresnels(x)'
Ejemplo n.º 11
0
def test_SciPyPrinter():
    p = SciPyPrinter()
    expr = acos(x)
    assert 'numpy' not in p.module_imports
    assert p.doprint(expr) == 'numpy.arccos(x)'
    assert 'numpy' in p.module_imports
    assert not any(m.startswith('scipy') for m in p.module_imports)
    smat = SparseMatrix(2, 5, {(0, 1): 3})
    assert p.doprint(smat) == \
        'scipy.sparse.coo_matrix(([3], ([0], [1])), shape=(2, 5))'
    assert 'scipy.sparse' in p.module_imports

    assert p.doprint(S.GoldenRatio) == 'scipy.constants.golden_ratio'
    assert p.doprint(S.Pi) == 'scipy.constants.pi'
    assert p.doprint(S.Exp1) == 'numpy.e'
Ejemplo n.º 12
0
def test_SciPyPrinter():
    p = SciPyPrinter()
    expr = acos(x)
    assert "numpy" not in p.module_imports
    assert p.doprint(expr) == "numpy.arccos(x)"
    assert "numpy" in p.module_imports
    assert not any(m.startswith("scipy") for m in p.module_imports)
    smat = SparseMatrix(2, 5, {(0, 1): 3})
    assert p.doprint(
        smat) == "scipy.sparse.coo_matrix([3], ([0], [1]), shape=(2, 5))"
    assert "scipy.sparse" in p.module_imports

    assert p.doprint(S.GoldenRatio) == "scipy.constants.golden_ratio"
    assert p.doprint(S.Pi) == "scipy.constants.pi"
    assert p.doprint(S.Exp1) == "numpy.e"
Ejemplo n.º 13
0
def test_frac():
    from sympy import frac

    expr = frac(x)

    prntr = NumPyPrinter()
    assert prntr.doprint(expr) == 'numpy.mod(x, 1)'

    prntr = SciPyPrinter()
    assert prntr.doprint(expr) == 'numpy.mod(x, 1)'

    prntr = PythonCodePrinter()
    assert prntr.doprint(expr) == 'x % 1'

    prntr = MpmathPrinter()
    assert prntr.doprint(expr) == 'mpmath.frac(x)'

    prntr = SymPyPrinter()
    assert prntr.doprint(expr) == 'sympy.functions.elementary.integers.frac(x)'
Ejemplo n.º 14
0
def test_numerical_accuracy_functions():
    prntr = SciPyPrinter()
    assert prntr.doprint(expm1(x)) == 'numpy.expm1(x)'
    assert prntr.doprint(log1p(x)) == 'numpy.log1p(x)'
    assert prntr.doprint(cosm1(x)) == 'scipy.special.cosm1(x)'
Ejemplo n.º 15
0
def test_beta():
    from sympy import beta

    expr = beta(x, y)

    prntr = SciPyPrinter()
    assert prntr.doprint(expr) == "scipy.special.beta(x, y)"

    prntr = NumPyPrinter()
    assert prntr.doprint(
        expr) == "math.gamma(x)*math.gamma(y)/math.gamma(x + y)"

    prntr = PythonCodePrinter()
    assert prntr.doprint(
        expr) == "math.gamma(x)*math.gamma(y)/math.gamma(x + y)"

    prntr = PythonCodePrinter({"allow_unknown_functions": True})
    assert prntr.doprint(
        expr) == "math.gamma(x)*math.gamma(y)/math.gamma(x + y)"

    prntr = MpmathPrinter()
    assert prntr.doprint(expr) == "mpmath.beta(x, y)"