Skip to content

Commit 260dfc2

Browse files
author
Chahan Kropf
committed
Add extended hazard forecast test
1 parent 396239a commit 260dfc2

File tree

1 file changed

+43
-6
lines changed

1 file changed

+43
-6
lines changed

climada/hazard/test/test_forecast.py

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,47 @@ def test_hazard_forecast_concat(haz_fc, lead_time, member):
100100
npt.assert_array_equal(haz_fc_concat.member, np.concatenate([member, member]))
101101

102102

103-
def test_hazard_forecast_select(haz_fc, lead_time, member):
103+
def test_hazard_forecast_select(haz_fc, lead_time, member, haz_kwargs):
104104
"""Check if Hazard.select works on the derived class"""
105-
haz_fc_select = haz_fc.select(event_id=[4, 1])
106-
# NOTE: Events keep their original order
107-
npt.assert_array_equal(haz_fc_select.event_id, haz_fc.event_id[np.array([3, 0])])
108-
npt.assert_array_equal(haz_fc_select.member, member[np.array([3, 0])])
109-
npt.assert_array_equal(haz_fc_select.lead_time, lead_time[np.array([3, 0])])
105+
# haz_fc_select = haz_fc.select(event_id=[4, 1])
106+
# # NOTE: Events keep their original order
107+
# npt.assert_array_equal(haz_fc_select.event_id, haz_fc.event_id[np.array([3, 0])])
108+
# npt.assert_array_equal(haz_fc_select.member, member[np.array([3, 0])])
109+
# npt.assert_array_equal(haz_fc_select.lead_time, lead_time[np.array([3, 0])])
110+
111+
select_mask = np.array([2, 3])
112+
ordered_select_mask = np.array([2, 3])
113+
vars_to_select = {
114+
"event_id": "event_id",
115+
"event_name": "event_names",
116+
"date": "date",
117+
}
118+
119+
for var, var_select in vars_to_select.items():
120+
var_value = np.array(haz_kwargs[var])[select_mask]
121+
# event_name is a list, convert to numpy array for indexing
122+
haz_fc_sel = haz_fc.select(**{var_select: var_value})
123+
npt.assert_array_equal(
124+
haz_fc_sel.event_id,
125+
haz_fc.event_id[ordered_select_mask],
126+
)
127+
npt.assert_array_equal(
128+
haz_fc_sel.event_name,
129+
np.array(haz_fc.event_name)[ordered_select_mask],
130+
)
131+
npt.assert_array_equal(haz_fc_sel.date, haz_fc.date[ordered_select_mask])
132+
npt.assert_array_equal(
133+
haz_fc_sel.frequency, haz_fc.frequency[ordered_select_mask]
134+
)
135+
npt.assert_array_equal(haz_fc_sel.member, member[ordered_select_mask])
136+
npt.assert_array_equal(haz_fc_sel.lead_time, lead_time[ordered_select_mask])
137+
npt.assert_array_equal(
138+
haz_fc_sel.intensity.todense(),
139+
haz_fc.intensity.todense()[ordered_select_mask],
140+
)
141+
npt.assert_array_equal(
142+
haz_fc_sel.fraction.todense(),
143+
haz_fc.fraction.todense()[ordered_select_mask],
144+
)
145+
146+
assert haz_fc_sel.centroids == haz_fc.centroids

0 commit comments

Comments
 (0)