From 9c1cd39caa094524c2429e57f737031951667a95 Mon Sep 17 00:00:00 2001 From: "Mads R. B. Kristensen" Date: Wed, 21 Feb 2018 09:51:59 +0100 Subject: [PATCH] Fixed #450, ufunc now converts python objects to bharrays --- bridge/npbackend/bohrium/ufuncs.pyx | 5 +++++ test/python/tests/test_conversion.py | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/bridge/npbackend/bohrium/ufuncs.pyx b/bridge/npbackend/bohrium/ufuncs.pyx index 3c7098d75..a0cdf4a0d 100644 --- a/bridge/npbackend/bohrium/ufuncs.pyx +++ b/bridge/npbackend/bohrium/ufuncs.pyx @@ -144,6 +144,11 @@ class Ufunc(object): if val is not None: raise ValueError("Bohrium ufuncs doesn't support the '%s' argument" % str(k)) + # Makes sure that `args` are either bohrium arrays or scalars + for i in range(len(args)): + if not np.isscalar(args[i]) and not bhary.check(args[i]): + args[i] = array_create.array(args[i]) + # Broadcast the args (bargs, out_shape) = broadcast_arrays(*args) diff --git a/test/python/tests/test_conversion.py b/test/python/tests/test_conversion.py index 96c045374..ecfb1de28 100644 --- a/test/python/tests/test_conversion.py +++ b/test/python/tests/test_conversion.py @@ -1,6 +1,6 @@ -import util import sys + class test_conversion: def init(self): yield "a = M.arange(1);" @@ -25,3 +25,16 @@ def test_hex(self, cmd): def test_long(self, cmd): cmd += "res = long(a);" return cmd + + +class test_python_lists: + def init(self): + yield "a = [1,2,3,4]; b = M.arange(4); " + + def test_add(self, cmd): + cmd += "res = a + b" + return cmd + + def test_sum(self, cmd): + cmd += "res = M.sum(a)" + return cmd \ No newline at end of file