def test_sample_datetime_yaxis(self): start = np.datetime64(dt.datetime.today()) end = start+np.timedelta64(1, 's') ys = date_range(start, end, 10) image = Image((self.xs, ys, self.array)) curve = image.sample(y=ys[3]) self.assertEqual(curve, Curve((self.xs, self.array[3]), 'x', 'z'))
def _generate_plots(self): dynamic_plots = [] for kw in [dict(sheet=sheet) for sheet in self.sheets()]: sheet = kw['sheet'] views = topo.sim.views[sheet.name].Maps im = Image(sheet.input_generator(), bounds=sheet.bounds) im.metadata=AttrDict(timestamp=topo.sim.time()) if 'Activity' not in views: views['Activity'] = NdMapping((topo.sim.time(), im)) views['Activity'].metadata = AttrDict(precedence=sheet.precedence, row_precedence=sheet.row_precedence, src_name=sheet.name, timestamp=topo.sim.time()) else: views['Activity'][topo.sim.time()] = im channels = {'Strength': 'Activity','Hue':None,'Confidence':None} view = topo.sim.views[sheet.name].Maps view_dict = {'Strength':view,'Hue':view,'Confidence':view} ### JCALERT! it is not good to have to pass '' here... maybe a test in plot would be better dynamic_plots.append(make_template_plot(channels, view_dict, sheet.xdensity,sheet.bounds,self.normalize, name='')) return self._static_plots[:]+dynamic_plots
def callback(x, y): return Image(np.array([[0, 1], [2, 3]])) + Image( np.array([[0, 1], [2, 3]]))
def fn2(x, y): counter[0] += 1 return Image(np.random.rand(10, 10))
def test_dynamic_operation_init_stream_params(self): img = Image(sine_array(0, 5)) stream = Stream.define('TestStream', bin_range=None)() histogram(img, bin_range=(0, 1), streams=[stream], dynamic=True) self.assertEqual(stream.bin_range, (0, 1))
def test_dynamic_operation_on_hmap(self): hmap = HoloMap({i: Image(sine_array(0, i)) for i in range(10)}) dmap = Dynamic(hmap, operation=lambda x: x) self.assertEqual(dmap.kdims[0].name, hmap.kdims[0].name) self.assertEqual(dmap.kdims[0].values, hmap.keys())
def test_sampled_unbounded_resample(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']) self.assertEqual(dmap[{0, 1, 2}].keys(), [0, 1, 2]) self.assertEqual(dmap.unbounded, ['i'])
def test_callable_bounded_clone(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=[Dimension('dim', range=(0, 10))]) self.assertEqual(dmap, dmap.clone()) self.assertEqual(dmap.unbounded, [])
def test_colormapper_clims(self): img = Image(np.array([[0, 1], [2, 3]])).options(clims=(0, 4)) plot = mpl_renderer.get_plot(img) artist = plot.handles['artist'] self.assertEqual(artist.get_clim(), (0, 4))
def test_redim_dimension_range_aux(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']).redim.range(i=(0, 1)) self.assertEqual(dmap.kdims[0].range, (0, 1))
def callback(x, y): return NdLayout( {i: Image(np.array([[i, 1], [2, 3]])) for i in range(1, 3)})
def test_redim_dimension_name(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']).redim(i='New') self.assertEqual(dmap.kdims[0].name, 'New')
def test_layout_empty_subplots(self): layout = Curve(range(10)) + NdOverlay() + HoloMap() + HoloMap( {1: Image(np.random.rand(10, 10))}) plot = mpl_renderer.get_plot(layout) self.assertEqual(len(plot.subplots.values()), 2)
def test_colormapper_transparent_nan(self): img = Image(np.array( [[0, 1], [2, 3]])).options(clipping_colors={'NaN': 'transparent'}) plot = mpl_renderer.get_plot(img) cmap = plot.handles['artist'].cmap self.assertEqual(cmap._rgba_bad, (1.0, 1.0, 1.0, 0))
def test_colormapper_color_levels(self): img = Image(np.array([[0, 1], [2, 3]])).options(color_levels=5) plot = mpl_renderer.get_plot(img) artist = plot.handles['artist'] self.assertEqual(len(artist.cmap.colors), 5)
def test_dimension_values_datetime_ycoords(self): start = np.datetime64(dt.datetime.today()) end = start+np.timedelta64(1, 's') ys = date_range(start, end, 10) image = Image((self.xs, ys, self.array)) self.assertEqual(image.dimension_values(1, expanded=False), ys)
def callback(): return GridSpace({(i, j): Image(np.array([[i, j], [2, 3]])) for i in range(1, 3) for j in range(1, 3)})
def test_deep_redim_dimension_name_with_spec(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']).redim(Image, x='X') self.assertEqual(dmap[0].kdims[0].name, 'X')
def test_colormapper_symmetric(self): img = Image(np.array([[0, 1], [2, 3]])).options(symmetric=True) plot = bokeh_renderer.get_plot(img) cmapper = plot.handles['color_mapper'] self.assertEqual(cmapper.low, -3) self.assertEqual(cmapper.high, 3)
def test_sampled_unbounded_init(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']) self.assertEqual(dmap.unbounded, ['i'])
def test_colormapper_color_levels(self): img = Image(np.array([[0, 1], [2, 3]])).options(color_levels=5) plot = bokeh_renderer.get_plot(img) cmapper = plot.handles['color_mapper'] self.assertEqual(len(cmapper.palette), 5)
def test_dynamic_operation(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']) dmap_with_fn = Dynamic(dmap, operation=lambda x: x.clone(x.data * 2)) self.assertEqual(dmap_with_fn[5], Image(sine_array(0, 5) * 2))
def test_colormapper_transparent_nan(self): img = Image(np.array([[0, 1], [2, 3]])).options(clipping_colors={'NaN': 'transparent'}) plot = bokeh_renderer.get_plot(img) cmapper = plot.handles['color_mapper'] self.assertEqual(cmapper.nan_color, 'rgba(0, 0, 0, 0)')
def test_dynamic_operation_init_renamed_stream_params(self): img = Image(sine_array(0, 5)) stream = RangeX(rename={'x_range': 'bin_range'}) histogram(img, bin_range=(0, 1), streams=[stream], dynamic=True) self.assertEqual(stream.x_range, (0, 1))
def test_colormapper_min_max_colors(self): img = Image(np.array([[0, 1], [2, 3]])).options(clipping_colors={'min': 'red', 'max': 'blue'}) plot = bokeh_renderer.get_plot(img) cmapper = plot.handles['color_mapper'] self.assertEqual(cmapper.low_color, 'red') self.assertEqual(cmapper.high_color, 'blue')
def test_dynamic_element_underlay(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']) dynamic_overlay = Image(sine_array(0, 10)) * dmap overlaid = Image(sine_array(0, 10)) * Image(sine_array(0, 5)) self.assertEqual(dynamic_overlay[5], overlaid)
def test_distribution_from_image(self): dist = Distribution(Image(np.arange(5) * np.arange(5)[:, np.newaxis]), 'z') self.assertEqual(dist.range(0), (0, 16))
def test_deep_relabel_label(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']).relabel(label='Test') self.assertEqual(dmap[0].label, 'Test')
def test_image_colormapping(self): img = Image(np.random.rand(10, 10))(plot=dict(logz=True)) self._test_colormapping(img, 2, True)
def callback(x, y): return Image(np.array([[0, 1], [2, 3]])) + Text(0, 0, 'Test')
def test_layout_title_show_title_false(self): hmap1 = HoloMap({a: Image(np.random.rand(10, 10)) for a in range(3)}) hmap2 = HoloMap({a: Image(np.random.rand(10, 10)) for a in range(3)}) layout = Layout([hmap1, hmap2])(plot=dict(show_title=False)) plot = bokeh_renderer.get_plot(layout) self.assertTrue('title' not in plot.handles)
def test_range_datetime_ydim(self): start = np.datetime64(dt.datetime.today()) end = start+np.timedelta64(1, 's') ys = date_range(start, end, 10) image = Image((self.xs, ys, self.array)) self.assertEqual(image.range(1), (start, end))
def test_redim_dimension_unit_aux(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']).redim.unit(i='m/s') self.assertEqual(dmap.kdims[0].unit, 'm/s')
def test_image_sample(self): image = Image(self.array1) self.assertEqual(image.sample(y=0.25), Curve(np.array([(-0.333333, 0), (0, 1), (0.333333, 2)]), kdims=['x'], vdims=['z']))
def test_redim_dimension_type_aux(self): fn = lambda i: Image(sine_array(0, i)) dmap = DynamicMap(fn, kdims=['i']).redim.type(i=int) self.assertEqual(dmap.kdims[0].type, int)