def test_from_tuple(self): # numerical, step c = UniformCoordinates1d.from_tuple((0, 10, 0.5)) assert c.start == 0.0 assert c.stop == 10.0 assert c.step == 0.5 # numerical, size c = UniformCoordinates1d.from_tuple((0, 10, 20)) assert c.start == 0.0 assert c.stop == 10.0 assert c.size == 20 # datetime, step c = UniformCoordinates1d.from_tuple( ("2018-01-01", "2018-01-04", "1,D")) assert c.start == np.datetime64("2018-01-01") assert c.stop == np.datetime64("2018-01-04") assert c.step == np.timedelta64(1, "D") # invalid with pytest.raises( ValueError, match="UniformCoordinates1d.from_tuple expects a tuple"): UniformCoordinates1d.from_tuple((0, 10)) with pytest.raises( ValueError, match="UniformCoordinates1d.from_tuple expects a tuple"): UniformCoordinates1d.from_tuple(np.array([0, 10, 0.5]))
def test_from_tuple(self): # numerical, step c = UniformCoordinates1d.from_tuple((0, 10, 0.5)) assert c.start == 0. assert c.stop == 10. assert c.step == 0.5 # numerical, size c = UniformCoordinates1d.from_tuple((0, 10, 20)) assert c.start == 0. assert c.stop == 10. assert c.size == 20 # datetime, step c = UniformCoordinates1d.from_tuple( ('2018-01-01', '2018-01-04', '1,D')) assert c.start == np.datetime64('2018-01-01') assert c.stop == np.datetime64('2018-01-04') assert c.step == np.timedelta64(1, 'D') # invalid with pytest.raises( ValueError, match= "UniformCoordinates1d.from_tuple expects a tuple of \(start, stop, step/size\)" ): UniformCoordinates1d.from_tuple((0, 10)) with pytest.raises( ValueError, match= "UniformCoordinates1d.from_tuple expects a tuple of \(start, stop, step/size\)" ): UniformCoordinates1d.from_tuple(np.array([0, 10, 0.5]))
def _coords_from_dict(d, order=None): if sys.version < '3.6': if order is None and len(d) > 1: raise TypeError('order required') if order is not None: if set(order) != set(d): raise ValueError("order %s does not match dims %s" % (order, d)) else: order = d.keys() coords = [] for dim in order: if isinstance(d[dim], Coordinates1d): c = d[dim].copy(name=dim) elif isinstance(d[dim], tuple): c = UniformCoordinates1d.from_tuple(d[dim], name=dim) else: c = ArrayCoordinates1d(d[dim], name=dim) coords.append(c) return coords