Author: Matti Picus <[email protected]>
Branch: numpy-searchsorted
Changeset: r70789:dfbf07a1af36
Date: 2014-04-20 00:38 +0300
http://bitbucket.org/pypy/pypy/changeset/dfbf07a1af36/

Log:    pass tests

diff --git a/pypy/module/micronumpy/ndarray.py 
b/pypy/module/micronumpy/ndarray.py
--- a/pypy/module/micronumpy/ndarray.py
+++ b/pypy/module/micronumpy/ndarray.py
@@ -712,8 +712,6 @@
         else:
             raise oefmt(space.w_ValueError,
                          "'%s' is an invalid value for keyword 'side'", side)
-        ret = W_NDimArray.from_shape(space, self.get_shape(),
-                       descriptor.get_dtype_cache(space).w_longdtype)
         if len(self.get_shape()) > 1:
             raise OperationError(space.w_ValueError, space.wrap(
                         "a must be a 1-d array"))
@@ -721,6 +719,8 @@
         if len(v.get_shape()) >1:
             raise OperationError(space.w_ValueError, space.wrap(
                         "v must be a 1-d array-like"))
+        ret = W_NDimArray.from_shape(space, v.get_shape(),
+                       descriptor.get_dtype_cache(space).w_longdtype)
         app_searchsort(space, self, v, space.wrap(side), ret)
         return ret
 
@@ -1282,7 +1282,7 @@
             imax = a.size
             while imin < imax:
                 imid = imin + ((imax - imin) >> 1)
-                if a[imid] <= val:
+                if a[imid] < val:
                     imin = imid +1
                 else:
                     imax = imid
@@ -1292,7 +1292,7 @@
             imax = a.size
             while imin < imax:
                 imid = imin + ((imax - imin) >> 1)
-                if a[imid] < val:
+                if a[imid] <= val:
                     imin = imid +1
                 else:
                     imax = imid
@@ -1301,8 +1301,11 @@
             func = left_find_index
         else:
             func = right_find_index
-        for i in range(v.size):
-            result[i] = func(arr, v[i])
+        if v.size < 2:
+            result[...] = func(arr, v)
+        else:
+            for i in range(v.size):
+                result[i] = func(arr, v[i])
         return result
 """, filename=__file__).interphook('searchsort')
 
diff --git a/pypy/module/micronumpy/test/test_sorting.py 
b/pypy/module/micronumpy/test/test_sorting.py
--- a/pypy/module/micronumpy/test/test_sorting.py
+++ b/pypy/module/micronumpy/test/test_sorting.py
@@ -361,5 +361,5 @@
         ret = a.searchsorted([-10, 10, 2, 3])
         assert (ret == [0, 5, 1, 2]).all()
         if '__pypy__' in sys.builtin_module_names:
-            raises(NotImplementedError, "a.searchsorted(3, sorter=range(6)")
+            raises(NotImplementedError, "a.searchsorted(3, sorter=range(6))")
 
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to