id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type 354923742,MDU6SXNzdWUzNTQ5MjM3NDI=,2388,Test equality of DataArrays up to transposition,35968931,closed,0,,,2,2018-08-28T22:13:01Z,2018-10-08T12:25:46Z,2018-10-08T12:25:46Z,MEMBER,,,,"While writing some unit tests to check I had wrapped `np.gradient` correctly with `xr.apply_ufunc`, I came unstuck because my results were equivalent except for transposed dimensions. It took me a while to realise that `xarray.testing.asset_equal` considers two DataArrays equal only if their dimensions are in the same order, because intuitively that shouldn't matter in the context of xarray's data model. A simple example to demonstrate what I mean: ```python # Create two functionally-equivalent dataarrays data = np.random.randn(4, 3) da1 = xr.DataArray(data, dims=('x', 'y')) da2 = xr.DataArray(data.T, dims=('y', 'x')) # This test will fail xarray.tests.assert_equal(da1, da2) ``` This test fails, with output ``` E AssertionError: E array([[ 0.761038, 0.121675, 0.443863], E [ 0.333674, 1.494079, -0.205158], E [ 0.313068, -0.854096, -2.55299 ], E [ 0.653619, 0.864436, -0.742165]]) E Coordinates: E * x (x) int64 5 7 9 11 E * y (y) int64 1 4 6 E E array([[ 0.761038, 0.333674, 0.313068, 0.653619], E [ 0.121675, 1.494079, -0.854096, 0.864436], E [ 0.443863, -0.205158, -2.55299 , -0.742165]]) E Coordinates: E * x (x) int64 5 7 9 11 E * y (y) int64 1 4 6 ``` even though these two DataArrays are functionally-equivalent for all xarray operations you could perform with them. It would make certain types of unit tests simpler and clearer to have a function like ```python xarray.tests.assert_equivalent(da1, da2) ``` which would return true if one DataArray can be formed from the other by transposition. I would have thought that a test that does this would just transpose one into the shape of the other before comparison?","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2388/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue