(
units: str | None, dtype: np.dtype | None, time_unit: PDDatetimeUnitOptions
)
| 1764 | ("units", "dtype"), [("days", np.dtype("int32")), (None, None)] |
| 1765 | ) |
| 1766 | def test_encode_cf_timedelta_via_dask( |
| 1767 | units: str | None, dtype: np.dtype | None, time_unit: PDDatetimeUnitOptions |
| 1768 | ) -> None: |
| 1769 | import dask.array |
| 1770 | |
| 1771 | times_pd = pd.timedelta_range(start="0D", freq="D", periods=3, unit=time_unit) # type: ignore[call-arg,unused-ignore] |
| 1772 | times = dask.array.from_array(times_pd, chunks=1) |
| 1773 | encoded_times, encoding_units = encode_cf_timedelta(times, units, dtype) |
| 1774 | |
| 1775 | assert is_duck_dask_array(encoded_times) |
| 1776 | assert encoded_times.chunks == times.chunks |
| 1777 | |
| 1778 | if units is not None and dtype is not None: |
| 1779 | assert encoding_units == units |
| 1780 | assert encoded_times.dtype == dtype |
| 1781 | else: |
| 1782 | assert encoding_units == _numpy_to_netcdf_timeunit(time_unit) |
| 1783 | assert encoded_times.dtype == np.dtype("int64") |
| 1784 | |
| 1785 | decoded_times = decode_cf_timedelta( |
| 1786 | encoded_times, encoding_units, time_unit=time_unit |
| 1787 | ) |
| 1788 | np.testing.assert_equal(decoded_times, times) |
| 1789 | assert decoded_times.dtype == times.dtype |
| 1790 | |
| 1791 | |
| 1792 | @pytest.mark.parametrize("use_dask", [False, pytest.param(True, marks=requires_dask)]) |
nothing calls this directly
no test coverage detected
searching dependent graphs…