Author: Yasir Suhail <[email protected]>
Branch:
Changeset: r46780:e8e96fd0c623
Date: 2011-08-24 11:23 -0400
http://bitbucket.org/pypy/pypy/changeset/e8e96fd0c623/
Log: added sort (non-jit) for numpy array, with test
diff --git a/pypy/module/micronumpy/interp_numarray.py
b/pypy/module/micronumpy/interp_numarray.py
--- a/pypy/module/micronumpy/interp_numarray.py
+++ b/pypy/module/micronumpy/interp_numarray.py
@@ -177,15 +177,10 @@
descr_argmin = _reduce_argmax_argmin_impl(minimum)
def descr_sort(self, space):
- sort_driver = jit.JitDriver(greens=['signature'],
- reds = ['first', 'last', 'stack', 'splitpoint',
'size', 'self'])
size = self.find_size()
stack = [(0,size-1)]
first=0; last=size-1; splitpoint=first;
while (len(stack) > 0):
- sort_driver.jit_merge_point(signature=self.signature, first=first,
- last=last, stack=stack,
splitpoint=splitpoint,
- size=size, self=self)
first, last = stack.pop()
while last>first:
#splitpoint = split(first,last)
diff --git a/pypy/module/micronumpy/test/test_numarray.py
b/pypy/module/micronumpy/test/test_numarray.py
--- a/pypy/module/micronumpy/test/test_numarray.py
+++ b/pypy/module/micronumpy/test/test_numarray.py
@@ -427,6 +427,24 @@
b = array([])
raises(ValueError, "b.argmin()")
+ def test_sort(self):
+ from numpy import array
+ a = [3.0,4.0,0.0,-1.0]
+ b = array(a)
+ a.sort()
+ b.sort()
+ assert(len(a)==len(b))
+ for i in range(len(a)):
+ assert(a[i]==b[i])
+ a = array(list(reversed(range(6))))
+ b = array(range(6))
+ a.sort()
+ assert(len(a)==len(b))
+ for i in range(len(a)):
+ assert(a[i]==b[i])
+
+
+
def test_all(self):
from numpy import array
a = array(range(5))
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit