[pypy-commit] pypy numpy-unify-methods: test, fix raise for int_only
mattip
noreply at buildbot.pypy.org
Wed Feb 13 23:53:27 CET 2013
Author: mattip <matti.picus at gmail.com>
Branch: numpy-unify-methods
Changeset: r61225:4f03e6c73208
Date: 2013-02-14 00:23 +0200
http://bitbucket.org/pypy/pypy/changeset/4f03e6c73208/
Log: test, fix raise for int_only
diff --git a/pypy/module/micronumpy/interp_ufuncs.py b/pypy/module/micronumpy/interp_ufuncs.py
--- a/pypy/module/micronumpy/interp_ufuncs.py
+++ b/pypy/module/micronumpy/interp_ufuncs.py
@@ -258,6 +258,9 @@
if w_obj.get_dtype().is_flexible_type():
raise OperationError(space.w_TypeError,
space.wrap('Not implemented for this type'))
+ if self.int_only and not w_obj.get_dtype().is_int_type():
+ raise OperationError(space.w_TypeError, space.wrap(
+ "ufunc %s not supported for the input type", self.name))
calc_dtype = find_unaryop_result_dtype(space,
w_obj.get_dtype(),
promote_to_float=self.promote_to_float,
@@ -337,6 +340,9 @@
promote_bools=self.promote_bools,
allow_complex=self.allow_complex,
)
+ if self.int_only and not calc_dtype.is_int_type():
+ raise OperationError(space.w_TypeError, space.wrap(
+ "ufunc '%s' not supported for the input types", self.name))
if space.is_none(w_out):
out = None
elif not isinstance(w_out, W_NDimArray):
diff --git a/pypy/module/micronumpy/test/test_ufuncs.py b/pypy/module/micronumpy/test/test_ufuncs.py
--- a/pypy/module/micronumpy/test/test_ufuncs.py
+++ b/pypy/module/micronumpy/test/test_ufuncs.py
@@ -114,6 +114,11 @@
'rad2deg', 'invert', 'spacing', 'radians', 'frexp', 'signbit',
'modf', 'trunc'])
+ def test_int_only(self):
+ from _numpypy import bitwise_and, array
+ a = array(1.0)
+ raises(TypeError, bitwise_and, a, a)
+
def test_negative(self):
from _numpypy import array, negative
More information about the pypy-commit
mailing list