示例#1
0
def test_partial_1(**settings):
    l = lambda xs: map(lambda _: partial(f2, y=2), xs)

    L = _lambdify(l, namespace={'f2': f2}, **settings)

    xs = range(0, 5)
    out = L(xs)
    expected = [0., 2., 4., 6., 8.]
    assert (np.allclose(out, expected))

    print('DONE.')
示例#2
0
def test_reduce_function_list(**settings):
    l = lambda xs: reduce(add, map(f1, xs))

    L = _lambdify( l, namespace = {'f1': f1}, **settings )

    nx = 5000000
    xs = range(1, nx)
    tb = time.time()
    out = L(xs)
    te = time.time()
    print('[pyccel]  elapsed time = ', te-tb)
示例#3
0
def test_lambda_1(**settings):
    l = lambda xs: map(lambda _: f1(_), xs)

    L = _lambdify(l, namespace={'f1': f1}, **settings)

    xs = range(0, 5)
    out = L(xs)
    expected = [0., 1, 4., 9., 16.]
    assert (np.allclose(out, expected))

    print('DONE.')
示例#4
0
文件: test_math.py 项目: pyccel/lampy
def test_annotate_map_list(**settings):
    sin = np.sin
    l = lambda xs: map(sin, xs)

    L = _lambdify(l, **settings)

    xs = np.linspace(0., np.pi, 100)
    out = L(xs)
    expected = list(l(xs))
    assert (np.allclose(out, expected))

    print('DONE.')
示例#5
0
def test_map_product(**settings):
    l = lambda xs,ys:  xmap(f2, xs, ys)

    L = _lambdify( l, namespace = {'f2': f2}, **settings )

    nx = 5000
    xs = range(0, nx)

    ny = 5000
    ys = range(0, ny)

    tb = time.time()
    out = L(xs, ys)
    te = time.time()
    print('[pyccel]  elapsed time = ', te-tb)
示例#6
0
def test_reduce_function_zip(**settings):
    l = lambda xs,ys:  reduce(add, map(f2, xs, ys))

    L = _lambdify( l, namespace = {'f2': f2}, **settings )

    nx = 5000
    xs = range(0, nx)

    ny = 5000
    ys = range(0, ny)

    tb = time.time()
    out = L(xs, ys)
    te = time.time()
    print('[pyccel]  elapsed time = ', te-tb)
示例#7
0
def test_reduce_function_product(**settings):
    settings['semantic_only'] = True

    l = lambda xs, ys: reduce(add, xmap(f2, xs, ys))

    type_L = _lambdify(l, namespace={'f2': f2}, **settings)

    assert (isinstance(type_L, TypeVariable))

    assert (isinstance(type_L.dtype, NativeReal))
    assert (type_L.rank == 0)
    assert (type_L.precision == 8)
    assert (not type_L.is_stack_array)

    print('DONE.')
示例#8
0
def test_typing_partial_1(**settings):
    settings['semantic_only'] = True

    l = lambda xs:  map(lambda _: partial(f2, y=2), xs)

    type_L = _lambdify( l, namespace = {'f2': f2}, **settings )

    assert( isinstance( type_L, TypeList ) )

    parent = type_L.parent
    assert( isinstance( parent.dtype, NativeReal ) )
    assert( parent.rank == 0 )
    assert( parent.precision == 8 )
    assert( not parent.is_stack_array )

    print('DONE.')
示例#9
0
def test_map_sin_list(**settings):
    settings['semantic_only'] = True

    L = lambda xs: map(sin, xs)

    type_L = _lambdify(L, **settings)

    assert (isinstance(type_L, TypeList))

    parent = type_L.parent
    assert (isinstance(parent.dtype, NativeReal))
    assert (parent.rank == 0)
    assert (parent.precision == 8)
    assert (not parent.is_stack_array)

    print('DONE.')
示例#10
0
def test_map_product(**settings):
    settings['semantic_only'] = True

    l = lambda xs, ys: xmap(f2, xs, ys)

    type_L = _lambdify(l, namespace={'f2': f2}, **settings)

    assert (isinstance(type_L, TypeList))

    parent = type_L.parent
    assert (isinstance(parent.dtype, NativeReal))
    assert (parent.rank == 0)
    assert (parent.precision == 8)
    assert (not parent.is_stack_array)

    print('DONE.')
示例#11
0
def test_map_list(**settings):
    l = lambda xs: map(f1, xs)

    L = _lambdify( l, namespace = {'f1': f1}, **settings )

    nx = 5000000
    xs = range(0, nx)

    tb = time.time()
    out = L(xs)
    te = time.time()
    print('[pyccel]  elapsed time = ', te-tb)

#    tb = time.time()
#    out = L(xs, out=out)
#    te = time.time()
#    print('[pyccel]  elapsed time = ', te-tb)

    tb = time.time()
    expected = list(l(xs)) # add list because the result of l is an iterator
    te = time.time()
    print('[python]  elapsed time = ', te-tb)
    assert(np.allclose( out, expected ))