예제 #1
0
def test_simple_strings(arr, sig1, sca):
    """Test string functions."""
    fn = "sin(x)/x"
    func = numbafy(fn, "x", compiler="vectorize", signatures=sig1)
    assert np.allclose(func(arr), np.sin(arr) / arr) == True
    func = numbafy(fn, "x", compiler="jit")
    assert np.isclose(func(sca), np.sin(sca) / sca) == True
예제 #2
0
파일: test_nbvars.py 프로젝트: tjduigna/exa
def test_simple_strings(arr, sig1, sca):
    """Test string functions."""
    fn = "sin(x)/x"
    func = numbafy(fn, "x", compiler="vectorize", signatures=sig1)
    assert np.allclose(func(arr), np.sin(arr)/arr) == True
    func = numbafy(fn, "x", compiler="jit")
    assert np.isclose(func(sca), np.sin(sca)/sca) == True
예제 #3
0
def test_complex_strings(arr, sig3, sca):
    """Test more complicated string functions."""
    fn = "arccos(x)/y + exp(-y) + mod(z, 2)"
    func = numbafy(fn, ("x", "y", "z"), compiler="vectorize", signatures=sig3)
    result = func(arr, arr, arr)
    check = np.arccos(arr) / arr + np.exp(-arr) + np.mod(arr, 2)
    assert np.allclose(result, check) == True
    func = numbafy(fn, ("x", "y", "z"))
    result = func(sca, sca, sca)
    check = np.arccos(sca) / sca + np.exp(-sca) + np.mod(sca, 2)
    assert np.isclose(result, check) == True
예제 #4
0
파일: test_nbvars.py 프로젝트: tjduigna/exa
def test_complex_strings(arr, sig3, sca):
    """Test more complicated string functions."""
    fn = "arccos(x)/y + exp(-y) + mod(z, 2)"
    func = numbafy(fn, ("x", "y", "z"), compiler="vectorize", signatures=sig3)
    result = func(arr, arr, arr)
    check = np.arccos(arr)/arr + np.exp(-arr) + np.mod(arr, 2)
    assert np.allclose(result, check) == True
    func = numbafy(fn, ("x", "y", "z"))
    result = func(sca, sca, sca)
    check = np.arccos(sca)/sca + np.exp(-sca) + np.mod(sca, 2)
    assert np.isclose(result, check) == True
예제 #5
0
def test_sympy(arr, sig3):
    """Test sympy expressions."""
    x, y, z = sy.symbols("x y z")
    fn = sy.acos(x) / y + sy.exp(-y) + sy.Mod(z, 2)
    func = numbafy(fn, (x, y, z), compiler="vectorize", signatures=sig3)
    result = func(arr, arr, arr)
    check = np.arccos(arr) / arr + np.exp(-arr) + np.mod(arr, 2)
    assert np.allclose(result, check) == True
예제 #6
0
파일: test_nbvars.py 프로젝트: tjduigna/exa
def test_sympy(arr, sig3):
    """Test sympy expressions."""
    x, y, z = sy.symbols("x y z")
    fn = sy.acos(x)/y + sy.exp(-y) + sy.Mod(z, 2)
    func = numbafy(fn, (x, y, z), compiler="vectorize", signatures=sig3)
    result = func(arr, arr, arr)
    check = np.arccos(arr)/arr + np.exp(-arr) + np.mod(arr, 2)
    assert np.allclose(result, check) == True
예제 #7
0
def test_symengine(arr, sig3):
    """Test symengine."""
    try:
        import symengine as sge
        x, y, z = sge.var("x y z")
        fn = sge.acos(x) / y + sge.exp(-z)
        func = numbafy(fn, (x, y, z), compiler="vectorize", signatures=sig3)
        result = func(arr, arr, arr)
        check = np.arccos(arr) / arr + np.exp(-arr)
        assert np.allclose(result, check) == True
    except ImportError:
        pass
예제 #8
0
파일: test_nbvars.py 프로젝트: tjduigna/exa
def test_symengine(arr, sig3):
    """Test symengine."""
    try:
        import symengine as sge
        x, y, z = sge.var("x y z")
        fn = sge.acos(x)/y + sge.exp(-z)
        func = numbafy(fn, (x, y, z), compiler="vectorize", signatures=sig3)
        result = func(arr, arr, arr)
        check = np.arccos(arr)/arr + np.exp(-arr)
        assert np.allclose(result, check) == True
    except ImportError:
        pass
예제 #9
0
def test_fail_string(sca):
    """Test failure on untyped name."""
    fn = "Sin(x)/x"
    func = numbafy(fn, "x")
    with pytest.raises((TypingError, NameError)):
        func(sca)
예제 #10
0
파일: test_nbvars.py 프로젝트: tjduigna/exa
def test_fail_string(sca):
    """Test failure on untyped name."""
    fn = "Sin(x)/x"
    func = numbafy(fn, "x")
    with pytest.raises((TypingError, NameError)):
        func(sca)