@@ -1653,17 +1653,87 @@ def test_reindex_str_dtype(self, dtype) -> None:
1653
1653
assert actual .dtype == expected .dtype
1654
1654
1655
1655
def test_rename (self ) -> None :
1656
- renamed = self .dv .rename ("bar" )
1657
- assert_identical (renamed .to_dataset (), self .ds .rename ({"foo" : "bar" }))
1658
- assert renamed .name == "bar"
1659
1656
1660
- renamed = self .dv .x .rename ({"x" : "z" }).rename ("z" )
1661
- assert_identical (renamed , self .ds .rename ({"x" : "z" }).z )
1662
- assert renamed .name == "z"
1663
- assert renamed .dims == ("z" ,)
1664
-
1665
- renamed_kwargs = self .dv .x .rename (x = "z" ).rename ("z" )
1666
- assert_identical (renamed , renamed_kwargs )
1657
+ da = xr .DataArray (
1658
+ [1 , 2 , 3 ], dims = "dim" , name = "name" , coords = {"coord" : ("dim" , [5 , 6 , 7 ])}
1659
+ )
1660
+
1661
+ # change name
1662
+ renamed_name = da .rename ("name_new" )
1663
+ assert renamed_name .name == "name_new"
1664
+ expected_name = da .copy ()
1665
+ expected_name .name = "name_new"
1666
+ assert_identical (renamed_name , expected_name )
1667
+
1668
+ # change name to None?
1669
+ renamed_noname = da .rename (None )
1670
+ assert renamed_noname .name is None
1671
+ expected_noname = da .copy ()
1672
+ expected_noname .name = None
1673
+ assert_identical (renamed_noname , expected_noname )
1674
+ renamed_noname = da .rename ()
1675
+ assert renamed_noname .name is None
1676
+ assert_identical (renamed_noname , expected_noname )
1677
+
1678
+ # change dim
1679
+ renamed_dim = da .rename ({"dim" : "dim_new" })
1680
+ assert renamed_dim .dims == ("dim_new" ,)
1681
+ expected_dim = xr .DataArray (
1682
+ [1 , 2 , 3 ],
1683
+ dims = "dim_new" ,
1684
+ name = "name" ,
1685
+ coords = {"coord" : ("dim_new" , [5 , 6 , 7 ])},
1686
+ )
1687
+ assert_identical (renamed_dim , expected_dim )
1688
+
1689
+ # change dim with kwargs
1690
+ renamed_dimkw = da .rename (dim = "dim_new" )
1691
+ assert renamed_dimkw .dims == ("dim_new" ,)
1692
+ assert_identical (renamed_dimkw , expected_dim )
1693
+
1694
+ # change coords
1695
+ renamed_coord = da .rename ({"coord" : "coord_new" })
1696
+ assert "coord_new" in renamed_coord .coords
1697
+ expected_coord = xr .DataArray (
1698
+ [1 , 2 , 3 ], dims = "dim" , name = "name" , coords = {"coord_new" : ("dim" , [5 , 6 , 7 ])}
1699
+ )
1700
+ assert_identical (renamed_coord , expected_coord )
1701
+
1702
+ # change coords with kwargs
1703
+ renamed_coordkw = da .rename (coord = "coord_new" )
1704
+ assert "coord_new" in renamed_coordkw .coords
1705
+ assert_identical (renamed_coordkw , expected_coord )
1706
+
1707
+ # change coord and dim
1708
+ renamed_both = da .rename ({"dim" : "dim_new" , "coord" : "coord_new" })
1709
+ assert renamed_both .dims == ("dim_new" ,)
1710
+ assert "coord_new" in renamed_both .coords
1711
+ expected_both = xr .DataArray (
1712
+ [1 , 2 , 3 ],
1713
+ dims = "dim_new" ,
1714
+ name = "name" ,
1715
+ coords = {"coord_new" : ("dim_new" , [5 , 6 , 7 ])},
1716
+ )
1717
+ assert_identical (renamed_both , expected_both )
1718
+
1719
+ # change coord and dim with kwargs
1720
+ renamed_bothkw = da .rename (dim = "dim_new" , coord = "coord_new" )
1721
+ assert renamed_bothkw .dims == ("dim_new" ,)
1722
+ assert "coord_new" in renamed_bothkw .coords
1723
+ assert_identical (renamed_bothkw , expected_both )
1724
+
1725
+ # change all
1726
+ renamed_all = da .rename ("name_new" , dim = "dim_new" , coord = "coord_new" )
1727
+ assert renamed_all .name == "name_new"
1728
+ assert renamed_all .dims == ("dim_new" ,)
1729
+ assert "coord_new" in renamed_all .coords
1730
+ expected_all = xr .DataArray (
1731
+ [1 , 2 , 3 ],
1732
+ dims = "dim_new" ,
1733
+ name = "name_new" ,
1734
+ coords = {"coord_new" : ("dim_new" , [5 , 6 , 7 ])},
1735
+ )
1736
+ assert_identical (renamed_all , expected_all )
1667
1737
1668
1738
def test_init_value (self ) -> None :
1669
1739
expected = DataArray (
0 commit comments