MCPcopy Create free account
hub / github.com/numpy/numpy / test_iter_iterrange

Function test_iter_iterrange

numpy/core/tests/test_nditer.py:1743–1782  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1741 assert_equal(iter_iterindices(i), list(range(2, 24)))
1742
1743def test_iter_iterrange():
1744 # Make sure getting and resetting the iterrange works
1745
1746 buffersize = 5
1747 a = arange(24, dtype='i4').reshape(4, 3, 2)
1748 a_fort = a.ravel(order='F')
1749
1750 i = nditer(a, ['ranged'], ['readonly'], order='F',
1751 buffersize=buffersize)
1752 assert_equal(i.iterrange, (0, 24))
1753 assert_equal([x[()] for x in i], a_fort)
1754 for r in [(0, 24), (1, 2), (3, 24), (5, 5), (0, 20), (23, 24)]:
1755 i.iterrange = r
1756 assert_equal(i.iterrange, r)
1757 assert_equal([x[()] for x in i], a_fort[r[0]:r[1]])
1758
1759 i = nditer(a, ['ranged', 'buffered'], ['readonly'], order='F',
1760 op_dtypes='f8', buffersize=buffersize)
1761 assert_equal(i.iterrange, (0, 24))
1762 assert_equal([x[()] for x in i], a_fort)
1763 for r in [(0, 24), (1, 2), (3, 24), (5, 5), (0, 20), (23, 24)]:
1764 i.iterrange = r
1765 assert_equal(i.iterrange, r)
1766 assert_equal([x[()] for x in i], a_fort[r[0]:r[1]])
1767
1768 def get_array(i):
1769 val = np.array([], dtype='f8')
1770 for x in i:
1771 val = np.concatenate((val, x))
1772 return val
1773
1774 i = nditer(a, ['ranged', 'buffered', 'external_loop'],
1775 ['readonly'], order='F',
1776 op_dtypes='f8', buffersize=buffersize)
1777 assert_equal(i.iterrange, (0, 24))
1778 assert_equal(get_array(i), a_fort)
1779 for r in [(0, 24), (1, 2), (3, 24), (5, 5), (0, 20), (23, 24)]:
1780 i.iterrange = r
1781 assert_equal(i.iterrange, r)
1782 assert_equal(get_array(i), a_fort[r[0]:r[1]])
1783
1784def test_iter_buffering():
1785 # Test buffering with several buffer sizes and types

Callers

nothing calls this directly

Calls 5

arangeFunction · 0.90
assert_equalFunction · 0.90
get_arrayFunction · 0.85
reshapeMethod · 0.80
ravelMethod · 0.45

Tested by

no test coverage detected