MCPcopy
hub / github.com/pydata/xarray / test_decode_cf_time_kwargs

Method test_decode_cf_time_kwargs

xarray/tests/test_conventions.py:531–574  ·  view source on GitHub ↗
(self, time_unit)

Source from the content-addressed store, hash-verified

529
530 @pytest.mark.parametrize("time_unit", ["s", "ms", "us", "ns"])
531 def test_decode_cf_time_kwargs(self, time_unit) -> None:
532 ds = Dataset.from_dict(
533 {
534 "coords": {
535 "timedelta": {
536 "data": np.array([1, 2, 3], dtype="int64"),
537 "dims": "timedelta",
538 "attrs": {"units": "days"},
539 },
540 "time": {
541 "data": np.array([1, 2, 3], dtype="int64"),
542 "dims": "time",
543 "attrs": {"units": "days since 2000-01-01"},
544 },
545 },
546 "dims": {"time": 3, "timedelta": 3},
547 "data_vars": {
548 "a": {"dims": ("time", "timedelta"), "data": np.ones((3, 3))},
549 },
550 }
551 )
552
553 dsc = conventions.decode_cf(
554 ds,
555 decode_times=CFDatetimeCoder(time_unit=time_unit),
556 decode_timedelta=CFTimedeltaCoder(
557 decode_via_units=True, time_unit=time_unit
558 ),
559 )
560 assert dsc.timedelta.dtype == np.dtype(f"m8[{time_unit}]")
561 assert dsc.time.dtype == np.dtype(f"M8[{time_unit}]")
562 dsc = conventions.decode_cf(ds, decode_times=False)
563 assert dsc.timedelta.dtype == np.dtype("int64")
564 assert dsc.time.dtype == np.dtype("int64")
565 dsc = conventions.decode_cf(
566 ds,
567 decode_times=CFDatetimeCoder(time_unit=time_unit),
568 decode_timedelta=False,
569 )
570 assert dsc.timedelta.dtype == np.dtype("int64")
571 assert dsc.time.dtype == np.dtype(f"M8[{time_unit}]")
572 dsc = conventions.decode_cf(ds, decode_times=False, decode_timedelta=True)
573 assert dsc.timedelta.dtype == np.dtype("m8[ns]")
574 assert dsc.time.dtype == np.dtype("int64")
575
576
577class CFEncodedInMemoryStore(WritableCFDataStore, InMemoryDataStore):

Callers

nothing calls this directly

Calls 4

CFDatetimeCoderClass · 0.85
CFTimedeltaCoderClass · 0.85
from_dictMethod · 0.45
dtypeMethod · 0.45

Tested by

no test coverage detected