|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
3 | 3 | import numpy as np |
| 4 | +import pytest |
4 | 5 |
|
5 | 6 | import holoviews as hv |
6 | 7 | from holoviews.core.ndmapping import MultiDimensionalMapping, UniformNdMapping |
@@ -127,6 +128,35 @@ def test_ndmapping_slice_upper_bound_exclusive2_float(self): |
127 | 128 | ndmap = hv.NdMapping(self.init_item_odict, kdims=[self.dim1, self.dim2]) |
128 | 129 | assert ndmap[:, 0.0:3.0].keys() == [(1, 2.0)] |
129 | 130 |
|
| 131 | + @pytest.mark.parametrize( |
| 132 | + ("kdims", "data", "keys"), |
| 133 | + [ |
| 134 | + ([hv.Dimension("x", values=[1, 2]), "y"], {(1, 0.5): "a", (2, 0.5): "b"}, {(1, 0.5)}), |
| 135 | + ( |
| 136 | + [hv.Dimension("x", values=["1", "2"]), "y"], |
| 137 | + {("1", 0.5): "a", ("2", 0.5): "b"}, |
| 138 | + {("1", 0.5)}, |
| 139 | + ), |
| 140 | + ( |
| 141 | + ["x", hv.Dimension("y", values=[0.5, 1.5])], |
| 142 | + {(1, 0.5): "a", (1, 1.5): "b"}, |
| 143 | + {(1, 0.5)}, |
| 144 | + ), |
| 145 | + ( |
| 146 | + [hv.Dimension("x", values=[1, 2]), "y"], |
| 147 | + {(1, 0.5): "a", (2, 0.5): "b"}, |
| 148 | + {(1, 0.5), (2, 0.5)}, |
| 149 | + ), |
| 150 | + ], |
| 151 | + ids=["int_values_first", "str_values_first", "int_values_on_second", "multi_key"], |
| 152 | + ) |
| 153 | + def test_explicit_tuple_set_slicing(self, kdims, data, keys): |
| 154 | + ndmap = hv.NdMapping(data, kdims=kdims) |
| 155 | + result = ndmap[keys] |
| 156 | + assert len(result) == len(keys) |
| 157 | + for key in keys: |
| 158 | + assert key in result.data |
| 159 | + |
130 | 160 | def test_idxmapping_unsorted(self): |
131 | 161 | data = [("B", 1), ("C", 2), ("A", 3)] |
132 | 162 | ndmap = MultiDimensionalMapping(data, sort=False) |
|
0 commit comments