Skip to content

Commit

Permalink
MRC -- Selecting with string for cftime
Browse files Browse the repository at this point in the history
See discussion in pydata#9138

This commit and pull request mostly serves as a staging group for a
potential fix.

Test with:

```
pytest xarray/tests/test_cftimeindex.py::test_cftime_noleap_with_str
```
  • Loading branch information
hmaarrfk committed Jun 29, 2024
1 parent 42ed6d3 commit 9c0967e
Showing 1 changed file with 24 additions and 0 deletions.
24 changes: 24 additions & 0 deletions xarray/tests/test_cftimeindex.py
Original file line number Diff line number Diff line change
Expand Up @@ -988,6 +988,30 @@ def test_cftimeindex_calendar_property(calendar, expected):
assert index.calendar == expected


def test_cftime_noleap_with_str():
time=xr.cftime_range('2000-01-01','2006-01-01', freq='D', calendar='noleap')
temperature = np.ones(len(time))
da = xr.DataArray(
data=temperature,
dims=["time"],
coords=dict(time=time,),
)
out=da.sel(time=slice('2001','2002')) # works if array is built with cftime
da1=da.convert_calendar('noleap')
out1=da1.sel(time=slice('2001','2002')) # works if array is built with cftime and converted

time=pd.date_range('2000-01-01','2006-01-01', freq='D',)
temperature = np.ones(len(time))
da2 = xr.DataArray(
data=temperature,
dims=["time"],
coords=dict(time=time,),
)
out2=da2.sel(time=slice('2001','2002')) # # works if array is built with pandas time
da3=da2.convert_calendar('noleap')
out3=da3.sel(time=slice('2001','2002')) # fails if array is built with pandas time and convert to noleap


@requires_cftime
def test_empty_cftimeindex_calendar_property():
index = CFTimeIndex([])
Expand Down

0 comments on commit 9c0967e

Please sign in to comment.