Correct runs and runs_where.

debian-sid
Tom Payne 15 years ago
parent bb6daec314
commit 42ac8362ec

@ -88,6 +88,7 @@ def runs(seq):
start, current = generator.next()
except StopIteration:
return
index = 0
for index, element in generator:
if element != current:
yield slice(start, index)
@ -101,6 +102,7 @@ def runs_where(seq):
start, current = generator.next()
except StopIteration:
return
index = 0
for index, element in generator:
if element != current:
if current:

@ -23,7 +23,7 @@ import unittest
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..'))
from igc2kmz.util import find_first_ge, salient
from igc2kmz.util import find_first_ge, salient, runs_where
class TestFindFirstGE(unittest.TestCase):
@ -131,5 +131,23 @@ class TestSalient(unittest.TestCase):
self.assertEqual(salient([0,2,4,6,8,7,6,7,8,7], 3), [0, 9])
class TestRunsWhere(unittest.TestCase):
def test_1(self):
self.assertEqual(list(runs_where([])), [])
def test_2(self):
self.assertEqual(list(runs_where([True])), [slice(0, 1)])
def test_3(self):
self.assertEqual(list(runs_where([False])), [])
def test_4(self):
self.assertEqual(list(runs_where([True, False])), [slice(0, 1)])
def test_5(self):
self.assertEqual(list(runs_where([False, True])), [slice(1, 2)])
if __name__ == '__main__':
unittest.main()

Loading…
Cancel
Save