parse_ranges: support for single digits, Bonus2.
This commit is contained in:
parent
b1e27e7699
commit
378c9636f4
|
|
@ -16,4 +16,16 @@ def parse_ranges_v2(range_string):
|
|||
yield number
|
||||
|
||||
|
||||
parse_ranges = parse_ranges_v2
|
||||
def parse_ranges_v3(range_string):
|
||||
"""This version handles single digits, Bonus2."""
|
||||
ranges = [tuple(map(int, r.split("-"))) for r in range_string.split(",")]
|
||||
for limits in ranges:
|
||||
if len(limits) == 1:
|
||||
yield limits[0]
|
||||
else:
|
||||
start, stop = limits
|
||||
for number in range(start, stop + 1):
|
||||
yield number
|
||||
|
||||
|
||||
parse_ranges = parse_ranges_v3
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ class ParseRangesTests(unittest.TestCase):
|
|||
numbers = parse_ranges("100-1000000000000")
|
||||
self.assertEqual(next(numbers), 100)
|
||||
|
||||
@unittest.expectedFailure
|
||||
def test_with_individual_numbers(self):
|
||||
self.assertEqual(
|
||||
list(parse_ranges("0,4-8,20,43-45")), [0, 4, 5, 6, 7, 8, 20, 43, 44, 45]
|
||||
|
|
|
|||
Loading…
Reference in a new issue