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

Method test_memoryview_array

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

Source from the content-addressed store, hash-verified

3137 self.assertEqual(m2, ex2)
3138
3139 def test_memoryview_array(self):
3140
3141 def cmptest(testcase, a, b, m, singleitem):
3142 for i, _ in enumerate(a):
3143 ai = a[i]
3144 mi = m[i]
3145 testcase.assertEqual(ai, mi)
3146 a[i] = singleitem
3147 if singleitem != ai:
3148 testcase.assertNotEqual(a, m)
3149 testcase.assertNotEqual(a, b)
3150 else:
3151 testcase.assertEqual(a, m)
3152 testcase.assertEqual(a, b)
3153 m[i] = singleitem
3154 testcase.assertEqual(a, m)
3155 testcase.assertEqual(b, m)
3156 a[i] = ai
3157 m[i] = mi
3158
3159 for n in range(1, 5):
3160 for fmt, items, singleitem in iter_format(n, 'array'):
3161 for lslice in genslices(n):
3162 for rslice in genslices(n):
3163
3164 a = array.array(fmt, items)
3165 b = array.array(fmt, items)
3166 m = memoryview(b)
3167
3168 self.assertEqual(m, a)
3169 self.assertEqual(m.tolist(), a.tolist())
3170 self.assertEqual(m.tobytes(), a.tobytes())
3171 self.assertEqual(len(m), len(a))
3172
3173 cmptest(self, a, b, m, singleitem)
3174
3175 array_err = None
3176 have_resize = None
3177 try:
3178 al = a[lslice]
3179 ar = a[rslice]
3180 a[lslice] = a[rslice]
3181 have_resize = len(al) != len(ar)
3182 except Exception as e:
3183 array_err = e.__class__
3184
3185 m_err = None
3186 try:
3187 m[lslice] = m[rslice]
3188 except Exception as e:
3189 m_err = e.__class__
3190
3191 if have_resize: # memoryview cannot change shape
3192 self.assertIs(m_err, ValueError)
3193 elif m_err or array_err:
3194 self.assertIs(m_err, array_err)
3195 else:
3196 self.assertEqual(m, a)

Callers

nothing calls this directly

Calls 4

iter_formatFunction · 0.85
genslicesFunction · 0.85
assertEqualMethod · 0.45
assertIsMethod · 0.45

Tested by

no test coverage detected