Skip to content

Commit

Permalink
do not identify if preset and blank
Browse files Browse the repository at this point in the history
  • Loading branch information
MialLewis committed May 3, 2023
1 parent cc58cbb commit aede601
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -192,8 +192,14 @@ def generate_fit_function_header(function_type, error=False):
class InvalidDetectors:

def __init__(self, invalid_detector_list):
self._invalid_detectors_front = self._preset_invalid_detectors(invalid_detector_list, EVSGlobals.FRONTSCATTERING_RANGE)
self._invalid_detectors_back = self._preset_invalid_detectors(invalid_detector_list, EVSGlobals.BACKSCATTERING_RANGE)
if invalid_detector_list:
self._invalid_detectors_front = self._preset_invalid_detectors(invalid_detector_list, EVSGlobals.FRONTSCATTERING_RANGE)
self._invalid_detectors_back = self._preset_invalid_detectors(invalid_detector_list, EVSGlobals.BACKSCATTERING_RANGE)
self._detectors_preset = True
else:
self._invalid_detectors_front = np.array([])
self._invalid_detectors_back = np.array([])
self._detectors_preset = False

def add_invalid_detectors(self, invalid_detector_list):
"""
Expand Down Expand Up @@ -248,13 +254,13 @@ def identify_and_set_invalid_detectors_from_range(self, detector_range, peak_tab
peak_centres_errors = EVSMiscFunctions.read_fitting_result_table_column(peak_table, 'f1.LorentzPos_Err', detector_range)

if detector_range == EVSGlobals.FRONTSCATTERING_RANGE:
if not self._invalid_detectors_front.any():
if not self._detectors_preset and not self._invalid_detectors_front.any():
self._invalid_detectors_front = self._identify_invalid_spectra(peak_table, peak_centres, peak_centres_errors,
detector_range)
self._print_invalid_detectors(self._invalid_detectors_front, detector_range)
return self._invalid_detectors_front
elif detector_range == EVSGlobals.BACKSCATTERING_RANGE:
if not self._invalid_detectors_back.any():
if not self._detectors_preset and not self._invalid_detectors_back.any():
self._invalid_detectors_back = self._identify_invalid_spectra(peak_table, peak_centres, peak_centres_errors,
detector_range)
self._print_invalid_detectors(self._invalid_detectors_back, detector_range)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -86,16 +86,19 @@ def test_create_empty_invalid_detectors(self):
invalid_detectors = InvalidDetectors([])
self.assertEqual(invalid_detectors._invalid_detectors_back.tolist(), [])
self.assertEqual(invalid_detectors._invalid_detectors_front.tolist(), [])
self.assertEqual(invalid_detectors._detectors_preset, False)

def test_create_invalid_detectors_back(self):
invalid_detectors = InvalidDetectors([10, 20, 30])
self.assertEqual(invalid_detectors._invalid_detectors_back.tolist(), [[7], [17], [27]])
self.assertEqual(invalid_detectors._invalid_detectors_front.tolist(), [])
self.assertEqual(invalid_detectors._detectors_preset, True)

def test_create_invalid_detectors_front(self):
invalid_detectors = InvalidDetectors([150, 160, 170])
self.assertEqual(invalid_detectors._invalid_detectors_back.tolist(), [])
self.assertEqual(invalid_detectors._invalid_detectors_front.tolist(), [[15], [25], [35]])
self.assertEqual(invalid_detectors._detectors_preset, True)

def test_create_invalid_detectors(self):
invalid_detectors = InvalidDetectors([10, 20, 30, 150, 160, 170])
Expand Down Expand Up @@ -155,6 +158,47 @@ def test_add_invalid_detectors(self):
invalid_detectors.add_invalid_detectors([10, 20, 25, 30, 180, 190])
self.assertEqual(invalid_detectors.get_all_invalid_detectors(), [10, 20, 25, 30, 150, 160, 170, 180, 190])

@patch('calibration_scripts.calibrate_vesuvio_helper_functions'
'.InvalidDetectors._identify_invalid_spectra')
@patch('calibration_scripts.calibrate_vesuvio_helper_functions'
'.EVSMiscFunctions.read_fitting_result_table_column')
def test_add_invalid_detectors_no_preset_identify_called_front(self, mock_read_fitting_result, mock_identify):
invalid_detectors = InvalidDetectors([])
invalid_detectors.add_invalid_detectors([180, 190])
self.assertEqual(invalid_detectors.get_all_invalid_detectors(), [180, 190])
self.assertEqual(invalid_detectors._detectors_preset, False)

peak_table = 'input_peak_table'
invalid_detectors.filter_peak_centres_for_invalid_detectors([3, 134], peak_table)
mock_identify.assert_called_once()

@patch('calibration_scripts.calibrate_vesuvio_helper_functions'
'.InvalidDetectors._identify_invalid_spectra')
@patch('calibration_scripts.calibrate_vesuvio_helper_functions'
'.EVSMiscFunctions.read_fitting_result_table_column')
def test_add_invalid_detectors_no_preset_identify_called_back(self, mock_read_fitting_result, mock_identify):
invalid_detectors = InvalidDetectors([])
invalid_detectors.add_invalid_detectors([31, 32])
self.assertEqual(invalid_detectors.get_all_invalid_detectors(), [31, 32])
self.assertEqual(invalid_detectors._detectors_preset, False)

peak_table = 'input_peak_table'
invalid_detectors.filter_peak_centres_for_invalid_detectors([135, 198], peak_table)
mock_identify.assert_called_once()

@patch('calibration_scripts.calibrate_vesuvio_helper_functions'
'.InvalidDetectors._identify_invalid_spectra')
@patch('calibration_scripts.calibrate_vesuvio_helper_functions'
'.EVSMiscFunctions.read_fitting_result_table_column')
def test_add_invalid_detectors_preset_identify_not_called(self, mock_read_fitting_result, mock_identify):
invalid_detectors = InvalidDetectors([180, 190])
self.assertEqual(invalid_detectors.get_all_invalid_detectors(), [180, 190])
self.assertEqual(invalid_detectors._detectors_preset, True)

peak_table = 'input_peak_table'
invalid_detectors.filter_peak_centres_for_invalid_detectors([3, 134], peak_table)
mock_identify.assert_not_called()


if __name__ == '__main__':
unittest.main()

0 comments on commit aede601

Please sign in to comment.