Example #1
0
 def test_periodic_param_fn_blocking(self):
     def callback(x): return Curve([1,2,3])
     xval = Stream.define('x',x=0)()
     dmap = DynamicMap(callback, streams=[xval])
     # Add stream subscriber mocking plot
     xval.add_subscriber(lambda **kwargs: dmap[()])
     dmap.periodic(0.01, 100, param_fn=lambda i: {'x':i})
     self.assertEqual(xval.x, 100)
Example #2
0
 def test_periodic_param_fn_blocking(self):
     def callback(x): return Curve([1,2,3])
     xval = Stream.define('x',x=0)()
     dmap = DynamicMap(callback, streams=[xval])
     # Add stream subscriber mocking plot
     xval.add_subscriber(lambda **kwargs: dmap[()])
     dmap.periodic(0.01, 100, param_fn=lambda i: {'x':i})
     self.assertEqual(xval.x, 100)
Example #3
0
 def test_periodic_param_fn_blocking_timeout(self):
     def callback(x):
         return Curve([1,2,3])
     xval = Stream.define('x',x=0)()
     dmap = DynamicMap(callback, streams=[xval])
     # Add stream subscriber mocking plot
     xval.add_subscriber(lambda **kwargs: dmap[()])
     start = time.time()
     dmap.periodic(0.5, 100, param_fn=lambda i: {'x':i}, timeout=3)
     end = time.time()
     self.assertEqual((end - start) < 5, True)
Example #4
0
 def test_periodic_param_fn_blocking_timeout(self):
     def callback(x):
         return Curve([1,2,3])
     xval = Stream.define('x',x=0)()
     dmap = DynamicMap(callback, streams=[xval])
     # Add stream subscriber mocking plot
     xval.add_subscriber(lambda **kwargs: dmap[()])
     start = time.time()
     dmap.periodic(0.5, 100, param_fn=lambda i: {'x':i}, timeout=3)
     end = time.time()
     self.assertEqual((end - start) < 5, True)
Example #5
0
    def test_periodic_param_fn_non_blocking(self):
        def callback(x): return Curve([1,2,3])
        xval = Stream.define('x',x=0)()
        dmap = DynamicMap(callback, streams=[xval])
        # Add stream subscriber mocking plot
        xval.add_subscriber(lambda **kwargs: dmap[()])

        self.assertNotEqual(xval.x, 100)
        dmap.periodic(0.0001, 100, param_fn=lambda i: {'x': i}, block=False)
        time.sleep(2)
        if not dmap.periodic.instance.completed:
            raise RuntimeError('Periodic callback timed out.')
        dmap.periodic.stop()
        self.assertEqual(xval.x, 100)
Example #6
0
    def test_periodic_param_fn_non_blocking(self):
        def callback(x): return Curve([1,2,3])
        xval = Stream.define('x',x=0)()
        dmap = DynamicMap(callback, streams=[xval])
        # Add stream subscriber mocking plot
        xval.add_subscriber(lambda **kwargs: dmap[()])

        self.assertNotEqual(xval.x, 100)
        dmap.periodic(0.0001, 100, param_fn=lambda i: {'x': i}, block=False)
        time.sleep(2)
        if not dmap.periodic.instance.completed:
            raise RuntimeError('Periodic callback timed out.')
        dmap.periodic.stop()
        self.assertEqual(xval.x, 100)
Example #7
0
    def test_periodic_counter_blocking(self):
        class Counter(object):
            def __init__(self):
                self.count = 0
            def __call__(self):
                self.count += 1
                return Curve([1,2,3])

        next_stream = Stream.define('Next')()
        counter = Counter()
        dmap = DynamicMap(counter, streams=[next_stream])
        # Add stream subscriber mocking plot
        next_stream.add_subscriber(lambda **kwargs: dmap[()])
        dmap.periodic(0.01, 100)
        self.assertEqual(counter.count, 100)
Example #8
0
    def test_periodic_param_fn_non_blocking(self):
        def callback(x): return Curve([1,2,3])
        xval = Stream.define('x',x=0)()
        dmap = DynamicMap(callback, streams=[xval])
        # Add stream subscriber mocking plot
        xval.add_subscriber(lambda **kwargs: dmap[()])

        dmap.periodic(0.0001, 1000, param_fn=lambda i: {'x':i}, block=False)
        self.assertNotEqual(xval.x, 1000)
        for i in range(1000):
            time.sleep(0.01)
            if dmap.periodic.instance.completed:
                break
        dmap.periodic.stop()
        self.assertEqual(xval.x, 1000)
Example #9
0
    def test_periodic_counter_blocking(self):
        class Counter(object):
            def __init__(self):
                self.count = 0
            def __call__(self):
                self.count += 1
                return Curve([1,2,3])

        next_stream = Stream.define('Next')()
        counter = Counter()
        dmap = DynamicMap(counter, streams=[next_stream])
        # Add stream subscriber mocking plot
        next_stream.add_subscriber(lambda **kwargs: dmap[()])
        dmap.periodic(0.01, 100)
        self.assertEqual(counter.count, 100)
Example #10
0
    def test_periodic_param_fn_non_blocking(self):
        def callback(x): return Curve([1,2,3])
        xval = Stream.define('x',x=0)()
        dmap = DynamicMap(callback, streams=[xval])
        # Add stream subscriber mocking plot
        xval.add_subscriber(lambda **kwargs: dmap[()])

        dmap.periodic(0.0001, 1000, param_fn=lambda i: {'x':i}, block=False)
        self.assertNotEqual(xval.x, 1000)
        for i in range(1000):
            time.sleep(0.01)
            if dmap.periodic.instance.completed:
                break
        dmap.periodic.stop()
        self.assertEqual(xval.x, 1000)