(self)
| 325 | self.assertEqual(type(a), type(b)) |
| 326 | |
| 327 | def test_iterator_pickle(self): |
| 328 | orig = array.array(self.typecode, self.example) |
| 329 | data = list(orig) |
| 330 | data2 = data[::-1] |
| 331 | for proto in range(pickle.HIGHEST_PROTOCOL + 1): |
| 332 | # initial iterator |
| 333 | itorig = iter(orig) |
| 334 | d = pickle.dumps((itorig, orig), proto) |
| 335 | it, a = pickle.loads(d) |
| 336 | a.fromlist(data2) |
| 337 | self.assertEqual(type(it), type(itorig)) |
| 338 | self.assertEqual(list(it), data + data2) |
| 339 | |
| 340 | # running iterator |
| 341 | next(itorig) |
| 342 | d = pickle.dumps((itorig, orig), proto) |
| 343 | it, a = pickle.loads(d) |
| 344 | a.fromlist(data2) |
| 345 | self.assertEqual(type(it), type(itorig)) |
| 346 | self.assertEqual(list(it), data[1:] + data2) |
| 347 | |
| 348 | # empty iterator |
| 349 | for i in range(1, len(data)): |
| 350 | next(itorig) |
| 351 | d = pickle.dumps((itorig, orig), proto) |
| 352 | it, a = pickle.loads(d) |
| 353 | a.fromlist(data2) |
| 354 | self.assertEqual(type(it), type(itorig)) |
| 355 | self.assertEqual(list(it), data2) |
| 356 | |
| 357 | # exhausted iterator |
| 358 | self.assertRaises(StopIteration, next, itorig) |
| 359 | d = pickle.dumps((itorig, orig), proto) |
| 360 | it, a = pickle.loads(d) |
| 361 | a.fromlist(data2) |
| 362 | self.assertEqual(list(it), []) |
| 363 | |
| 364 | def test_exhausted_iterator(self): |
| 365 | a = array.array(self.typecode, self.example) |
no test coverage detected