MCPcopy Index your code
hub / github.com/python/cpython / test_py_buffer_to_contiguous

Method test_py_buffer_to_contiguous

Lib/test/test_buffer.py:2146–2384  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2144 self.assertEqual(hash(nd), hash(nd.tobytes()))
2145
2146 def test_py_buffer_to_contiguous(self):
2147
2148 # The requests are used in _testbuffer.c:py_buffer_to_contiguous
2149 # to generate buffers without full information for testing.
2150 requests = (
2151 # distinct flags
2152 PyBUF_INDIRECT, PyBUF_STRIDES, PyBUF_ND, PyBUF_SIMPLE,
2153 # compound requests
2154 PyBUF_FULL, PyBUF_FULL_RO,
2155 PyBUF_RECORDS, PyBUF_RECORDS_RO,
2156 PyBUF_STRIDED, PyBUF_STRIDED_RO,
2157 PyBUF_CONTIG, PyBUF_CONTIG_RO,
2158 )
2159
2160 # no buffer interface
2161 self.assertRaises(TypeError, py_buffer_to_contiguous, {}, 'F',
2162 PyBUF_FULL_RO)
2163
2164 # scalar, read-only request
2165 nd = ndarray(9, shape=(), format="L", flags=ND_WRITABLE)
2166 for order in ['C', 'F', 'A']:
2167 for request in requests:
2168 b = py_buffer_to_contiguous(nd, order, request)
2169 self.assertEqual(b, nd.tobytes())
2170
2171 # zeros in shape
2172 nd = ndarray([1], shape=[0], format="L", flags=ND_WRITABLE)
2173 for order in ['C', 'F', 'A']:
2174 for request in requests:
2175 b = py_buffer_to_contiguous(nd, order, request)
2176 self.assertEqual(b, b'')
2177
2178 nd = ndarray(list(range(8)), shape=[2, 0, 7], format="L",
2179 flags=ND_WRITABLE)
2180 for order in ['C', 'F', 'A']:
2181 for request in requests:
2182 b = py_buffer_to_contiguous(nd, order, request)
2183 self.assertEqual(b, b'')
2184
2185 ### One-dimensional arrays are trivial, since Fortran and C order
2186 ### are the same.
2187
2188 # one-dimensional
2189 for f in [0, ND_FORTRAN]:
2190 nd = ndarray([1], shape=[1], format="h", flags=f|ND_WRITABLE)
2191 ndbytes = nd.tobytes()
2192 for order in ['C', 'F', 'A']:
2193 for request in requests:
2194 b = py_buffer_to_contiguous(nd, order, request)
2195 self.assertEqual(b, ndbytes)
2196
2197 nd = ndarray([1, 2, 3], shape=[3], format="b", flags=f|ND_WRITABLE)
2198 ndbytes = nd.tobytes()
2199 for order in ['C', 'F', 'A']:
2200 for request in requests:
2201 b = py_buffer_to_contiguous(nd, order, request)
2202 self.assertEqual(b, ndbytes)
2203

Callers

nothing calls this directly

Calls 4

listClass · 0.85
transposeFunction · 0.85
assertRaisesMethod · 0.45
assertEqualMethod · 0.45

Tested by

no test coverage detected