Ejemplo n.º 1
0
 def test_element_dynamic_with_instance_param(self):
     curve = Curve([1, 2, 3])
     inst = ParamClass(label='Test')
     applied = TestOperation(curve, label=inst.param.label)
     self.assertEqual(len(applied.streams), 1)
     self.assertIsInstance(applied.streams[0], Params)
     self.assertEqual(applied.streams[0].parameters, ['label'])
     self.assertEqual(applied[()], curve.relabel('Test'))
Ejemplo n.º 2
0
 def cb(X):
     return NdOverlay({i: Curve(np.arange(10) + i) for i in range(X)})
Ejemplo n.º 3
0
 def test_empty_element_visibility(self):
     curve = Curve([])
     plot = bokeh_renderer.get_plot(curve)
     self.assertTrue(plot.handles['glyph_renderer'].visible)
Ejemplo n.º 4
0
 def callback(i):
     return GridSpace({j: Curve([], label=str(j))
                       for j in range(i)}, 'X')
Ejemplo n.º 5
0
 def test_overlay_apply_ranges_disabled(self):
     overlay = (Curve(range(10)) * Curve(range(10))).options(
         'Curve', apply_ranges=False)
     plot = mpl_renderer.get_plot(overlay)
     self.assertTrue(all(
         np.isnan(e) for e in plot.get_extents(overlay, {})))
Ejemplo n.º 6
0
 def __call__(self):
     self.count += 1
     return Curve([1, 2, 3])
Ejemplo n.º 7
0
 def callback(i):
     return Layout([Curve([], label=str(j)) for j in range(i, i + 2)])
Ejemplo n.º 8
0
 def test_deep_getitem_cross_product_and_slice(self):
     fn = lambda i: Curve(np.arange(i))
     dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))])
     self.assertEqual(dmap[[10, 11, 12], 5:10],
                      dmap.clone([(i, fn(i)[5:10]) for i in range(10, 13)]))
Ejemplo n.º 9
0
 def test_deep_getitem_index_and_slice(self):
     fn = lambda i: Curve(np.arange(i))
     dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))])
     self.assertEqual(dmap[10, 5:10], fn(10)[5:10])
Ejemplo n.º 10
0
 def test_categorical_overlay_dimension_values(self):
     curve = Curve([('C', 1), ('B', 3)]).redim.values(x=['A', 'B', 'C'])
     scatter = Scatter([('A', 2)])
     plot = bokeh_renderer.get_plot(curve * scatter)
     x_range = plot.handles['x_range']
     self.assertEqual(x_range.factors, ['A', 'B', 'C'])
Ejemplo n.º 11
0
 def test_deep_getitem_bounded_kdims_and_vdims(self):
     fn = lambda i: Curve(np.arange(i))
     dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))])
     self.assertEqual(dmap[:, 5:10, 0:5][10], fn(10)[5:10, 0:5])
Ejemplo n.º 12
0
 def test_overlay_projection_propagates(self):
     overlay = Curve([]) * Curve([]).options(projection='custom')
     plot = bokeh_renderer.get_plot(overlay)
     self.assertEqual([p.projection for p in plot.subplots.values()],
                      ['custom', 'custom'])
Ejemplo n.º 13
0
 def test_overlay_projection_clashing(self):
     overlay = Curve([]).options(projection='polar') * Curve(
         []).options(projection='custom')
     with self.assertRaises(Exception):
         bokeh_renderer.get_plot(overlay)
Ejemplo n.º 14
0
 def test_element_data_aspect_responsive(self):
     curve = Curve([0, 2]).opts(data_aspect=1, responsive=True)
     plot = bokeh_renderer.get_plot(curve)
     self.assertEqual(plot.state.aspect_ratio, 0.5)
     self.assertEqual(plot.state.aspect_scale, 1)
     self.assertEqual(plot.state.sizing_mode, 'scale_both')
