(self)
| 2384 | self.assertEqual(memoryview(y), memoryview(nd)) |
| 2385 | |
| 2386 | def test_memoryview_construction(self): |
| 2387 | |
| 2388 | items_shape = [(9, []), ([1,2,3], [3]), (list(range(2*3*5)), [2,3,5])] |
| 2389 | |
| 2390 | # NumPy style, C-contiguous: |
| 2391 | for items, shape in items_shape: |
| 2392 | |
| 2393 | # From PEP-3118 compliant exporter: |
| 2394 | ex = ndarray(items, shape=shape) |
| 2395 | m = memoryview(ex) |
| 2396 | self.assertTrue(m.c_contiguous) |
| 2397 | self.assertTrue(m.contiguous) |
| 2398 | |
| 2399 | ndim = len(shape) |
| 2400 | strides = strides_from_shape(ndim, shape, 1, 'C') |
| 2401 | lst = carray(items, shape) |
| 2402 | |
| 2403 | self.verify(m, obj=ex, |
| 2404 | itemsize=1, fmt='B', readonly=True, |
| 2405 | ndim=ndim, shape=shape, strides=strides, |
| 2406 | lst=lst) |
| 2407 | |
| 2408 | # From memoryview: |
| 2409 | m2 = memoryview(m) |
| 2410 | self.verify(m2, obj=ex, |
| 2411 | itemsize=1, fmt='B', readonly=True, |
| 2412 | ndim=ndim, shape=shape, strides=strides, |
| 2413 | lst=lst) |
| 2414 | |
| 2415 | # PyMemoryView_FromBuffer(): no strides |
| 2416 | nd = ndarray(ex, getbuf=PyBUF_CONTIG_RO|PyBUF_FORMAT) |
| 2417 | self.assertEqual(nd.strides, ()) |
| 2418 | m = nd.memoryview_from_buffer() |
| 2419 | self.verify(m, obj=None, |
| 2420 | itemsize=1, fmt='B', readonly=True, |
| 2421 | ndim=ndim, shape=shape, strides=strides, |
| 2422 | lst=lst) |
| 2423 | |
| 2424 | # PyMemoryView_FromBuffer(): no format, shape, strides |
| 2425 | nd = ndarray(ex, getbuf=PyBUF_SIMPLE) |
| 2426 | self.assertEqual(nd.format, '') |
| 2427 | self.assertEqual(nd.shape, ()) |
| 2428 | self.assertEqual(nd.strides, ()) |
| 2429 | m = nd.memoryview_from_buffer() |
| 2430 | |
| 2431 | lst = [items] if ndim == 0 else items |
| 2432 | self.verify(m, obj=None, |
| 2433 | itemsize=1, fmt='B', readonly=True, |
| 2434 | ndim=1, shape=[ex.nbytes], strides=(1,), |
| 2435 | lst=lst) |
| 2436 | |
| 2437 | # NumPy style, Fortran contiguous: |
| 2438 | for items, shape in items_shape: |
| 2439 | |
| 2440 | # From PEP-3118 compliant exporter: |
| 2441 | ex = ndarray(items, shape=shape, flags=ND_FORTRAN) |
| 2442 | m = memoryview(ex) |
| 2443 | self.assertTrue(m.f_contiguous) |
nothing calls this directly
no test coverage detected