def test_dynamic_event_renaming_valid(self): def fn(x1, y1): return Scatter([(x1, y1)]) xy = PointerXY(rename={'x': 'x1', 'y': 'y1'}) dmap = DynamicMap(fn, kdims=[], streams=[xy]) dmap.event(x1=1, y1=2)
def test_dynamic_overlay_memoization(self): """Tests that Callable memoizes unchanged callbacks""" def fn(x, y): return Scatter([(x, y)]) dmap = DynamicMap(fn, kdims=[], streams=[PointerXY()]) counter = [0] def fn2(x, y): counter[0] += 1 return Image(np.random.rand(10, 10)) dmap2 = DynamicMap(fn2, kdims=[], streams=[PointerXY()]) overlaid = dmap * dmap2 overlay = overlaid[()] self.assertEqual(overlay.Scatter.I, fn(0, 0)) dmap.event(x=1, y=2) overlay = overlaid[()] # Ensure dmap return value was updated self.assertEqual(overlay.Scatter.I, fn(1, 2)) # Ensure dmap2 callback was called only once self.assertEqual(counter[0], 1)
def test_dynamic_event_renaming_valid(self): def fn(x1, y1): return Scatter([(x1, y1)]) xy = PointerXY(rename={'x':'x1','y':'y1'}) dmap = DynamicMap(fn, kdims=[], streams=[xy]) dmap.event(x1=1, y1=2)
def test_dynamic_event_renaming_invalid(self): def fn(x1, y1): return Scatter([(x1, y1)]) xy = PointerXY(rename={'x': 'x1', 'y': 'y1'}) dmap = DynamicMap(fn, kdims=[], streams=[xy]) regexp = '(.+?)do not correspond to stream parameters' with self.assertRaisesRegexp(KeyError, regexp): dmap.event(x=1, y=2)
def test_dynamic_event_renaming_invalid(self): def fn(x1, y1): return Scatter([(x1, y1)]) xy = PointerXY(rename={'x':'x1','y':'y1'}) dmap = DynamicMap(fn, kdims=[], streams=[xy]) regexp = '(.+?)do not correspond to stream parameters' with self.assertRaisesRegexp(KeyError, regexp): dmap.event(x=1, y=2)