(self)
| 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) |
nothing calls this directly
no test coverage detected