[issue23086] Add start and stop parameters to the Sequence.index() ABC mixin method
Raymond Hettinger
report at bugs.python.org
Wed Jan 7 07:48:26 CET 2015
Raymond Hettinger added the comment:
This test looks like it may have been a typo:
self.assertEqual(seq.index('a'), 0, 1)
Also, it would be nice to investigate the differences with list.index() and str.index() for the corner cases. Something along these lines:
# Compare Sequence.index() behavior to list.index() behavior
listseq = list('abracadabra')
seqseq = SequenceSubclass(listseq)
for start in range(-3, len(listseq) + 3):
for stop in range(-3, len(listseq) + 3):
for letter in set(listseq + ['z']):
try:
expected = listseq.index(letter, start, stop)
except ValueError:
with self.assertRaises(ValueError):
seqseq.index(letter, start, stop)
else:
actual = seqseq.index(letter, start, stop)
self.assertEqual(actual, expected, (letter, start, stop))
# Compare Sequence.index() behavior to str.index() behavior
strseq = 'abracadabra'
seqseq = SequenceSubclass(strseq)
for start in range(-3, len(strseq) + 3):
for stop in range(-3, len(strseq) + 3):
for letter in set(strseq + 'z'):
try:
expected = strseq.index(letter, start, stop)
except ValueError:
with self.assertRaises(ValueError):
seqseq.index(letter, start, stop)
else:
actual = seqseq.index(letter, start, stop)
self.assertEqual(actual, expected, (letter, start, stop)
----------
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue23086>
_______________________________________
More information about the Python-bugs-list
mailing list