[pypy-commit] pypy numpypy-array_prepare_-array_wrap: add 1 arg ufunc tests

mattip noreply at buildbot.pypy.org
Sat Sep 21 23:38:21 CEST 2013


Author: Matti Picus <matti.picus at gmail.com>
Branch: numpypy-array_prepare_-array_wrap
Changeset: r67041:4c78008e85f4
Date: 2013-09-20 17:00 +0300
http://bitbucket.org/pypy/pypy/changeset/4c78008e85f4/

Log:	add 1 arg ufunc tests

diff --git a/pypy/module/micronumpy/test/test_subtype.py b/pypy/module/micronumpy/test/test_subtype.py
--- a/pypy/module/micronumpy/test/test_subtype.py
+++ b/pypy/module/micronumpy/test/test_subtype.py
@@ -260,17 +260,16 @@
         assert type(x) == ndarray
         assert a.called_wrap
 
-    def test___array_prepare__1(self):
+    def test___array_prepare__2arg(self):
         from numpypy import ndarray, array, add, ones
         class with_prepare(ndarray):
-            called_prepare = False
             def __array_prepare__(self, arr, context):
-                self.called_prepare = True
-                return array(arr).view(type=with_prepare)
+                retVal = array(arr).view(type=with_prepare)
+                retVal.called_prepare = True
+                return retVal
         class with_prepare_fail(ndarray):
             called_prepare = False
             def __array_prepare__(self, arr, context):
-                self.called_prepare = True
                 return array(arr[0]).view(type=with_prepare)
         a = array(1)
         b = array(1).view(type=with_prepare)
@@ -288,17 +287,42 @@
         assert x.called_prepare
         raises(TypeError, add, a, b, out=c)
 
-    def test___array_prepare__2(self):
+    def test___array_prepare__1arg(self):
+        from numpypy import ndarray, array, log, ones
+        class with_prepare(ndarray):
+            def __array_prepare__(self, arr, context):
+                retVal = array(arr).view(type=with_prepare)
+                retVal.called_prepare = True
+                return retVal
+        class with_prepare_fail(ndarray):
+            def __array_prepare__(self, arr, context):
+                return array(arr[0]).view(type=with_prepare)
+        a = array(1)
+        b = array(1).view(type=with_prepare)
+        x = log(a, out=b)
+        assert x == 0
+        assert type(x) == with_prepare
+        assert x.called_prepare
+        x.called_prepare = False
+        a = ones((3, 2)).view(type=with_prepare)
+        b = ones((3, 2))
+        c = ones((3, 2)).view(type=with_prepare_fail)
+        x = log(a)
+        assert (x == 0).all()
+        assert type(x) == with_prepare
+        assert x.called_prepare
+        raises(TypeError, log, a, out=c)
+
+
+    def test___array_prepare__nocall(self):
         from numpypy import ndarray, array, sum, ones, add
         class with_prepare(ndarray):
             def __array_prepare__(self, arr, context):
                 x = array(arr).view(type=with_prepare)
                 x.called_prepare = True
-                xxx
                 print 'called_prepare',arr
                 return x
         a = ones(2).view(type=with_prepare)
-        b = ones((3, 2))
         x = sum(a, axis=0)
         assert type(x) == with_prepare
         # reduce functions do not call prepare?


More information about the pypy-commit mailing list