@@ -577,6 +577,55 @@ def test_metadata_bands_dimension(spec):
577577 assert metadata .band_common_names == ["F00" , None ]
578578
579579
580+ def test_cubemetadata_rename_labels ():
581+ metadata = CubeMetadata (
582+ dimensions = [
583+ SpatialDimension (name = "x" , extent = None ),
584+ BandDimension (name = "b" , bands = [Band ("red" ), Band ("green" )]),
585+ ]
586+ )
587+ renamed = metadata .rename_labels (dimension = "b" , target = ["raspberry" , "lime" ])
588+ assert isinstance (renamed , CubeMetadata )
589+ assert renamed .dimension_names () == ["x" , "b" ]
590+ assert renamed .band_names == ["raspberry" , "lime" ]
591+ assert renamed .bands == [Band ("raspberry" ), Band ("lime" )]
592+
593+
594+ def test_cubemetadata_rename_labels_invalid_dimension ():
595+ metadata = CubeMetadata (
596+ dimensions = [
597+ SpatialDimension (name = "x" , extent = None ),
598+ BandDimension (name = "b" , bands = [Band ("red" ), Band ("green" )]),
599+ ]
600+ )
601+ with pytest .raises (ValueError , match = re .escape ("Invalid dimension 'tempus'. Should be one of ['x', 'b']" )):
602+ _ = metadata .rename_labels (dimension = "tempus" , target = ["1999" ])
603+
604+
605+ def test_cubemetadata_rename_dimension ():
606+ metadata = CubeMetadata (
607+ dimensions = [
608+ SpatialDimension (name = "x" , extent = None ),
609+ BandDimension (name = "b" , bands = [Band ("red" ), Band ("green" )]),
610+ ]
611+ )
612+ renamed = metadata .rename_dimension ("b" , "bands" )
613+ assert renamed .dimension_names () == ["x" , "bands" ]
614+ assert renamed .band_dimension .name == "bands"
615+ assert renamed .band_names == ["red" , "green" ]
616+
617+
618+ def test_cubemetadata_rename_dimension_invalid_dimension ():
619+ metadata = CubeMetadata (
620+ dimensions = [
621+ SpatialDimension (name = "x" , extent = None ),
622+ BandDimension (name = "b" , bands = [Band ("red" ), Band ("green" )]),
623+ ]
624+ )
625+ with pytest .raises (ValueError , match = re .escape ("Invalid dimension 'bandzz'. Should be one of ['x', 'b']" )):
626+ _ = metadata .rename_dimension ("bandzz" , "bands" )
627+
628+
580629def test_collectionmetadata_reduce_dimension ():
581630 metadata = CollectionMetadata (
582631 {"cube:dimensions" : {"x" : {"type" : "spatial" }, "b" : {"type" : "bands" , "values" : ["red" , "green" ]}}}
0 commit comments