def test_that_divide_uses_settings_from_workspace(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock(instrument=SANSInstrument.SANS2D, run_number=22024, height=8.0, width=8.0, thickness=1.0, shape=SampleShape.Disc) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("SANS2D00022024") data_state = data_builder.build() scale_builder = get_scale_builder(data_state, file_information) scale_state = scale_builder.build() test_director = TestDirector() test_director.set_states(scale_state=scale_state, data_state=data_state) state = test_director.construct() divide_factory = DivideByVolumeFactory() divider = divide_factory.create_divide_by_volume(state) # Apply the settings from the SANS2D00022024 workspace width = 8. height = 8. thickness = 1. shape = 3 workspace = ScaleHelperTest._get_workspace(width, height, thickness, shape) # Act output_workspace = divider.divide_by_volume(workspace, scale_state) # Assert expected_volume = thickness * math.pi * math.pow(width, 2) / 4.0 expected_value = 0.3 / expected_volume data_y = output_workspace.dataY(0) self.assertEqual(data_y[0], expected_value)
def test_that_state_for_larmor_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LARMOR, run_number=2260) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LARMOR00002260") data_info = data_builder.build() # Act builder = get_move_builder(data_info) self.assertTrue(builder) value = 324.2 builder.set_LAB_x_translation_correction(value) # Assert state = builder.build() self.assertTrue(state.detectors[DetectorType.to_string( DetectorType.LAB)].x_translation_correction == value) self.assertTrue(state.detectors[DetectorType.to_string( DetectorType.LAB)].detector_name == "DetectorBench") self.assertTrue( DetectorType.to_string(DetectorType.HAB) not in state.detectors) self.assertTrue(state.monitor_names[str(5)] == "monitor5") self.assertTrue(len(state.monitor_names) == 5)
def test_that_slice_event_state_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock(run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_info = data_builder.build() # Act builder = get_scale_builder(data_info, file_information) self.assertTrue(builder) builder.set_scale(1.0) builder.set_shape(SampleShape.FLAT_PLATE) builder.set_thickness(3.6) builder.set_width(3.7) builder.set_height(5.8) # Assert state = builder.build() self.assertEqual(state.shape, SampleShape.FLAT_PLATE) self.assertEqual(state.scale, 1.0) self.assertEqual(state.thickness, 3.6) self.assertEqual(state.width, 3.7) self.assertEqual(state.height, 5.8)
def _get_sample_state(q_min=1., q_max=2., q_step=0.1, q_step_type=RangeStepType.LIN, q_xy_max=None, q_xy_step=None, q_xy_step_type=None, use_gravity=False, dim=ReductionDimensionality.ONE_DIM): facility = SANSFacility.ISIS file_information = SANSFileInformationMock(instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_state = data_builder.build() convert_to_q_builder = get_convert_to_q_builder(data_state) convert_to_q_builder.set_reduction_dimensionality(dim) convert_to_q_builder.set_use_gravity(use_gravity) convert_to_q_builder.set_radius_cutoff(0.002) convert_to_q_builder.set_wavelength_cutoff(2.) convert_to_q_builder.set_q_min(q_min) convert_to_q_builder.set_q_max(q_max) prefix = 1. if q_step_type is RangeStepType.LIN else -1. q_step *= prefix rebin_string = str(q_min) + "," + str(q_step) + "," + str(q_max) convert_to_q_builder.set_q_1d_rebin_string(rebin_string) if q_xy_max is not None: convert_to_q_builder.set_q_xy_max(q_xy_max) if q_xy_step is not None: convert_to_q_builder.set_q_xy_step(q_xy_step) if q_xy_step_type is not None: convert_to_q_builder.set_q_xy_step_type(q_xy_step_type) convert_to_q_state = convert_to_q_builder.build() test_director = TestDirector() test_director.set_states(convert_to_q_state=convert_to_q_state, data_state=data_state) return test_director.construct()
def test_that_state_for_sans2d_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.SANS2D, run_number=22048) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("SANS2D00022048") data_info = data_builder.build() # Act builder = get_move_builder(data_info) self.assertTrue(builder) value = 324.2 builder.set_HAB_x_translation_correction(value) # Assert state = builder.build() self.assertTrue(state.detectors[DetectorType.to_string( DetectorType.HAB)].x_translation_correction == value) self.assertTrue(state.detectors[DetectorType.to_string( DetectorType.HAB)].detector_name_short == "front") self.assertTrue(state.detectors[DetectorType.to_string( DetectorType.LAB)].detector_name == "rear-detector") self.assertTrue(state.monitor_names[str(4)] == "monitor4") self.assertTrue(len(state.monitor_names) == 4)
def test_that_wavelength_and_pixel_adjustment_state_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_info = data_builder.build() # Act builder = get_wavelength_and_pixel_adjustment_builder(data_info) self.assertTrue(builder) builder.set_HAB_pixel_adjustment_file("test") builder.set_HAB_wavelength_adjustment_file("test2") builder.set_wavelength_low([1.5]) builder.set_wavelength_high([2.7]) builder.set_wavelength_step(0.5) builder.set_wavelength_step_type(RangeStepType.LIN) state = builder.build() # Assert self.assertTrue(state.adjustment_files[ DetectorType.HAB.value].pixel_adjustment_file == "test") self.assertTrue(state.adjustment_files[ DetectorType.HAB.value].wavelength_adjustment_file == "test2") self.assertEqual(state.wavelength_low, [1.5]) self.assertEqual(state.wavelength_high, [2.7]) self.assertEqual(state.wavelength_step, 0.5) self.assertEqual(state.wavelength_step_type, RangeStepType.LIN)
def test_state_can_be_created_from_valid_user_file_with_data_information(self): # Arrange file_information = SANSFileInformationMock(instrument=SANSInstrument.SANS2D, run_number=22024) data_builder = get_data_builder(SANSFacility.ISIS, file_information, user_file="USER_SANS2D_154E_2p4_4m_M3_Xpress_8mm_SampleChanger_FRONT.txt") data_builder.set_sample_scatter("SANS2D00022024") data_builder.set_sample_scatter_period(3) data_state = data_builder.build() director = StateDirectorISIS(data_state, file_information) user_file_path = create_user_file(sample_user_file) director.set_user_file(user_file_path) state = director.construct() # Assert self._assert_data(state) self._assert_move(state) self._assert_mask(state) self._assert_reduction(state) self._assert_wavelength(state) self._assert_scale(state) self._assert_adjustment(state) self._assert_convert_to_q(state) # clean up if os.path.exists(user_file_path): os.remove(user_file_path)
def test_that_state_for_loq_can_be_built(self): facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_builder.set_sample_scatter_period(3) data_info = data_builder.build() # Act builder = get_move_builder(data_info) self.assertTrue(builder) value = 324.2 builder.set_center_position(value) builder.set_HAB_x_translation_correction(value) builder.set_LAB_sample_centre_pos1(value) # Assert state = builder.build() self.assertEqual(state.center_position, value) self.assertEqual( state.detectors[DetectorType.HAB.value].x_translation_correction, value) self.assertEqual( state.detectors[DetectorType.LAB.value].sample_centre_pos1, value)
def test_that_reduction_state_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_info = data_builder.build() # Act builder = get_save_builder(data_info) self.assertTrue(builder) user_specified_output_name = "test_file_name" zero_free_correction = True file_format = [SaveType.Nexus, SaveType.CanSAS] builder.set_user_specified_output_name(user_specified_output_name) builder.set_zero_free_correction(zero_free_correction) builder.set_file_format(file_format) state = builder.build() # Assert self.assertTrue( state.user_specified_output_name == user_specified_output_name) self.assertTrue(state.zero_free_correction == zero_free_correction) self.assertTrue(state.file_format == file_format)
def test_stat_can_be_created_from_valid_user_file_and_later_on_reset(self): # Arrange file_information = SANSFileInformationMock(instrument=SANSInstrument.SANS2D, run_number=22024) data_builder = get_data_builder(SANSFacility.ISIS, file_information) data_builder.set_sample_scatter("SANS2D00022024") data_builder.set_sample_scatter_period(3) data_state = data_builder.build() director = StateDirectorISIS(data_state, file_information) user_file_path = create_user_file(sample_user_file) director.set_user_file(user_file_path) # Set additional items director.set_mask_builder_radius_min(0.001298) director.set_mask_builder_radius_max(0.003298) director.set_scale_builder_width(1.) director.set_scale_builder_height(1.5) director.set_scale_builder_thickness(12.) director.set_scale_builder_shape(SampleShape.FlatPlate) # Act state = director.construct() # Assert self.assertEqual(state.mask.radius_min, 0.001298) self.assertEqual(state.mask.radius_max, 0.003298) self.assertEqual(state.scale.width, 1.) self.assertEqual(state.scale.height, 1.5) self.assertEqual(state.scale.thickness, 12.) self.assertEqual(state.scale.shape, SampleShape.FlatPlate) # clean up if os.path.exists(user_file_path): os.remove(user_file_path)
def test_that_state_for_loq_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_builder.set_sample_scatter_period(3) data_info = data_builder.build() # Act builder = get_move_builder(data_info) self.assertTrue(builder) value = 324.2 builder.set_center_position(value) builder.set_HAB_x_translation_correction(value) builder.set_LAB_sample_centre_pos1(value) # Assert state = builder.build() self.assertTrue(state.center_position == value) self.assertTrue(state.detectors[DetectorType.to_string( DetectorType.HAB)].x_translation_correction == value) self.assertTrue(state.detectors[DetectorType.to_string( DetectorType.HAB)].detector_name_short == "HAB") self.assertTrue(state.detectors[DetectorType.to_string( DetectorType.LAB)].detector_name == "main-detector-bank") self.assertTrue(state.monitor_names[str(2)] == "monitor2") self.assertTrue(len(state.monitor_names) == 2) self.assertTrue(state.detectors[DetectorType.to_string( DetectorType.LAB)].sample_centre_pos1 == value)
def test_that_mask_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock(run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_builder.set_sample_scatter_period(3) data_info = data_builder.build() # Act builder = get_mask_builder(data_info) self.assertTrue(builder) start_time = [0.1, 1.3] end_time = [0.2, 1.6] builder.set_bin_mask_general_start(start_time) builder.set_bin_mask_general_stop(end_time) builder.set_LAB_single_vertical_strip_mask([1, 2, 3]) # Assert state = builder.build() self.assertTrue(len(state.bin_mask_general_start) == 2) self.assertTrue(state.bin_mask_general_start[0] == start_time[0]) self.assertTrue(state.bin_mask_general_start[1] == start_time[1]) self.assertTrue(len(state.bin_mask_general_stop) == 2) self.assertTrue(state.bin_mask_general_stop[0] == end_time[0]) self.assertTrue(state.bin_mask_general_stop[1] == end_time[1]) strip_mask = state.detectors[DetectorType.to_string( DetectorType.LAB)].single_vertical_strip_mask self.assertTrue(len(strip_mask) == 3) self.assertTrue(strip_mask[2] == 3)
def test_that_divide_uses_settings_from_state_if_they_are_set(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("SANS2D00022024") data_state = data_builder.build() scale_builder = get_scale_builder(data_state, file_information) width = 10. height = 5. thickness = 2. scale_builder.set_shape(SampleShape.DISC) scale_builder.set_thickness(thickness) scale_builder.set_width(width) scale_builder.set_height(height) scale_state = scale_builder.build() test_director = TestDirector() test_director.set_states(scale_state=scale_state, data_state=data_state) state = test_director.construct() workspace = self._get_workspace() output_workspace = _divide_by_sample_volume(workspace=workspace, scale_info=state.scale) expected_volume = thickness * math.pi * math.pow(width, 2) / 4.0 expected_value = 0.3 / expected_volume data_y = output_workspace.dataY(0) self.assertEqual(data_y[0], expected_value)
def test_that_correct_scale_strategy_is_selected_for_loq_2(self): facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_state = data_builder.build() scale_builder = get_scale_builder(data_state, file_information) scale_builder.set_scale(2.4) scale_state = scale_builder.build() test_director = TestDirector() test_director.set_states(scale_state=scale_state, data_state=data_state) state_loq = test_director.construct() workspace = self._get_workspace() output_workspace = _multiply_by_abs_scale( instrument=SANSInstrument.LOQ, workspace=workspace, state_scale=state_loq.scale) # Assert expected_value = 0.3 * 2.4 / math.pi * 100. data_y = output_workspace.dataY(0) self.assertEqual(data_y[0], expected_value)
def test_that_slice_event_state_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_info = data_builder.build() # Act builder = get_wavelength_builder(data_info) self.assertTrue(builder) builder.set_wavelength_low([10.0]) builder.set_wavelength_high([20.0]) builder.set_wavelength_step(3.0) builder.set_wavelength_step_type(RangeStepType.LIN) builder.set_rebin_type(RebinType.REBIN) # Assert state = builder.build() self.assertEqual(state.wavelength_low, [10.0]) self.assertEqual(state.wavelength_high, [20.0]) self.assertEqual(state.wavelength_step_type, RangeStepType.LIN) self.assertEqual(state.rebin_type, RebinType.REBIN)
def test_that_slice_event_state_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_info = data_builder.build() # Act builder = get_slice_event_builder(data_info) self.assertTrue(builder) start_time = [0.1, 1.3] end_time = [0.2, 1.6] builder.set_start_time(start_time) builder.set_end_time(end_time) # Assert state = builder.build() self.assertEqual(len(state.start_time), 2) self.assertEqual(state.start_time[0], start_time[0]) self.assertEqual(state.start_time[1], start_time[1]) self.assertEqual(len(state.end_time), 2) self.assertEqual(state.end_time[0], end_time[0]) self.assertEqual(state.end_time[1], end_time[1])
def test_that_reduction_state_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_info = data_builder.build() # Act builder = get_convert_to_q_builder(data_info) self.assertTrue(builder) builder.set_q_min(12.0) builder.set_q_max(17.0) builder.set_q_1d_rebin_string("12.0,-1.2,17.0") builder.set_reduction_dimensionality(ReductionDimensionality.ONE_DIM) state = builder.build() # Assert self.assertEqual(state.q_min, 12.0) self.assertEqual(state.q_max, 17.0) self.assertEqual(state.q_1d_rebin_string, "12.0,-1.2,17.0") self.assertEqual(state.reduction_dimensionality, ReductionDimensionality.ONE_DIM)
def test_that_reduction_state_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock(instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_info = data_builder.build() # Act builder = get_adjustment_builder(data_info) self.assertTrue(builder) builder.set_calculate_transmission(MockStateCalculateTransmission()) builder.set_normalize_to_monitor(MockStateNormalizeToMonitor()) builder.set_wavelength_and_pixel_adjustment(MockStateWavelengthAndPixelAdjustment()) builder.set_wide_angle_correction(False) state = builder.build() # # Assert self.assertTrue(not state.wide_angle_correction) try: state.validate() is_valid = True except ValueError: is_valid = False self.assertTrue(is_valid)
def test_state_can_be_created_from_valid_user_file_with_data_information(self): # Arrange file_information = SANSFileInformationMock(instrument=SANSInstrument.SANS2D, run_number=22024) data_builder = get_data_builder(SANSFacility.ISIS, file_information) data_builder.set_sample_scatter("SANS2D00022024") data_builder.set_sample_scatter_period(3) data_state = data_builder.build() user_file_path = create_user_file(sample_user_file) parser = UserFileReaderAdapter(user_file_name=user_file_path, data_info=data_state) state = parser.get_all_states() # Assert self._assert_data(state) self._assert_move(state) self._assert_mask(state) self._assert_reduction(state) self._assert_wavelength(state) self._assert_scale(state) self._assert_adjustment(state) self._assert_convert_to_q(state) # clean up if os.path.exists(user_file_path): os.remove(user_file_path)
def _get_mock_data_info(): # TODO I really really dislike having to do this in a test, but # TODO de-coupling StateData is required to avoid it file_information = SANSFileInformationMock(instrument=SANSInstrument.SANS2D, run_number=22024) data_builder = get_data_builder(SANSFacility.ISIS, file_information) data_builder.set_sample_scatter("SANS2D00022024") data_builder.set_sample_scatter_period(3) return data_builder.build()
def test_that_correct_values_are_set_for_LOQ(self): file_information = SANSFileInformationMock( run_number=74044, instrument=SANSInstrument.LOQ) self.beam_centre_model.reset_to_defaults_for_instrument( file_information) self.assertEqual(self.beam_centre_model.r_max, 200)
def test_that_correct_values_are_set_for_LARMOR(self): file_information = SANSFileInformationMock( run_number=2260, instrument=SANSInstrument.LARMOR) self.beam_centre_model.reset_to_defaults_for_instrument( file_information) self.assertEqual(self.beam_centre_model.scale_1, 1.0)
def test_that_correct_values_are_set_for_LARMOR(self): facility = SANSFacility.ISIS file_information = SANSFileInformationMock(run_number=2260, instrument=SANSInstrument.LARMOR) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LARMOR00002260") data_state = data_builder.build() self.beam_centre_model.reset_to_defaults_for_instrument(data_state) self.assertEqual(self.beam_centre_model.scale_1, 1.0)
def get_example_state(): ws_name_sample = "SANS2D00022024" file_information = SANSFileInformationMock(instrument=SANSInstrument.SANS2D, run_number=22024) data_builder = get_data_builder(SANSFacility.ISIS, file_information) data_builder.set_sample_scatter(ws_name_sample) data = data_builder.build() # Get the sample state test_director = TestDirector() test_director.set_states(data_state=data) return test_director.construct()
def test_that_correct_values_are_set_for_LOQ(self): facility = SANSFacility.ISIS file_information = SANSFileInformationMock(run_number=74044, instrument=SANSInstrument.LOQ) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_state = data_builder.build() self.beam_centre_model.reset_to_defaults_for_instrument(data_state) self.assertEqual(self.beam_centre_model.r_max, 200)
def create_state(self, row, file_lookup=True, instrument=SANSInstrument.SANS2D, user_file=""): # 1. Get the data settings, such as sample_scatter, etc... and create the data state. table_index_model = self._table_model.get_table_entry(row) if file_lookup: file_information = table_index_model.file_information else: file_information = SANSFileInformationMock(instrument=instrument, facility=self._facility) data_builder = get_data_builder(self._facility, file_information, user_file) self._set_data_entry(data_builder.set_sample_scatter, table_index_model.sample_scatter) self._set_data_period_entry(data_builder.set_sample_scatter_period, table_index_model.sample_scatter_period) self._set_data_entry(data_builder.set_sample_transmission, table_index_model.sample_transmission) self._set_data_period_entry(data_builder.set_sample_transmission_period, table_index_model.sample_transmission_period) # noqa self._set_data_entry(data_builder.set_sample_direct, table_index_model.sample_direct) self._set_data_period_entry(data_builder.set_sample_direct_period, table_index_model.sample_direct_period) self._set_data_entry(data_builder.set_can_scatter, table_index_model.can_scatter) self._set_data_period_entry(data_builder.set_can_scatter_period, table_index_model.can_scatter_period) self._set_data_entry(data_builder.set_can_transmission, table_index_model.can_transmission) self._set_data_period_entry(data_builder.set_can_transmission_period, table_index_model.can_transmission_period) self._set_data_entry(data_builder.set_can_direct, table_index_model.can_direct) self._set_data_period_entry(data_builder.set_can_direct_period, table_index_model.can_direct_period) data = data_builder.build() # 2. Add elements from the options column state_gui_model = copy.deepcopy(self._state_gui_model) options_column_model = table_index_model.options_column_model self._apply_column_options_to_state(options_column_model, state_gui_model) # 3. Add other columns output_name = table_index_model.output_name if output_name: state_gui_model.output_name = output_name if table_index_model.sample_thickness: state_gui_model.sample_thickness = float(table_index_model.sample_thickness) if table_index_model.sample_height: state_gui_model.sample_height = float(table_index_model.sample_height) if table_index_model.sample_width: state_gui_model.sample_width = float(table_index_model.sample_width) if table_index_model.sample_shape: state_gui_model.sample_shape = table_index_model.sample_shape # 4. Create the rest of the state based on the builder. user_file_state_director = StateDirectorISIS(data, file_information) settings = copy.deepcopy(state_gui_model.settings) user_file_state_director.add_state_settings(settings) return user_file_state_director.construct()
def test_that_reduction_state_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_info = data_builder.build() # Act builder = get_normalize_to_monitor_builder(data_info) self.assertTrue(builder) builder.set_prompt_peak_correction_min(12.0) builder.set_prompt_peak_correction_max(17.0) builder.set_rebin_type(RebinType.Rebin) builder.set_wavelength_low([1.5]) builder.set_wavelength_high([2.7]) builder.set_wavelength_step(0.5) builder.set_wavelength_step_type(RangeStepType.Lin) builder.set_incident_monitor(1) builder.set_background_TOF_general_start(1.4) builder.set_background_TOF_general_stop(34.4) builder.set_background_TOF_monitor_start({"1": 123, "2": 123}) builder.set_background_TOF_monitor_stop({"1": 234, "2": 2323}) state = builder.build() # Assert self.assertTrue(state.prompt_peak_correction_min == 12.0) self.assertTrue(state.prompt_peak_correction_max == 17.0) self.assertTrue(state.rebin_type is RebinType.Rebin) self.assertTrue(state.wavelength_low == [1.5]) self.assertTrue(state.wavelength_high == [2.7]) self.assertTrue(state.wavelength_step == 0.5) self.assertTrue(state.wavelength_step_type is RangeStepType.Lin) self.assertTrue(state.background_TOF_general_start == 1.4) self.assertTrue(state.background_TOF_general_stop == 34.4) self.assertTrue( len( set(state.background_TOF_monitor_start.items()) & set({ "1": 123, "2": 123 }.items())) == 2) self.assertTrue( len( set(state.background_TOF_monitor_stop.items()) & set({ "1": 234, "2": 2323 }.items())) == 2) self.assertTrue(state.incident_monitor == 1)
def test_that_reduction_state_can_be_built(self): # Arrange facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.LOQ, run_number=74044) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("LOQ74044") data_info = data_builder.build() # Act builder = get_normalize_to_monitor_builder(data_info) self.assertTrue(builder) builder.set_prompt_peak_correction_min(12.0) builder.set_prompt_peak_correction_max(17.0) builder.set_rebin_type(RebinType.REBIN) builder.state.wavelength_interval.wavelength_full_range = (1.5, 2.7) builder.state.wavelength_interval.wavelength_step = 0.5 builder.set_wavelength_step_type(RangeStepType.LIN) builder.set_incident_monitor(1) builder.set_background_TOF_general_start(1.4) builder.set_background_TOF_general_stop(34.4) builder.set_background_TOF_monitor_start({"1": 123, "2": 123}) builder.set_background_TOF_monitor_stop({"1": 234, "2": 2323}) state = builder.build() # Assert self.assertEqual(state.prompt_peak_correction_min, 12.0) self.assertEqual(state.prompt_peak_correction_max, 17.0) self.assertEqual(state.rebin_type, RebinType.REBIN) self.assertEqual(state.wavelength_interval.wavelength_full_range, (1.5, 2.7)) self.assertEqual(state.wavelength_interval.wavelength_step, 0.5) self.assertEqual(state.wavelength_step_type, RangeStepType.LIN) self.assertEqual(state.background_TOF_general_start, 1.4) self.assertEqual(state.background_TOF_general_stop, 34.4) self.assertEqual( len( set(state.background_TOF_monitor_start.items()) & set({ "1": 123, "2": 123 }.items())), 2) self.assertEqual( len( set(state.background_TOF_monitor_stop.items()) & set({ "1": 234, "2": 2323 }.items())), 2) self.assertEqual(state.incident_monitor, 1)
def get_state_obj(monitor_4_dist, monitor_5_dist): facility = SANSFacility.ISIS file_information = SANSFileInformationMock(instrument=SANSInstrument.ZOOM, run_number=6113) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("ZOOM00006113") data_builder.set_sample_scatter_period(3) data_info = data_builder.build() state = AllStates() state.move = get_move_builder(data_info).build() state.instrument_info = StateInstrumentInfo.build_from_data_info(data_info) state.move.monitor_4_offset = monitor_4_dist state.move.monitor_5_offset = monitor_5_dist return state
def get_state_move_obj(monitor_4_dist): facility = SANSFacility.ISIS file_information = SANSFileInformationMock( instrument=SANSInstrument.SANS2D, run_number=22048) data_builder = get_data_builder(facility, file_information) data_builder.set_sample_scatter("SANS2D22048") data_builder.set_sample_scatter_period(3) data_info = data_builder.build() state_builder = get_move_builder(data_info) state = state_builder.build() state.monitor_4_offset = monitor_4_dist return state