Author: mattip <matti.pi...@gmail.com>
Branch: 
Changeset: r82368:85f5eef31a2a
Date: 2016-02-21 15:53 +0100
http://bitbucket.org/pypy/pypy/changeset/85f5eef31a2a/

Log:    test, fix boolean array indexing, extending d77888929462

diff --git a/pypy/module/micronumpy/compile.py 
b/pypy/module/micronumpy/compile.py
--- a/pypy/module/micronumpy/compile.py
+++ b/pypy/module/micronumpy/compile.py
@@ -196,6 +196,10 @@
     def newfloat(self, f):
         return self.float(f)
 
+    def newslice(self, start, stop, step):
+        return SliceObject(self.int_w(start), self.int_w(stop),
+                           self.int_w(step))
+
     def le(self, w_obj1, w_obj2):
         assert isinstance(w_obj1, boxes.W_GenericBox)
         assert isinstance(w_obj2, boxes.W_GenericBox)
diff --git a/pypy/module/micronumpy/strides.py 
b/pypy/module/micronumpy/strides.py
--- a/pypy/module/micronumpy/strides.py
+++ b/pypy/module/micronumpy/strides.py
@@ -94,11 +94,13 @@
             dim = i
             break
     if dim >= 0:
-        # filter by axis r
-        filtr = chunks.pop(dim)
+        # filter by axis dim
+        filtr = chunks[dim]
         assert isinstance(filtr, BooleanChunk) 
         w_arr = w_arr.getitem_filter(space, filtr.w_idx, axis=dim)
         arr = w_arr.implementation
+        chunks[dim] = SliceChunk(space.newslice(space.wrap(0), 
+                                 space.wrap(-1), space.w_None))
         r = calculate_slice_strides(space, arr.shape, arr.start,
                  arr.get_strides(), arr.get_backstrides(), chunks)
     else:
diff --git a/pypy/module/micronumpy/test/test_ndarray.py 
b/pypy/module/micronumpy/test/test_ndarray.py
--- a/pypy/module/micronumpy/test/test_ndarray.py
+++ b/pypy/module/micronumpy/test/test_ndarray.py
@@ -2550,6 +2550,8 @@
         assert b.base is None
         b = a[:, np.array([True, False, True])]
         assert b.base is not None
+        b = a[np.array([True, False]), 0]
+        assert (b ==[0]).all()
 
     def test_scalar_indexing(self):
         import numpy as np
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to