Author: Alex Gaynor <alex.gay...@gmail.com> Branch: numpy-ufunc-object Changeset: r46922:7a7e0f260ee2 Date: 2011-08-30 11:23 -0400 http://bitbucket.org/pypy/pypy/changeset/7a7e0f260ee2/
Log: fix test_zjit, ready for merger already? 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 @@ -1,4 +1,5 @@ from pypy.interpreter.baseobjspace import Wrappable +from pypy.interpreter.error import OperationError from pypy.interpreter.gateway import interp2app from pypy.interpreter.typedef import TypeDef, GetSetProperty, interp_attrproperty from pypy.module.micronumpy import interp_dtype, signature @@ -22,7 +23,10 @@ return self.identity.wrap(space) def descr_call(self, space, __args__): - args_w = __args__.fixedunpack(self.argcount) + try: + args_w = __args__.fixedunpack(self.argcount) + except ValueError, e: + raise OperationError(space.w_TypeError, space.wrap(str(e))) return self.call(space, args_w) class W_Ufunc1(W_Ufunc): 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 @@ -21,6 +21,14 @@ assert multiply.nin == 2 assert sin.nin == 1 + def test_wrong_arguments(self): + from numpy import add, sin + + raises(TypeError, add, 1) + raises(TypeError, add, 1, 2, 3) + raises(TypeError, sin, 1, 2) + raises(TypeError, sin) + def test_single_item(self): from numpy import negative, sign, minimum diff --git a/pypy/module/micronumpy/test/test_zjit.py b/pypy/module/micronumpy/test/test_zjit.py --- a/pypy/module/micronumpy/test/test_zjit.py +++ b/pypy/module/micronumpy/test/test_zjit.py @@ -19,7 +19,7 @@ def test_add(self): def f(i): ar = SingleDimArray(i, dtype=self.float64_dtype) - v = interp_ufuncs.add(self.space, ar, ar) + v = interp_ufuncs.get(self.space).add.call(self.space, [ar, ar]) return v.get_concrete().eval(3).val result = self.meta_interp(f, [5], listops=True, backendopt=True) @@ -31,9 +31,10 @@ def test_floatadd(self): def f(i): ar = SingleDimArray(i, dtype=self.float64_dtype) - v = interp_ufuncs.add(self.space, - ar, - scalar_w(self.space, self.float64_dtype, self.space.wrap(4.5)) + v = interp_ufuncs.get(self.space).add.call(self.space, [ + ar, + scalar_w(self.space, self.float64_dtype, self.space.wrap(4.5)) + ], ) assert isinstance(v, BaseArray) return v.get_concrete().eval(3).val @@ -180,9 +181,9 @@ def f(i): ar = SingleDimArray(i, dtype=self.float64_dtype) - v1 = interp_ufuncs.add(space, ar, scalar_w(space, self.float64_dtype, space.wrap(4.5))) + v1 = interp_ufuncs.get(self.space).add.call(space, [ar, scalar_w(space, self.float64_dtype, space.wrap(4.5))]) assert isinstance(v1, BaseArray) - v2 = interp_ufuncs.multiply(space, v1, scalar_w(space, self.float64_dtype, space.wrap(4.5))) + v2 = interp_ufuncs.get(self.space).multiply.call(space, [v1, scalar_w(space, self.float64_dtype, space.wrap(4.5))]) v1.force_if_needed() assert isinstance(v2, BaseArray) return v2.get_concrete().eval(3).val @@ -200,8 +201,8 @@ space = self.space def f(i): ar = SingleDimArray(i, dtype=self.float64_dtype) - v1 = interp_ufuncs.add(space, ar, ar) - v2 = interp_ufuncs.negative(space, v1) + v1 = interp_ufuncs.get(self.space).add.call(space, [ar, ar]) + v2 = interp_ufuncs.get(self.space).negative.call(space, [v1]) return v2.get_concrete().eval(3).val result = self.meta_interp(f, [5], listops=True, backendopt=True) @@ -216,13 +217,13 @@ def f(i): ar = SingleDimArray(i, dtype=self.float64_dtype) - v1 = interp_ufuncs.add(space, ar, ar) - v2 = interp_ufuncs.negative(space, v1) + v1 = interp_ufuncs.get(self.space).add.call(space, [ar, ar]) + v2 = interp_ufuncs.get(self.space).negative.call(space, [v1]) v2.get_concrete() for i in xrange(5): - v1 = interp_ufuncs.multiply(space, ar, ar) - v2 = interp_ufuncs.negative(space, v1) + v1 = interp_ufuncs.get(self.space).multiply.call(space, [ar, ar]) + v2 = interp_ufuncs.get(self.space).negative.call(space, [v1]) v2.get_concrete() self.meta_interp(f, [5], listops=True, backendopt=True) @@ -237,7 +238,7 @@ SingleDimSlice.signature, ar.signature ]) s = SingleDimSlice(0, step*i, step, i, ar, new_sig) - v = interp_ufuncs.add(self.space, s, s) + v = interp_ufuncs.get(self.space).add.call(self.space, [s, s]) return v.get_concrete().eval(3).val result = self.meta_interp(f, [5], listops=True, backendopt=True) @@ -259,7 +260,7 @@ SingleDimSlice.signature, s1.signature ]) s2 = SingleDimSlice(0, step2*i, step2, i, ar, new_sig) - v = interp_ufuncs.add(self.space, s1, s2) + v = interp_ufuncs.get(self.space).add.call(self.space, [s1, s2]) return v.get_concrete().eval(3).val result = self.meta_interp(f, [5], listops=True, backendopt=True) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit