def test_deep_apply_transform_element_type(self): fn = lambda i: Curve(np.arange(i)) dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))]) dmap[10] mapped = dmap.apply(lambda x: Scatter(x)) area = mapped[11] self.assertEqual(area, Scatter(fn(11)))
def test_deep_map_apply_element_function_with_stream_kwarg(self): stream = Stream.define('Test', label='New label')() fn = lambda i: Curve(np.arange(i)) dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))]) mapped = dmap.apply(lambda x, label: x.relabel(label), streams=[stream]) self.assertEqual(mapped[10], fn(10).relabel('New label'))
def test_deep_apply_element_param_function(self): fn = lambda i: Curve(np.arange(i)) class Test(param.Parameterized): a = param.Integer(default=1) test = Test() @param.depends(test.param.a) def op(obj, a): return obj.clone(obj.data*2) dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))]) mapped = dmap.apply(op) test.a = 2 curve = fn(10) self.assertEqual(mapped[10], curve.clone(curve.data*2))
def test_deep_apply_parameterized_method_with_dependency(self): class Test(param.Parameterized): label = param.String(default='label') @param.depends('label') def relabel(self, obj): return obj.relabel(self.label.title()) test = Test() fn = lambda i: Curve(np.arange(i)) dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))]) mapped = dmap.apply(test.relabel) curve = fn(10) self.assertEqual(mapped[10], curve.relabel('Label')) test.label = 'new label' self.assertEqual(mapped[10], curve.relabel('New Label'))
def test_deep_apply_parameterized_method_with_dependency_and_static_kwarg(self): class Test(param.Parameterized): label = param.String(default='label') @param.depends('label') def relabel(self, obj, group): return obj.relabel(self.label.title(), group) test = Test() fn = lambda i: Curve(np.arange(i)) dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))]) mapped = dmap.apply(test.relabel, group='Group') curve = fn(10) self.assertEqual(mapped[10], curve.relabel('Label', 'Group')) test.label = 'new label' self.assertEqual(mapped[10], curve.relabel('New Label', 'Group'))
def test_deep_map_apply_parameterized_method_with_stream_kwarg(self): class Test(param.Parameterized): label = param.String(default='label') @param.depends('label') def value(self): return self.label.title() test = Test() fn = lambda i: Curve(np.arange(i)) dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))]) mapped = dmap.apply(lambda x, label: x.relabel(label), label=test.value) curve = fn(10) self.assertEqual(mapped[10], curve.relabel('Label')) test.label = 'new label' self.assertEqual(mapped[10], curve.relabel('New Label'))
def test_deep_apply_element_function(self): fn = lambda i: Curve(np.arange(i)) dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))]) mapped = dmap.apply(lambda x: x.clone(x.data * 2)) curve = fn(10) self.assertEqual(mapped[10], curve.clone(curve.data * 2))
class TestApplyDynamicMap(ComparisonTestCase): def setUp(self): self.element = Curve([1, 2, 3]) self.dmap_unsampled = DynamicMap(lambda i: Curve([0, 1, i]), kdims='Y') self.dmap = self.dmap_unsampled.redim.values(Y=[0, 1, 2]) def test_dmap_apply_not_dynamic_unsampled(self): with self.assertRaises(ValueError): self.dmap_unsampled.apply(lambda x: x.relabel('Test'), dynamic=False) def test_dmap_apply_not_dynamic(self): applied = self.dmap.apply(lambda x: x.relabel('Test'), dynamic=False) self.assertEqual(applied, HoloMap(self.dmap[[0, 1, 2]]).relabel('Test')) def test_dmap_apply_not_dynamic_with_kwarg(self): applied = self.dmap.apply(lambda x, label: x.relabel(label), dynamic=False, label='Test') self.assertEqual(applied, HoloMap(self.dmap[[0, 1, 2]]).relabel('Test')) def test_dmap_apply_not_dynamic_with_instance_param(self): pinst = ParamClass() applied = self.dmap.apply(lambda x, label: x.relabel(label), label=pinst.param.label, dynamic=False) self.assertEqual(applied, HoloMap(self.dmap[[0, 1, 2]]).relabel('Test')) def test_dmap_apply_not_dynamic_with_param_method(self): pinst = ParamClass() applied = self.dmap.apply(lambda x, label: x.relabel(label), label=pinst.dynamic_label, dynamic=False) self.assertEqual(applied, HoloMap(self.dmap[[0, 1, 2]]).relabel('Test!')) def test_dmap_apply_dynamic(self): applied = self.dmap.apply(lambda x: x.relabel('Test')) self.assertEqual(len(applied.streams), 0) self.assertEqual(applied[1], self.dmap[1].relabel('Test')) def test_dmap_apply_dynamic_with_kwarg(self): applied = self.dmap.apply(lambda x, label: x.relabel(label), label='Test') self.assertEqual(len(applied.streams), 0) self.assertEqual(applied[1], self.dmap[1].relabel('Test')) def test_dmap_apply_dynamic_with_instance_param(self): pinst = ParamClass() applied = self.dmap.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, ['label']) # Check results self.assertEqual(applied[1], self.dmap[1].relabel('Test')) pinst.label = 'Another label' self.assertEqual(applied[1], self.dmap[1].relabel('Another label')) def test_dmap_apply_param_method_with_dependencies(self): pinst = ParamClass() applied = self.dmap.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, ['label']) # Check results self.assertEqual(applied[1], self.dmap[1].relabel('Test')) pinst.label = 'Another label' self.assertEqual(applied[1], self.dmap[1].relabel('Another label')) def test_dmap_apply_dynamic_with_param_method(self): pinst = ParamClass() applied = self.dmap.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, ['label']) # Check result self.assertEqual(applied[1], self.dmap[1].relabel('Test!')) pinst.label = 'Another label' self.assertEqual(applied[1], self.dmap[1].relabel('Another label!'))
class TestApplyDynamicMap(ComparisonTestCase): def setUp(self): self.element = Curve([1, 2, 3]) self.dmap_unsampled = DynamicMap(lambda i: Curve([0, 1, i]), kdims='Y') self.dmap = self.dmap_unsampled.redim.values(Y=[0, 1, 2]) def test_dmap_apply_not_dynamic_unsampled(self): with self.assertRaises(ValueError): self.dmap_unsampled.apply(lambda x: x.relabel('Test'), dynamic=False) def test_dmap_apply_not_dynamic(self): applied = self.dmap.apply(lambda x: x.relabel('Test'), dynamic=False) self.assertEqual(applied, HoloMap(self.dmap[[0, 1, 2]]).relabel('Test')) def test_dmap_apply_not_dynamic_with_kwarg(self): applied = self.dmap.apply(lambda x, label: x.relabel(label), dynamic=False, label='Test') self.assertEqual(applied, HoloMap(self.dmap[[0, 1, 2]]).relabel('Test')) def test_dmap_apply_not_dynamic_with_instance_param(self): pinst = ParamClass() applied = self.dmap.apply(lambda x, label: x.relabel(label), label=pinst.param.label, dynamic=False) self.assertEqual(applied, HoloMap(self.dmap[[0, 1, 2]]).relabel('Test')) def test_dmap_apply_not_dynamic_with_param_method(self): pinst = ParamClass() applied = self.dmap.apply(lambda x, label: x.relabel(label), label=pinst.dynamic_label, dynamic=False) self.assertEqual(applied, HoloMap(self.dmap[[0, 1, 2]]).relabel('Test!')) def test_dmap_apply_dynamic(self): applied = self.dmap.apply(lambda x: x.relabel('Test')) self.assertEqual(len(applied.streams), 0) self.assertEqual(applied[1], self.dmap[1].relabel('Test')) def test_element_apply_method_as_string(self): applied = self.dmap.apply('relabel', label='Test') self.assertEqual(applied[1], self.dmap[1].relabel('Test')) def test_dmap_apply_dynamic_with_kwarg(self): applied = self.dmap.apply(lambda x, label: x.relabel(label), label='Test') self.assertEqual(len(applied.streams), 0) self.assertEqual(applied[1], self.dmap[1].relabel('Test')) def test_dmap_apply_dynamic_with_instance_param(self): pinst = ParamClass() applied = self.dmap.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[1], self.dmap[1].relabel('Test')) pinst.label = 'Another label' self.assertEqual(applied[1], self.dmap[1].relabel('Another label')) def test_dmap_apply_method_as_string_with_instance_param(self): pinst = ParamClass() applied = self.dmap.apply('relabel', label=pinst.param.label) self.assertEqual(applied[1], self.dmap[1].relabel('Test')) pinst.label = 'Another label' self.assertEqual(applied[1], self.dmap[1].relabel('Another label')) def test_dmap_apply_param_method_with_dependencies(self): pinst = ParamClass() applied = self.dmap.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[1], self.dmap[1].relabel('Test')) pinst.label = 'Another label' self.assertEqual(applied[1], self.dmap[1].relabel('Another label')) def test_dmap_apply_dynamic_with_param_method(self): pinst = ParamClass() applied = self.dmap.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[1], self.dmap[1].relabel('Test!')) pinst.label = 'Another label' self.assertEqual(applied[1], self.dmap[1].relabel('Another label!'))
def test_deep_apply_element_function(self): fn = lambda i: Curve(np.arange(i)) dmap = DynamicMap(fn, kdims=[Dimension('Test', range=(10, 20))]) mapped = dmap.apply(lambda x: x.clone(x.data*2)) curve = fn(10) self.assertEqual(mapped[10], curve.clone(curve.data*2))