html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/pull/7798#issuecomment-1532986706,https://api.github.com/repos/pydata/xarray/issues/7798,1532986706,IC_kwDOAMm_X85bX4VS,39069044,2023-05-03T12:58:35Z,2023-05-03T12:58:35Z,CONTRIBUTOR,Would it be possible to run another bug fix release with this incorporated? Or I guess we're already on to `2023.5.0` according to the date.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1689773381 https://github.com/pydata/xarray/pull/7798#issuecomment-1529130077,https://api.github.com/repos/pydata/xarray/issues/7798,1529130077,IC_kwDOAMm_X85bJKxd,6145107,2023-04-30T20:15:24Z,2023-04-30T20:20:21Z,CONTRIBUTOR,"Apologies, that's my bad. Looks like I introduced a broken test and didn't manually double check the results coming back. The right shift test should have been: ``` python right_expected = Dataset( { ""x"": (""index"", [0, 0, 2, 2]), ""y"": (""index"", [-1, -1, -2, -2]), ""level"": (""index"", [0, 0, 4, 4]), ""index"": [0, 1, 2, 3], } ) right_actual = (left_expected.groupby(""level"") >> shift).reset_coords(names=""level"") assert_equal(right_expected, right_actual) ``` I haven't paid attention to this issue, but doing the groupby manually didn't have the bug fwiw.
Probably overkill test that only fails at the last assert before this fix

```python def test_groupby_math_bitshift() -> None: # create new dataset of int's only ds = Dataset( { ""x"": (""index"", np.ones(4, dtype=int)), ""y"": (""index"", np.ones(4, dtype=int) * -1), ""level"": (""index"", [1, 1, 2, 2]), ""index"": [0, 1, 2, 3], } ) shift = DataArray([1, 2, 1], [(""level"", [1, 2, 8])]) left_expected = Dataset( { ""x"": (""index"", [2, 2, 4, 4]), ""y"": (""index"", [-2, -2, -4, -4]), ""level"": (""index"", [2, 2, 8, 8]), ""index"": [0, 1, 2, 3], } ) left_manual = [] for lev, group in ds.groupby(""level""): shifter = shift.sel(level=lev) left_manual.append(group << shifter) left_actual = xr.concat(left_manual, dim=""index"").reset_coords(names=""level"") assert_equal(left_expected, left_actual) left_actual = (ds.groupby(""level"") << shift).reset_coords(names=""level"") assert_equal(left_expected, left_actual) right_expected = Dataset( { ""x"": (""index"", [0, 0, 2, 2]), ""y"": (""index"", [-1, -1, -2, -2]), ""level"": (""index"", [0, 0, 4, 4]), ""index"": [0, 1, 2, 3], } ) right_manual = [] for lev, group in left_expected.groupby(""level""): shifter = shift.sel(level=lev) right_manual.append(group >> shifter) right_actual = xr.concat(right_manual, dim=""index"").reset_coords(names=""level"") assert_equal(right_expected, right_actual) right_actual = (left_expected.groupby(""level"") >> shift).reset_coords(names=""level"") assert_equal(right_expected, right_actual) ```

","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1689773381 https://github.com/pydata/xarray/pull/7798#issuecomment-1529050645,https://api.github.com/repos/pydata/xarray/issues/7798,1529050645,IC_kwDOAMm_X85bI3YV,39069044,2023-04-30T15:20:47Z,2023-04-30T15:20:47Z,CONTRIBUTOR,Thanks for the quick fix! Not sure about the bitshift test but I'm assuming @headtr1ck is right.,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1689773381