From cfebe16127c0f6636d0370ac141df8a769bebded Mon Sep 17 00:00:00 2001 From: Jonathan Shimwell Date: Thu, 11 Apr 2024 16:35:29 +0100 Subject: [PATCH] added check for length of value passed into EnergyFilter (#2887) --- openmc/filter.py | 4 ++++ tests/unit_tests/test_filters.py | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/openmc/filter.py b/openmc/filter.py index 04b30261da2..c1d86126a7c 100644 --- a/openmc/filter.py +++ b/openmc/filter.py @@ -1377,6 +1377,10 @@ class EnergyFilter(RealFilter): """ units = 'eV' + def __init__(self, values, filter_id=None): + cv.check_length('values', values, 2) + super().__init__(values, filter_id) + def get_bin_index(self, filter_bin): # Use lower energy bound to find index for RealFilters deltas = np.abs(self.bins[:, 1] - filter_bin[1]) / filter_bin[1] diff --git a/tests/unit_tests/test_filters.py b/tests/unit_tests/test_filters.py index 4ace59e723e..55bb62075bd 100644 --- a/tests/unit_tests/test_filters.py +++ b/tests/unit_tests/test_filters.py @@ -1,6 +1,6 @@ import numpy as np import openmc -from pytest import fixture, approx +from pytest import fixture, approx, raises @fixture(scope='module') @@ -248,6 +248,11 @@ def test_energy(): assert len(f.values) == 710 +def test_energyfilter_error_handling(): + with raises(ValueError): + openmc.EnergyFilter([1e6]) + + def test_lethargy_bin_width(): f = openmc.EnergyFilter.from_group_structure('VITAMIN-J-175') assert len(f.lethargy_bin_width) == 175