@@ -23,9 +23,11 @@ def test_fill_missing_data(generate_silly_vt_dataset):
2323 """
2424 ds = generate_silly_vt_dataset
2525 ds ["temp" ][0 , 0 , 6 :10 , 0 ] = np .nan
26-
26+ ds . temp . attrs = { "units" : "C" }
2727 ds = rgd .fill_missing_data (ds , "silly_depth" , fill = "f" )
28-
28+ assert (
29+ ds .temp .attrs == {"units" :"C" }
30+ ) # Assert that attributes are retained
2931 assert (
3032 ds ["temp" ][0 , 0 , 6 :10 , 0 ] == (ds ["temp" ][0 , 0 , 5 , 0 ])
3133 ).all () # Assert if we are forward filling in time
@@ -37,15 +39,18 @@ def test_fill_missing_data(generate_silly_vt_dataset):
3739
3840def test_add_or_update_time_dim (generate_silly_vt_dataset ):
3941 ds = generate_silly_vt_dataset
40- ds = rgd .add_or_update_time_dim (ds , xr .DataArray ([0 ]))
4142
43+ ds = rgd .add_or_update_time_dim (ds , xr .DataArray ([0 ]))
44+ assert ds .time .attrs == {"units" :"days" } # Assert that attributes are retained
4245 assert ds ["time" ].values == [0 ] # Assert time is added
4346 assert ds ["temp" ].dims [0 ] == "time" # Check time is first dim
4447
4548
4649def test_generate_dz (generate_silly_vt_dataset ):
4750 ds = generate_silly_vt_dataset
51+
4852 dz = rgd .generate_dz (ds , "silly_depth" )
53+ assert ds .time .attrs == {"units" :"days" } # Assert that attributes are retained
4954 z = np .linspace (0 , 1000 , 10 )
5055 dz_check = np .full (z .shape , z [1 ] - z [0 ])
5156 assert (
@@ -57,9 +62,11 @@ def test_add_secondary_dimension(get_curvilinear_hgrid, generate_silly_vt_datase
5762 ds = generate_silly_vt_dataset
5863 hgrid = get_curvilinear_hgrid
5964
65+
6066 # N/S Boundary
6167 coords = rgd .coords (hgrid , "north" , "segment_002" )
6268 ds = rgd .add_secondary_dimension (ds , "temp" , coords , "segment_002" )
69+ assert ds .time .attrs == {"units" :"days" } # Assert that attributes are retained
6370 assert ds ["temp" ].dims == (
6471 "silly_lat" ,
6572 "ny_segment_002" ,
@@ -102,7 +109,12 @@ def test_add_secondary_dimension(get_curvilinear_hgrid, generate_silly_vt_datase
102109
103110def test_vertical_coordinate_encoding (generate_silly_vt_dataset ):
104111 ds = generate_silly_vt_dataset
112+
113+
114+
105115 ds = rgd .vertical_coordinate_encoding (ds , "temp" , "segment_002" , "silly_depth" )
116+ assert ds .time .attrs == {"units" :"days" } # Assert that attributes are retained
117+
106118 assert "nz_segment_002_temp" in ds ["temp" ].dims
107119 assert "nz_segment_002_temp" in ds
108120 assert (
@@ -114,6 +126,8 @@ def test_generate_layer_thickness(generate_silly_vt_dataset):
114126 ds = generate_silly_vt_dataset
115127 ds ["temp" ] = ds ["temp" ].transpose ("time" , "silly_depth" , "silly_lat" , "silly_lon" )
116128 ds = rgd .generate_layer_thickness (ds , "temp" , "segment_002" , "silly_depth" )
129+ assert ds .time .attrs == {"units" :"days" } # Assert that attributes are retained
130+
117131 assert "dz_temp" in ds
118132 assert ds ["dz_temp" ].dims == ("time" , "nz_temp" , "ny_segment_002" , "nx_segment_002" )
119133 assert (
@@ -228,6 +242,7 @@ def test_mask_dataset(get_curvilinear_hgrid):
228242 ds ["temp" ] = ds ["temp" ].expand_dims ("y" , axis = 0 )
229243 ds ["temp" ] = ds ["temp" ].expand_dims ("nz_temp" , axis = 0 )
230244 ds ["temp" ] = ds ["temp" ].expand_dims ("time" , axis = 0 )
245+ ds .temp .attrs = {"units" :"C" }
231246 fill_value = 36
232247 ds = rgd .mask_dataset (
233248 ds ,
@@ -237,6 +252,7 @@ def test_mask_dataset(get_curvilinear_hgrid):
237252 x_dim_name = "t_points_x" ,
238253 fill_value = fill_value ,
239254 )
255+ assert ds .temp .attrs == {"units" :"C" }
240256
241257 assert (
242258 np .isnan (ds ["temp" ][0 , 0 , 0 ][start_ind * 2 + 2 ]) == False
0 commit comments