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

Method test_index

Lib/test/test_deque.py:252–296  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

250 self.assertRaises(IndexError, d.__getitem__, -1)
251
252 def test_index(self):
253 for n in 1, 2, 30, 40, 200:
254
255 d = deque(range(n))
256 for i in range(n):
257 self.assertEqual(d.index(i), i)
258
259 with self.assertRaises(ValueError):
260 d.index(n+1)
261
262 # Test detection of mutation during iteration
263 d = deque(range(n))
264 d[n//2] = MutateCmp(d, False)
265 with self.assertRaises(RuntimeError):
266 d.index(n)
267
268 # Test detection of comparison exceptions
269 d = deque(range(n))
270 d[n//2] = BadCmp()
271 with self.assertRaises(RuntimeError):
272 d.index(n)
273
274 # Test start and stop arguments behavior matches list.index()
275 elements = 'ABCDEFGHI'
276 nonelement = 'Z'
277 d = deque(elements * 2)
278 s = list(elements * 2)
279 for start in range(-5 - len(s)*2, 5 + len(s) * 2):
280 for stop in range(-5 - len(s)*2, 5 + len(s) * 2):
281 for element in elements + 'Z':
282 try:
283 target = s.index(element, start, stop)
284 except ValueError:
285 with self.assertRaises(ValueError):
286 d.index(element, start, stop)
287 else:
288 self.assertEqual(d.index(element, start, stop), target)
289
290 # Test large start argument
291 d = deque(range(0, 10000, 10))
292 for step in range(100):
293 i = d.index(8500, 700)
294 self.assertEqual(d[i], 8500)
295 # Repeat test with a different internal offset
296 d.rotate()
297
298 def test_index_bug_24913(self):
299 d = deque('A' * 3)

Callers

nothing calls this directly

Calls 7

MutateCmpClass · 0.85
listClass · 0.85
BadCmpClass · 0.70
assertEqualMethod · 0.45
indexMethod · 0.45
assertRaisesMethod · 0.45
rotateMethod · 0.45

Tested by

no test coverage detected