Ejemplo n.º 15
0
class TestApplyElement(ComparisonTestCase):

    def setUp(self):
        self.element = Curve([1, 2, 3])

    def test_element_apply_simple(self):
        applied = self.element.apply(lambda x: x.relabel('Test'))
        self.assertEqual(applied, self.element.relabel('Test'))

    def test_element_apply_method_as_string(self):
        applied = self.element.apply('relabel', label='Test')
        self.assertEqual(applied, self.element.relabel('Test'))

    def test_element_apply_with_kwarg(self):
        applied = self.element.apply(lambda x, label: x.relabel(label), label='Test')
        self.assertEqual(applied, self.element.relabel('Test'))

    def test_element_apply_not_dynamic_with_instance_param(self):
        pinst = ParamClass()
        applied = self.element.apply(lambda x, label: x.relabel(label), label=pinst.param.label, dynamic=False)
        self.assertEqual(applied, self.element.relabel('Test'))

    def test_element_apply_not_dynamic_with_method_string(self):
        pinst = ParamClass()
        applied = self.element.apply('relabel', dynamic=False, label=pinst.param.label)
        self.assertEqual(applied, self.element.relabel('Test'))

    def test_element_apply_not_dynamic_with_param_method(self):
        pinst = ParamClass()
        applied = self.element.apply(lambda x, label: x.relabel(label), label=pinst.dynamic_label, dynamic=False)
        self.assertEqual(applied, self.element.relabel('Test!'))

    def test_element_apply_dynamic(self):
        applied = self.element.apply(lambda x: x.relabel('Test'), dynamic=True)
        self.assertEqual(len(applied.streams), 0)
        self.assertEqual(applied[()], self.element.relabel('Test'))

    def test_element_apply_dynamic_with_kwarg(self):
        applied = self.element.apply(lambda x, label: x.relabel(label), dynamic=True, label='Test')
        self.assertEqual(len(applied.streams), 0)
        self.assertEqual(applied[()], self.element.relabel('Test'))

    def test_element_apply_dynamic_element_method(self):
        pinst = ParamClass()
        applied = self.element.apply(self.element.relabel, label=pinst.param.label)

        # Check stream
        self.assertEqual(len(applied.streams), 1)
        stream = applied.streams[0]
        self.assertIsInstance(stream, Params)
        self.assertEqual(stream.parameterized, pinst)
        self.assertEqual(stream.parameters, [pinst.param.label])

        # Check results
        self.assertEqual(applied[()], self.element.relabel('Test'))
        pinst.label = 'Another label'
        self.assertEqual(applied[()], self.element.relabel('Another label'))

    def test_element_apply_dynamic_with_instance_param(self):
        pinst = ParamClass()
        applied = self.element.apply(lambda x, label: x.relabel(label), label=pinst.param.label)

        # Check stream
        self.assertEqual(len(applied.streams), 1)
        stream = applied.streams[0]
        self.assertIsInstance(stream, Params)
        self.assertEqual(stream.parameterized, pinst)
        self.assertEqual(stream.parameters, [pinst.param.label])

        # Check results
        self.assertEqual(applied[()], self.element.relabel('Test'))
        pinst.label = 'Another label'
        self.assertEqual(applied[()], self.element.relabel('Another label'))

    def test_element_apply_param_method_with_dependencies(self):
        pinst = ParamClass()
        applied = self.element.apply(pinst.apply_label)

        # Check stream
        self.assertEqual(len(applied.streams), 1)
        stream = applied.streams[0]
        self.assertIsInstance(stream, ParamMethod)
        self.assertEqual(stream.parameterized, pinst)
        self.assertEqual(stream.parameters, [pinst.param.label])

        # Check results
        self.assertEqual(applied[()], self.element.relabel('Test'))
        pinst.label = 'Another label'
        self.assertEqual(applied[()], self.element.relabel('Another label'))

    def test_element_apply_dynamic_with_param_method(self):
        pinst = ParamClass()
        applied = self.element.apply(lambda x, label: x.relabel(label), label=pinst.dynamic_label)

        # Check stream
        self.assertEqual(len(applied.streams), 1)
        stream = applied.streams[0]
        self.assertIsInstance(stream, ParamMethod)
        self.assertEqual(stream.parameterized, pinst)
        self.assertEqual(stream.parameters, [pinst.param.label])

        # Check result
        self.assertEqual(applied[()], self.element.relabel('Test!'))
        pinst.label = 'Another label'
        self.assertEqual(applied[()], self.element.relabel('Another label!'))
Ejemplo n.º 16
0
 def test_deep_getitem_cache_sliced(self):
     fn = lambda i: Curve(np.arange(i))
     dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))])
     dmap[10]  # Add item to cache
     self.assertEqual(dmap[:, 5:10][10], fn(10)[5:10])
