Skip to content

Commit de1d671

Browse files
committed
Update tests following review comments
1 parent 6a53f88 commit de1d671

File tree

2 files changed

+18
-16
lines changed

2 files changed

+18
-16
lines changed

Diff for: src/CSET/operators/collapse.py

+10-9
Original file line numberDiff line numberDiff line change
@@ -234,25 +234,26 @@ def collapse_by_validity_time(
234234
merged_list_1 = new_cubelist.merge(unique=False)
235235
# Create a new "fake" coordinate and apply to each remaining cube to allow
236236
# final merging to take place into a single cube.
237-
fake_time = 0
238-
for sub_cube in merged_list_1:
239-
fake_time_coord = iris.coords.AuxCoord(fake_time)
240-
fake_time_coord.units = "1"
241-
fake_time_coord.rename("fake_time_coord")
242-
sub_cube.add_aux_coord(fake_time_coord)
243-
fake_time += 1
237+
equalised_validity_time = iris.coords.AuxCoord(
238+
points=0, long_name="equalised_validity_time", units="1"
239+
)
240+
for sub_cube, eq_valid_time in zip(
241+
merged_list_1, range(len(merged_list_1)), strict=True
242+
):
243+
sub_cube.add_aux_coord(equalised_validity_time.copy(points=eq_valid_time))
244+
244245
# Merge CubeList to create final cube.
245246
final_cube = merged_list_1.merge_cube()
246247
# Collapse over fake_time_coord to represent collapsing over validity time.
247248
if method == "PERCENTILE":
248249
collapsed_cube = collapse(
249250
final_cube,
250-
"fake_time_coord",
251+
"equalised_validity_time",
251252
method,
252253
additional_percent=additional_percent,
253254
)
254255
else:
255-
collapsed_cube = collapse(final_cube, "fake_time_coord", method)
256+
collapsed_cube = collapse(final_cube, "equalised_validity_time", method)
256257
return collapsed_cube
257258

258259

Diff for: tests/operators/test_collapse.py

+8-7
Original file line numberDiff line numberDiff line change
@@ -180,23 +180,24 @@ def test_collapse_by_validity_time_cubelist(long_forecast_many_cubes):
180180

181181
def test_collapse_by_validity_time_percentile(long_forecast_multi_day):
182182
"""Reduce by validity time with percentiles."""
183-
with pytest.raises(ValueError):
184-
collapse.collapse_by_validity_time(long_forecast_multi_day, "PERCENTILE")
185183
# Test successful collapsing by validity time.
186184
collapsed_cube = collapse.collapse_by_validity_time(
187185
long_forecast_multi_day, "PERCENTILE", additional_percent=[25, 75]
188186
)
189-
expected_cube = "<iris 'Cube' of air_temperature / (K) (percentile_over_fake_time_coord: 2; time: 145; grid_latitude: 3; grid_longitude: 3)>"
187+
expected_cube = "<iris 'Cube' of air_temperature / (K) (percentile_over_equalised_validity_time: 2; time: 145; grid_latitude: 3; grid_longitude: 3)>"
190188
assert repr(collapsed_cube) == expected_cube
191189

192190

191+
def test_collapse_by_validity_time_percentile_fail(long_forecast_multi_day):
192+
"""Test not specifying additional percent fails."""
193+
with pytest.raises(ValueError):
194+
collapse.collapse_by_validity_time(long_forecast_multi_day, "PERCENTILE")
195+
196+
193197
def test_collapse_by_validity_time_cubelist_percentile(long_forecast_many_cubes):
194198
"""Convert to cube and reduce by validity time with percentiles."""
195-
with pytest.raises(ValueError):
196-
collapse.collapse_by_validity_time(long_forecast_many_cubes, "PERCENTILE")
197-
# Test successful collapsing by validity time.
198199
collapsed_cube = collapse.collapse_by_validity_time(
199200
long_forecast_many_cubes, "PERCENTILE", additional_percent=[25, 75]
200201
)
201-
expected_cube = "<iris 'Cube' of air_temperature / (K) (percentile_over_fake_time_coord: 2; time: 145; grid_latitude: 3; grid_longitude: 3)>"
202+
expected_cube = "<iris 'Cube' of air_temperature / (K) (percentile_over_equalised_validity_time: 2; time: 145; grid_latitude: 3; grid_longitude: 3)>"
202203
assert repr(collapsed_cube) == expected_cube

0 commit comments

Comments
 (0)