summaryrefslogtreecommitdiff
path: root/numpy/lib/tests/test_function_base.py
diff options
context:
space:
mode:
authorSebastian Berg <sebastian@sipsolutions.net>2019-07-04 12:45:31 -0700
committerSebastian Berg <sebastian@sipsolutions.net>2019-07-04 12:51:41 -0700
commit5911fea9a2e880fe4c655af4d667d57d45121f91 (patch)
treec0ab6785c1eedc75503850c654bf456dc73fe527 /numpy/lib/tests/test_function_base.py
parentdeea4983aedfa96905bbaee64e3d1de84144303f (diff)
downloadnumpy-5911fea9a2e880fe4c655af4d667d57d45121f91.tar.gz
BUG: i0 Bessel function regression on array-likes supporting ufuncs
For array likes supporting UFuncs, `np.abs` would return an array-like, and this is currently not compatible with the use of `np.piecewise`. The simplest fix seems to be to just call asanyarray (which piecewise calls anyway on the array) beforehand. This way we ensure the conditions are also an array. Fixes gh-13894
Diffstat (limited to 'numpy/lib/tests/test_function_base.py')
-rw-r--r--numpy/lib/tests/test_function_base.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/numpy/lib/tests/test_function_base.py b/numpy/lib/tests/test_function_base.py
index c0b8ad6b8..eae52c002 100644
--- a/numpy/lib/tests/test_function_base.py
+++ b/numpy/lib/tests/test_function_base.py
@@ -2005,6 +2005,22 @@ class Test_I0(object):
assert_equal(i0_0.shape, (1,))
assert_array_equal(np.i0([0.]), np.array([1.]))
+ def test_non_array(self):
+ a = np.arange(4)
+
+ class array_like:
+ __array_interface__ = a.__array_interface__
+
+ def __array_wrap__(self, arr):
+ return self
+
+ # E.g. pandas series survive ufunc calls through array-wrap:
+ assert isinstance(np.abs(array_like()), array_like)
+ exp = np.i0(a)
+ res = np.i0(array_like())
+
+ assert_array_equal(exp, res)
+
class TestKaiser(object):