| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent fb3e9c0 commit b46ad54
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -288,6 +288,14 @@ def test_index(self): | |||
| 288 | 288 | else: | |
| 289 | 289 | self.assertEqual(d.index(element, start, stop), target) | |
| 290 | 290 | ||
| 291 | + # Test large start argument | ||
| 292 | + d = deque(range(0, 10000, 10)) | ||
| 293 | + for step in range(100): | ||
| 294 | + i = d.index(8500, 700) | ||
| 295 | + self.assertEqual(d[i], 8500) | ||
| 296 | + # Repeat test with a different internal offset | ||
| 297 | + d.rotate() | ||
| 298 | + | ||
| 291 | 299 | def test_index_bug_24913(self): | |
| 292 | 300 | d = deque('A' * 3) | |
| 293 | 301 | with self.assertRaises(ValueError): | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1050,8 +1050,10 @@ deque_index(dequeobject *deque, PyObject *const *args, Py_ssize_t nargs) | |||
| 1050 | 1050 | start = stop; | |
| 1051 | 1051 | assert(0 <= start && start <= stop && stop <= Py_SIZE(deque)); | |
| 1052 | 1052 | ||
| 1053 | - /* XXX Replace this loop with faster code from deque_item() */ | ||
| 1054 | - for (i=0 ; i<start ; i++) { | ||
| 1053 | + for (i=0 ; i < start - BLOCKLEN ; i += BLOCKLEN) { | ||
| 1054 | + b = b->rightlink; | ||
| 1055 | + } | ||
| 1056 | + for ( ; i < start ; i++) { | ||
| 1055 | 1057 | index++; | |
| 1056 | 1058 | if (index == BLOCKLEN) { | |
| 1057 | 1059 | b = b->rightlink; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments