Author: mattip <matti.pi...@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 _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit