Author: Alex Gaynor <[email protected]>
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
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit