@@ -577,6 +577,55 @@ def test_metadata_bands_dimension(spec):
577
577
assert metadata .band_common_names == ["F00" , None ]
578
578
579
579
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
+
580
629
def test_collectionmetadata_reduce_dimension ():
581
630
metadata = CollectionMetadata (
582
631
{"cube:dimensions" : {"x" : {"type" : "spatial" }, "b" : {"type" : "bands" , "values" : ["red" , "green" ]}}}
0 commit comments