@@ -164,3 +164,54 @@ def test_write_read_hazard_forecast(haz_fc, tmp_path):
164164 else :
165165 # npt.assert_array_equal also works for comparing int, float or list
166166 npt .assert_array_equal (haz_fc .__dict__ [key ], haz_fc_read .__dict__ [key ])
167+
168+
169+ def test_hazard_forecast_mean_min_max (haz_fc ):
170+ """Check mean, min, and max methods for ImpactForecast"""
171+ haz_fcst_mean = haz_fc .mean ()
172+ haz_fcst_min = haz_fc .min ()
173+ haz_fcst_max = haz_fc .max ()
174+
175+ # assert intensity
176+ npt .assert_array_equal (
177+ haz_fcst_mean .intensity .todense (), haz_fc .intensity .todense ().mean (axis = 0 )
178+ )
179+ npt .assert_array_equal (
180+ haz_fcst_min .intensity .todense (), haz_fc .intensity .todense ().min (axis = 0 )
181+ )
182+ npt .assert_array_equal (
183+ haz_fcst_max .intensity .todense (), haz_fc .intensity .todense ().max (axis = 0 )
184+ )
185+ # assert fraction
186+ npt .assert_array_equal (
187+ haz_fcst_mean .fraction .todense (), haz_fc .fraction .todense ().mean (axis = 0 )
188+ )
189+ npt .assert_array_equal (
190+ haz_fcst_min .fraction .todense (), haz_fc .fraction .todense ().min (axis = 0 )
191+ )
192+ npt .assert_array_equal (
193+ haz_fcst_max .fraction .todense (), haz_fc .fraction .todense ().max (axis = 0 )
194+ )
195+
196+ # check that attributes where reduced correctly
197+ assert np .isnat (haz_fcst_mean .lead_time [0 ])
198+ assert np .isnat (haz_fcst_min .lead_time [0 ])
199+ assert np .isnat (haz_fcst_max .lead_time [0 ])
200+ assert haz_fcst_mean .member [0 ] == - 1
201+ assert haz_fcst_min .member [0 ] == - 1
202+ assert haz_fcst_max .member [0 ] == - 1
203+ assert haz_fcst_mean .event_name [0 ] == "mean"
204+ assert haz_fcst_min .event_name [0 ] == "min"
205+ assert haz_fcst_max .event_name [0 ] == "max"
206+ assert haz_fcst_mean .event_id [0 ] == 0
207+ assert haz_fcst_min .event_id [0 ] == 0
208+ assert haz_fcst_max .event_id [0 ] == 0
209+ assert haz_fcst_mean .frequency == 1
210+ assert haz_fcst_min .frequency == 1
211+ assert haz_fcst_max .frequency == 1
212+ assert haz_fcst_mean .date == haz_fc .date .min ()
213+ assert haz_fcst_min .date == haz_fc .date .min ()
214+ assert haz_fcst_max .date == haz_fc .date .min ()
215+ assert np .all (haz_fcst_mean .orig )
216+ assert np .all (haz_fcst_min .orig )
217+ assert np .all (haz_fcst_max .orig )
0 commit comments