def test_that_can_set_and_reset_merged_settings(self): state_gui_model = StateGuiModel({DetectorId.shift_fit: [det_fit_range(start=1., stop=2., use_fit=True)], DetectorId.rescale_fit: [det_fit_range(start=1.4, stop=7., use_fit=False)], DetectorId.rescale: [12.], DetectorId.shift: [234.]}) self.assertTrue(state_gui_model.merge_scale == 12.) self.assertTrue(state_gui_model.merge_shift == 234.) self.assertFalse(state_gui_model.merge_scale_fit) self.assertTrue(state_gui_model.merge_shift_fit) self.assertTrue(state_gui_model.merge_q_range_start == 1.) self.assertTrue(state_gui_model.merge_q_range_stop == 7.) state_gui_model.merge_scale = 12.3 state_gui_model.merge_shift = 3. state_gui_model.merge_scale_fit = True state_gui_model.merge_shift_fit = False state_gui_model.merge_q_range_start = 2. state_gui_model.merge_q_range_stop = 8. self.assertTrue(state_gui_model.merge_scale == 12.3) self.assertTrue(state_gui_model.merge_shift == 3.) self.assertTrue(state_gui_model.merge_scale_fit) self.assertFalse(state_gui_model.merge_shift_fit) self.assertTrue(state_gui_model.merge_q_range_start == 2.) self.assertTrue(state_gui_model.merge_q_range_stop == 8.)
def test_that_can_set_and_reset_merged_settings(self): state_gui_model = StateGuiModel({ DetectorId.shift_fit: [det_fit_range(start=1., stop=2., use_fit=True)], DetectorId.rescale_fit: [det_fit_range(start=1.4, stop=7., use_fit=False)], DetectorId.rescale: [12.], DetectorId.shift: [234.] }) self.assertTrue(state_gui_model.merge_scale == 12.) self.assertTrue(state_gui_model.merge_shift == 234.) self.assertFalse(state_gui_model.merge_scale_fit) self.assertTrue(state_gui_model.merge_shift_fit) self.assertTrue(state_gui_model.merge_q_range_start == 1.) self.assertTrue(state_gui_model.merge_q_range_stop == 7.) state_gui_model.merge_scale = 12.3 state_gui_model.merge_shift = 3. state_gui_model.merge_scale_fit = True state_gui_model.merge_shift_fit = False state_gui_model.merge_q_range_start = 2. state_gui_model.merge_q_range_stop = 8. self.assertTrue(state_gui_model.merge_scale == 12.3) self.assertTrue(state_gui_model.merge_shift == 3.) self.assertTrue(state_gui_model.merge_scale_fit) self.assertFalse(state_gui_model.merge_shift_fit) self.assertTrue(state_gui_model.merge_q_range_start == 2.) self.assertTrue(state_gui_model.merge_q_range_stop == 8.)
def _update_merged_fit(self, element_id, use_fit=None, use_q_range=None, q_start=None, q_stop=None): # If the setting is not in there, then add, else all is good if element_id in self._user_file_items: settings = self._user_file_items[element_id] else: settings = [det_fit_range(start=None, stop=None, use_fit=False)] new_settings = [] for setting in settings: new_use_fit = use_fit if use_fit is not None else setting.use_fit new_q_start = q_start if q_start is not None else setting.start new_q_stop = q_stop if q_stop is not None else setting.stop # If we don't want to use a custom q range, then we need to set the start and stop values to None if use_q_range is not None and use_q_range is False: new_q_start = None new_q_stop = None new_settings.append( det_fit_range(start=new_q_start, stop=new_q_stop, use_fit=new_use_fit)) self._user_file_items.update({element_id: new_settings})
def _process_front_detector_rescale(self, command): scale = command.values[0] shift = command.values[1] fit_scale = command.values[2] fit_shift = command.values[3] q_min = command.values[4] q_max = command.values[5] # Set the scale and the shift new_state_entries = { DetectorId.RESCALE: scale, DetectorId.SHIFT: shift } # Set the fit for the scale new_state_entries.update({ DetectorId.RESCALE_FIT: det_fit_range(start=q_min, stop=q_max, use_fit=fit_scale) }) # Set the fit for shift new_state_entries.update({ DetectorId.SHIFT_FIT: det_fit_range(start=q_min, stop=q_max, use_fit=fit_shift) }) self.add_to_processed_state_settings(new_state_entries)
def test_that_can_set_and_reset_merged_settings(self): state_gui_model = StateGuiModel({ DetectorId.SHIFT_FIT: [det_fit_range(start=1., stop=2., use_fit=True)], DetectorId.RESCALE_FIT: [det_fit_range(start=1.4, stop=7., use_fit=False)], DetectorId.RESCALE: [12.], DetectorId.SHIFT: [234.] }) self.assertEqual(state_gui_model.merge_scale, 12.) self.assertEqual(state_gui_model.merge_shift, 234.) self.assertFalse(state_gui_model.merge_scale_fit) self.assertTrue(state_gui_model.merge_shift_fit) self.assertEqual(state_gui_model.merge_q_range_start, 1.) self.assertEqual(state_gui_model.merge_q_range_stop, 7.) state_gui_model.merge_scale = 12.3 state_gui_model.merge_shift = 3. state_gui_model.merge_scale_fit = True state_gui_model.merge_shift_fit = False state_gui_model.merge_q_range_start = 2. state_gui_model.merge_q_range_stop = 8. self.assertEqual(state_gui_model.merge_scale, 12.3) self.assertEqual(state_gui_model.merge_shift, 3.) self.assertTrue(state_gui_model.merge_scale_fit) self.assertFalse(state_gui_model.merge_shift_fit) self.assertEqual(state_gui_model.merge_q_range_start, 2.) self.assertEqual(state_gui_model.merge_q_range_stop, 8.)
def test_that_merge_range_set_correctly(self): state_gui_model = StateGuiModel({ DetectorId.merge_range: [det_fit_range(use_fit=True, start=0.13, stop=0.15)] }) self.assertEqual(state_gui_model.merge_min, 0.13) self.assertEqual(state_gui_model.merge_max, 0.15) self.assertTrue(state_gui_model.merge_mask)
def _process_front_detector_rescale(self, command): scale = command.values[0] shift = command.values[1] fit_scale = command.values[2] fit_shift = command.values[3] q_min = command.values[4] q_max = command.values[5] # Set the scale and the shift new_state_entries = {DetectorId.rescale: scale, DetectorId.shift: shift} # Set the fit for the scale new_state_entries.update({DetectorId.rescale_fit: det_fit_range(start=q_min, stop=q_max, use_fit=fit_scale)}) # Set the fit for shift new_state_entries.update({DetectorId.shift_fit: det_fit_range(start=q_min, stop=q_max, use_fit=fit_shift)}) self.add_to_processed_state_settings(new_state_entries)
def _update_merged_fit(self, element_id, use_fit=None, use_q_range=None, q_start=None, q_stop=None): # If the setting is not in there, then add, else all is good if element_id in self._user_file_items: settings = self._user_file_items[element_id] else: settings = [det_fit_range(start=None, stop=None, use_fit=False)] new_settings = [] for setting in settings: new_use_fit = use_fit if use_fit is not None else setting.use_fit new_q_start = q_start if q_start is not None else setting.start new_q_stop = q_stop if q_stop is not None else setting.stop # If we don't want to use a custom q range, then we need to set the start and stop values to None if use_q_range is not None and use_q_range is False: new_q_start = None new_q_stop = None new_settings.append(det_fit_range(start=new_q_start, stop=new_q_stop, use_fit=new_use_fit)) self._user_file_items.update({element_id: new_settings})
def test_that_merge_range_set_correctly(self): state_gui_model = StateGuiModel({DetectorId.merge_range: [det_fit_range(use_fit=True, start=0.13, stop=0.15)]}) self.assertEqual(state_gui_model.merge_min, 0.13) self.assertEqual(state_gui_model.merge_max, 0.15) self.assertTrue(state_gui_model.merge_mask)