@@ -1183,3 +1183,23 @@ def test_validate_reindex():
1183
1183
for func in ["sum" , "argmax" ]:
1184
1184
actual = _validate_reindex (None , func , method , expected_groups = None , by_is_dask = False )
1185
1185
assert actual is False
1186
+
1187
+
1188
+ @requires_dask
1189
+ def test_1d_blockwise_sort_optimization ():
1190
+ # Make sure for resampling problems sorting isn't done.
1191
+ time = pd .Series (pd .date_range ("2020-09-01" , "2020-12-31 23:59" , freq = "3H" ))
1192
+ array = dask .array .ones ((len (time ),), chunks = (224 ,))
1193
+
1194
+ actual , _ = groupby_reduce (array , time .dt .dayofyear .values , method = "blockwise" , func = "count" )
1195
+ assert all ("getitem" not in k for k in actual .dask )
1196
+
1197
+ actual , _ = groupby_reduce (
1198
+ array , time .dt .dayofyear .values [::- 1 ], sort = True , method = "blockwise" , func = "count"
1199
+ )
1200
+ assert any ("getitem" in k for k in actual .dask .layers )
1201
+
1202
+ actual , _ = groupby_reduce (
1203
+ array , time .dt .dayofyear .values [::- 1 ], sort = False , method = "blockwise" , func = "count"
1204
+ )
1205
+ assert all ("getitem" not in k for k in actual .dask .layers )
0 commit comments