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