| 123456789101112131415161718192021222324252627282930313233 |
- import numpy as np
- from numpy.lib import array_utils
- from numpy.testing import assert_equal
- class TestByteBounds:
- def test_byte_bounds(self):
- # pointer difference matches size * itemsize
- # due to contiguity
- a = np.arange(12).reshape(3, 4)
- low, high = array_utils.byte_bounds(a)
- assert_equal(high - low, a.size * a.itemsize)
- def test_unusual_order_positive_stride(self):
- a = np.arange(12).reshape(3, 4)
- b = a.T
- low, high = array_utils.byte_bounds(b)
- assert_equal(high - low, b.size * b.itemsize)
- def test_unusual_order_negative_stride(self):
- a = np.arange(12).reshape(3, 4)
- b = a.T[::-1]
- low, high = array_utils.byte_bounds(b)
- assert_equal(high - low, b.size * b.itemsize)
- def test_strided(self):
- a = np.arange(12)
- b = a[::2]
- low, high = array_utils.byte_bounds(b)
- # the largest pointer address is lost (even numbers only in the
- # stride), and compensate addresses for striding by 2
- assert_equal(high - low, b.size * 2 * b.itemsize - b.itemsize)
|