def test_image_selection_numeric(self): img = Image(([0, 1, 2], [0, 1, 2, 3], np.random.rand(4, 3))) expr, bbox, region = img._get_selection_expr_for_stream_value( bounds=(0.5, 1.5, 2.1, 3.1)) self.assertEqual(bbox, {'x': (0.5, 2.1), 'y': (1.5, 3.1)}) self.assertEqual( expr.apply(img, expanded=True, flat=False), np.array([[False, False, False], [False, False, False], [False, True, True], [False, True, True]])) self.assertEqual(region, Rectangles([(0.5, 1.5, 2.1, 3.1)]) * Path([]))
def test_img_selection_geom_inverted(self): img = Image(([0, 1, 2], [0, 1, 2, 3], np.random.rand(4, 3))).opts(invert_axes=True) geom = np.array([(-0.4, -0.1), (0.6, -0.1), (0.4, 1.7), (-0.1, 1.7)]) expr, bbox, region = img._get_selection_expr_for_stream_value(geometry=geom) self.assertEqual(bbox, {'y': np.array([-0.4, 0.6, 0.4, -0.1]), 'x': np.array([-0.1, -0.1, 1.7, 1.7])}) self.assertEqual(expr.apply(img, expanded=True, flat=False), np.array([ [ True, True, False], [ False, False, False], [ False, False, False], [False, False, False] ])) self.assertEqual(region, Rectangles([]) * Path([list(geom)+[(-0.4, -0.1)]]))