Ejemplo n.º 17
0
 def test_element_xaxis_top(self):
     curve = Curve(range(10)).options(xaxis='top')
     plot = bokeh_renderer.get_plot(curve)
     xaxis = plot.handles['xaxis']
     self.assertTrue(xaxis in plot.state.above)
Ejemplo n.º 18
0
 def test_deep_select_slice_kdim_and_vdims(self):
     fn = lambda i: Curve(np.arange(i))
     dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))])
     self.assertEqual(
         dmap.select(x=(5, 10), y=(0, 5))[10],
         fn(10)[5:10, 0:5])
Ejemplo n.º 19
0
 def callback(x):
     return Curve([1, 2, 3])
Ejemplo n.º 20
0
 def test_deep_select_slice_kdim_no_match(self):
     fn = lambda i: Curve(np.arange(i))
     dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))])
     self.assertEqual(dmap.select(DynamicMap, x=(5, 10))[10], fn(10))
Ejemplo n.º 21
0
 def callback(i):
     return NdLayout(
         {j: Curve([], label=str(j))
          for j in range(i, i + 2)})
Ejemplo n.º 22
0
 def test_deep_map_apply_element_function(self):
     fn = lambda i: Curve(np.arange(i))
     dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))])
     mapped = dmap.map(lambda x: x.clone(x.data * 2), Curve)
     curve = fn(10)
     self.assertEqual(mapped[10], curve.clone(curve.data * 2))
Ejemplo n.º 23
0
 def test_overlay_empty_layers(self):
     overlay = Curve(range(10)) * NdOverlay()
     plot = mpl_renderer.get_plot(overlay)
     self.assertEqual(len(plot.subplots), 1)
Ejemplo n.º 24
0
 def cb(i):
     if i % 2 == 0:
         return Curve([]) * Points([])
     else:
         return Scatter([]) * Curve([])
Ejemplo n.º 25
0
 def test_overlay_empty_element_extent(self):
     overlay = Curve([]).redim.range(x=(-10, 10)) * Scatter(
         []).redim.range(y=(-20, 20))
     plot = mpl_renderer.get_plot(overlay)
     extents = plot.get_extents(overlay, {})
     self.assertEqual(extents, (-10, -20, 10, 20))
Ejemplo n.º 26
0
 def setUp(self):
     self.dimstream = PointerX(x=0)
     self.stream = PointerY(y=0)
     self.dmap = DynamicMap(lambda x, y, z: Curve([x, y, z]),
                            kdims=['x', 'z'],
                            streams=[self.stream, self.dimstream])
Ejemplo n.º 27
0
 def test_element_show_frame_disabled(self):
     curve = Curve(range(10)).opts(plot=dict(show_frame=False))
     plot = bokeh_renderer.get_plot(curve).state
     self.assertEqual(plot.outline_line_alpha, 0)
Ejemplo n.º 28
0
 def test_dynamic_keydim_not_memoize(self):
     dmap = DynamicMap(lambda x: Curve([(0, x)]), kdims=['x'])
     self.assertEqual(dmap[0], Curve([(0, 0)]))
     self.assertEqual(dmap[1], Curve([(0, 1)]))
Ejemplo n.º 29
0
 def test_element_no_yaxis(self):
     curve = Curve(range(10)).opts(plot=dict(yaxis=None))
     plot = bokeh_renderer.get_plot(curve).state
     self.assertFalse(plot.yaxis[0].visible)
Ejemplo n.º 30
0
 def test_dynamic_keydim_memoize(self):
     dmap = DynamicMap(lambda x: Curve([(0, x)]), kdims=['x'])
     self.assertIs(dmap[0], dmap[0])
Ejemplo n.º 31
0
 def test_element_not_dynamic_with_param_method(self):
     curve = Curve([1, 2, 3])
     inst = ParamClass(label='Test')
     applied = TestOperation(curve, dynamic=False, label=inst.dynamic_label)
     self.assertEqual(applied, curve.relabel('Test!'))
Ejemplo n.º 32
0
 def history_callback(x, history=deque(maxlen=10)):
     if x is not None:
         history.append(x)
     return Curve(list(history))
Ejemplo n.º 33
0
 def setUp(self):
     self.element = Curve([1, 2, 3])
Ejemplo n.º 34
0
 def test_categorical_dimension_type(self):
     curve = Curve([]).redim.type(x=str)
     plot = bokeh_renderer.get_plot(curve)
     x_range = plot.handles['x_range']
     self.assertEqual(x_range.factors, [])