summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
Diffstat (limited to 'numpy')
-rw-r--r--numpy/core/tests/test_nditer.py43
1 files changed, 22 insertions, 21 deletions
diff --git a/numpy/core/tests/test_nditer.py b/numpy/core/tests/test_nditer.py
index 7e8e70244..30d4cd640 100644
--- a/numpy/core/tests/test_nditer.py
+++ b/numpy/core/tests/test_nditer.py
@@ -2024,33 +2024,23 @@ def test_iter_buffered_reduce_reuse():
a = np.arange(2*3**5)[3**5:3**5+1]
flags = ['buffered', 'delay_bufalloc', 'multi_index', 'reduce_ok', 'refs_ok']
op_flags = [('readonly',), ('readwrite','allocate')]
- op_axes = [(0,1,2), (0,1,-1)]
+ op_axes_list = [[(0,1,2), (0,1,-1)], [(0,1,2), (0,-1,-1)]]
# wrong dtype to force buffering
op_dtypes = [np.float, a.dtype]
def get_params():
for xs in xrange(-3**2, 3**2 + 1):
for ys in xrange(xs, 3**2 + 1):
- # last stride is reduced and because of that not
- # important for this test, as it is the inner stride.
- strides = (xs * a.itemsize, ys * a.itemsize, a.itemsize)
- arr = np.lib.stride_tricks.as_strided(a, (3,3,3), strides)
-
- for bufsize in xrange(0, 3**3):
+ for op_axes in op_axes_list:
+ # last stride is reduced and because of that not
+ # important for this test, as it is the inner stride.
+ strides = (xs * a.itemsize, ys * a.itemsize, a.itemsize)
+ arr = np.lib.stride_tricks.as_strided(a, (3,3,3), strides)
+
for skip in [0, 1]:
- yield arr, bufsize, skip
+ yield arr, op_axes, skip
- for arr, bufsize, skip in get_params():
- nditer1 = np.nditer([arr, None],
- op_axes=op_axes, flags=flags, op_flags=op_flags,
- buffersize=bufsize, op_dtypes=op_dtypes)
- nditer1.operands[-1][...] = 0
- nditer1.reset()
- nditer1.iterindex = skip
-
- for (a1_in, b1_in) in nditer1:
- b1_in += a1_in.astype(np.int_)
-
+ for arr, op_axes, skip in get_params():
nditer2 = np.nditer([arr.copy(), None],
op_axes=op_axes, flags=flags, op_flags=op_flags,
op_dtypes=op_dtypes)
@@ -2061,10 +2051,21 @@ def test_iter_buffered_reduce_reuse():
for (a2_in, b2_in) in nditer2:
b2_in += a2_in.astype(np.int_)
- res = nditer1.operands[-1]
comp_res = nditer2.operands[-1]
- assert_array_equal(res, comp_res)
+ for bufsize in xrange(0, 3**3):
+ nditer1 = np.nditer([arr, None],
+ op_axes=op_axes, flags=flags, op_flags=op_flags,
+ buffersize=bufsize, op_dtypes=op_dtypes)
+ nditer1.operands[-1][...] = 0
+ nditer1.reset()
+ nditer1.iterindex = skip
+
+ for (a1_in, b1_in) in nditer1:
+ b1_in += a1_in.astype(np.int_)
+
+ res = nditer1.operands[-1]
+ assert_array_equal(res, comp_res)
def test_iter_no_broadcast():