Skip to content

Commit 14d51e0

Browse files
authored
more helpful error message for dose_coefficients (#3534)
1 parent f8fa751 commit 14d51e0

2 files changed

Lines changed: 26 additions & 1 deletion

File tree

openmc/data/effective_dose/dose.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,12 @@ def dose_coefficients(particle, geometry='AP', data_source='icrp116'):
8282
cv.check_value('data_source', data_source, {'icrp74', 'icrp116'})
8383

8484
if (data_source, particle) not in _FILES:
85-
raise ValueError(f"{particle} has no dose data in data source {data_source}.")
85+
available_particles = sorted({p for (ds, p) in _FILES if ds == data_source})
86+
msg = (
87+
f"'{particle}' has no dose data in data source {data_source}. "
88+
f"Available particles for {data_source} are: {available_particles}"
89+
)
90+
raise ValueError(msg)
8691
elif (data_source, particle) not in _DOSE_TABLES:
8792
_load_dose_icrp(data_source, particle)
8893

tests/unit_tests/test_data_dose.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,23 @@ def test_dose_coefficients():
4141
dose_coefficients('neutron', 'ZZ')
4242
with raises(ValueError):
4343
dose_coefficients('neutron', data_source='icrp7000')
44+
with raises(ValueError) as excinfo:
45+
dose_coefficients("photons", data_source="icrp116")
46+
expected_particles = [
47+
"electron",
48+
"helium",
49+
"mu+",
50+
"mu-",
51+
"neutron",
52+
"photon",
53+
"photon kerma",
54+
"pi+",
55+
"pi-",
56+
"positron",
57+
"proton",
58+
]
59+
expected_msg = (
60+
"'photons' has no dose data in data source icrp116. "
61+
f"Available particles for icrp116 are: {expected_particles}"
62+
)
63+
assert str(excinfo.value) == expected_msg

0 commit comments

Comments
 (0)