@@ -3182,23 +3182,39 @@ def test_season_resampling_raises_unsorted_seasons(self, seasons):
3182
3182
with pytest .raises (ValueError , match = "sort" ):
3183
3183
da .resample (time = SeasonResampler (seasons ))
3184
3184
3185
- # TODO: drop_incomplete
3186
- @requires_cftime
3185
+ @pytest .mark .parametrize (
3186
+ "use_cftime" ,
3187
+ [
3188
+ pytest .param (
3189
+ True , marks = pytest .mark .skipif (not has_cftime , reason = "no cftime" )
3190
+ ),
3191
+ False ,
3192
+ ],
3193
+ )
3187
3194
@pytest .mark .parametrize ("drop_incomplete" , [True , False ])
3188
3195
@pytest .mark .parametrize (
3189
3196
"seasons" ,
3190
3197
[
3191
3198
pytest .param (["DJF" , "MAM" , "JJA" , "SON" ], id = "standard" ),
3199
+ pytest .param (["NDJ" , "FMA" , "MJJ" , "ASO" ], id = "nov-first" ),
3192
3200
pytest .param (["MAM" , "JJA" , "SON" , "DJF" ], id = "standard-diff-order" ),
3193
3201
pytest .param (["JFM" , "AMJ" , "JAS" , "OND" ], id = "december-same-year" ),
3194
3202
pytest .param (["DJF" , "MAM" , "JJA" , "ON" ], id = "skip-september" ),
3195
3203
pytest .param (["JJAS" ], id = "jjas-only" ),
3196
3204
pytest .param (["MAM" , "JJA" , "SON" , "DJF" ], id = "different-order" ),
3197
3205
],
3198
3206
)
3199
- def test_season_resampler (self , seasons : list [str ], drop_incomplete : bool ) -> None :
3207
+ def test_season_resampler (
3208
+ self , seasons : list [str ], drop_incomplete : bool , use_cftime : bool
3209
+ ) -> None :
3200
3210
calendar = "standard"
3201
- time = date_range ("2001-01-01" , "2002-12-30" , freq = "D" , calendar = calendar )
3211
+ time = date_range (
3212
+ "2001-01-01" ,
3213
+ "2002-12-30" ,
3214
+ freq = "D" ,
3215
+ calendar = calendar ,
3216
+ use_cftime = use_cftime ,
3217
+ )
3202
3218
da = DataArray (np .ones (time .size ), dims = "time" , coords = {"time" : time })
3203
3219
counts = da .resample (time = "ME" ).count ()
3204
3220
@@ -3239,7 +3255,7 @@ def test_season_resampler(self, seasons: list[str], drop_incomplete: bool) -> No
3239
3255
# we construct expected in the standard calendar
3240
3256
xr .DataArray (expected_vals , dims = "time" , coords = {"time" : expected_time })
3241
3257
# and then convert to the expected calendar,
3242
- .convert_calendar (calendar , align_on = "date" )
3258
+ .convert_calendar (calendar , align_on = "date" , use_cftime = use_cftime )
3243
3259
# and finally sort since DJF will be out-of-order
3244
3260
.sortby ("time" )
3245
3261
)
0 commit comments