コード例 #1
0
    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]))
コード例 #2
0
    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]))
コード例 #3
0
    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