Пример #1
0
 def test_mergemap(self):
     marbles = ['A   B    C    D', '_1   2  3    4', '__K   L     M   N']
     event = Event.range(3) \
         .mergemap(lambda v: Event.marble(marbles[v]))
     self.assertEqual(
         event.run(),
         ['A', '1', 'K', 'B', '2', 'L', '3', 'C', 'M', '4', 'D', 'N'])
Пример #2
0
 def test_switchmap(self):
     marbles = [
         'A    B    C    D           ',
         '_                 K    L      M   N', '__      1    2      3    4'
     ]
     event = Event.range(3) \
         .switchmap(lambda v: Event.marble(marbles[v]))
     self.assertEqual(event.run(), ['A', 'B', '1', '2', 'K', 'L', 'M', 'N'])
Пример #3
0
    def test_async_map_unordered(self):
        class A():
            def __init__(self):
                self.t = 0.1

            async def coro(self, x):
                self.t -= 0.01
                await asyncio.sleep(self.t)
                return x * x

        a = A()
        event = Event.range(10).map(a.coro, ordered=False)
        self.assertEqual(event.run(), [i * i for i in reversed(range(10))])
Пример #4
0
 def test_debounce_on_first(self):
     event = Event.range(10, interval=0.05) \
         .mergemap(lambda t: Event.sequence(array2, 0.001)) \
         .debounce(0.02, on_first=True)
     self.assertEqual(event.run(), [100] * 10)
Пример #5
0
 def test_sample(self):
     timer = Event.timer(0.021, 4)
     event = Event.range(10, interval=0.01).sample(timer)
     self.assertEqual(event.run(), [2, 4, 6, 8])
Пример #6
0
 def test_fork(self):
     event = Event.range(4, 10)[ev.Min, ev.Max, ev.Op().sum()].zip()
     self.assertEqual(event.run(), [
         (4, 4, 4), (4, 5, 9), (4, 6, 15), (4, 7, 22),
         (4, 8, 30), (4, 9, 39)])
Пример #7
0
 def test_mergemap2(self):
     a = ['ABC', 'UVW', 'XYZ']
     event = Event.range(3, interval=0.01) \
         .mergemap(lambda v: Event.sequence(a[v], 0.05 * v))
     self.assertEqual(event.run(),
                      ['A', 'B', 'C', 'U', 'X', 'V', 'W', 'Y', 'Z'])