From 4a8caa95176cfea95e83ce7ad8f55e00f218cb07 Mon Sep 17 00:00:00 2001 From: Philipp Rudiger Date: Wed, 8 Jun 2016 11:38:22 +0100 Subject: [PATCH] Added unit tests for redim method --- tests/testdataset.py | 11 +++++++++++ tests/testdimensions.py | 21 ++++++++++++++++++++- tests/testndmapping.py | 21 +++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/tests/testdataset.py b/tests/testdataset.py index 4b8e3b268e..634436b0d4 100644 --- a/tests/testdataset.py +++ b/tests/testdataset.py @@ -83,6 +83,17 @@ def test_dataset_sort_vdim_hm(self): kdims=['x'], vdims=['y']) self.assertEqual(dataset.sort('y'), dataset_sorted) + + def test_dataset_redim_hm_kdim(self): + redimmed = self.dataset_hm.redim(x='Time') + self.assertEqual(redimmed.dimension_values('Time'), + self.dataset_hm.dimension_values('x')) + + def test_dataset_redim_hm_vdim(self): + redimmed = self.dataset_hm.redim(y='Value') + self.assertEqual(redimmed.dimension_values('Value'), + self.dataset_hm.dimension_values('y')) + def test_dataset_sample_hm(self): samples = self.dataset_hm.sample([0, 5, 10]).dimension_values('y') self.assertEqual(samples, np.array([0, 10, 20])) diff --git a/tests/testdimensions.py b/tests/testdimensions.py index b0b5aca3fe..9d4af1398d 100644 --- a/tests/testdimensions.py +++ b/tests/testdimensions.py @@ -1,7 +1,7 @@ """ Test cases for Dimension and Dimensioned object behaviour. """ -from holoviews.core import Dimensioned +from holoviews.core import Dimensioned, Dimension from holoviews.element.comparison import ComparisonTestCase @@ -18,3 +18,22 @@ def test_dimensioned_constant_label(self): view.label = 'another label' raise AssertionError("Label should be a constant parameter.") except TypeError: pass + + def test_dimensionsed_redim_string(self): + dimensioned = Dimensioned('Arbitrary Data', kdims=['x']) + redimensioned = dimensioned.clone(kdims=['Test']) + self.assertEqual(redimensioned, dimensioned.redim(x='Test')) + + def test_dimensionsed_redim_dimension(self): + dimensioned = Dimensioned('Arbitrary Data', kdims=['x']) + redimensioned = dimensioned.clone(kdims=['Test']) + self.assertEqual(redimensioned, dimensioned.redim(x=Dimension('Test'))) + + def test_dimensionsed_redim_dict(self): + dimensioned = Dimensioned('Arbitrary Data', kdims=['x']) + redimensioned = dimensioned.clone(kdims=['Test']) + self.assertEqual(redimensioned, dimensioned.redim(x={'name': 'Test'})) + + def test_dimensionsed_redim_dict_range(self): + redimensioned = Dimensioned('Arbitrary Data', kdims=['x']).redim(x={'range': (0, 10)}) + self.assertEqual(redimensioned.kdims[0].range, (0, 10)) diff --git a/tests/testndmapping.py b/tests/testndmapping.py index 8e7f23ce59..257d428fc4 100644 --- a/tests/testndmapping.py +++ b/tests/testndmapping.py @@ -97,6 +97,12 @@ def test_idxmapping_reindex(self): self.assertEqual([d.name for d in reduced_ndmap.kdims], reduced_dims) + def test_idxmapping_redim(self): + data = [((0, 0.5), 'a'), ((1, 0.5), 'b')] + ndmap = MultiDimensionalMapping(data, kdims=[self.dim1, self.dim2]) + redimmed = ndmap.redim(intdim='Integer') + self.assertEqual(redimmed.kdims, [Dimension('Integer'), Dimension('floatdim')]) + def test_idxmapping_add_dimension(self): ndmap = MultiDimensionalMapping(self.init_items_1D_list, kdims=[self.dim1]) ndmap2d = ndmap.add_dimension(self.dim2, 0, 0.5) @@ -136,6 +142,21 @@ def setUp(self): self.columns = Dataset(np.column_stack([self.xs, self.y_ints]), kdims=['x'], vdims=['y']) + def test_holomap_redim(self): + hmap = HoloMap({i: Dataset({'x':self.xs, 'y': self.ys * i}, + kdims=['x'], vdims=['y']) + for i in range(10)}, kdims=['z']) + redimmed = hmap.redim(x='Time') + self.assertEqual(redimmed.dimensions('all', True), + ['z', 'Time', 'y']) + + def test_holomap_redim_nested(self): + hmap = HoloMap({i: Dataset({'x':self.xs, 'y': self.ys * i}, + kdims=['x'], vdims=['y']) + for i in range(10)}, kdims=['z']) + redimmed = hmap.redim(x='Time', z='Magnitude') + self.assertEqual(redimmed.dimensions('all', True), + ['Magnitude', 'Time', 'y']) def test_columns_collapse_heterogeneous(self): collapsed = HoloMap({i: Dataset({'x':self.xs, 'y': self.ys * i},