def test_that_provides_null_q_resolution_calculator_when_is_turned_off(self): # Arrange mock_state = QResolutionCalculatorTest._provide_mock_state(use_q_resolution=False) factory = QResolutionCalculatorFactory() # Act calculator = factory.create_q_resolution_calculator(mock_state) # Assert self.assertTrue(isinstance(calculator, NullQResolutionCalculator))
def _run_q_1d(self, state): data_workspace = self.getProperty("InputWorkspace").value wavelength_adjustment_workspace = self.getProperty( "InputWorkspaceWavelengthAdjustment").value pixel_adjustment_workspace = self.getProperty( "InputWorkspacePixelAdjustment").value wavelength_and_pixel_adjustment_workspace = self.getProperty( "InputWorkspaceWavelengthAndPixelAdjustment").value # Get QResolution convert_to_q = state.convert_to_q q_resolution_factory = QResolutionCalculatorFactory() q_resolution_calculator = q_resolution_factory.create_q_resolution_calculator( state) q_resolution_workspace = q_resolution_calculator.get_q_resolution_workspace( convert_to_q, data_workspace) output_parts = self.getProperty("OutputParts").value # Extract relevant settings q_binning = convert_to_q.q_1d_rebin_string use_gravity = convert_to_q.use_gravity gravity_extra_length = convert_to_q.gravity_extra_length radius_cutoff = convert_to_q.radius_cutoff * 1000. # Q1D2 expects the radius cutoff to be in mm wavelength_cutoff = convert_to_q.wavelength_cutoff q1d_name = "Q1D" q1d_options = { "DetBankWorkspace": data_workspace, "OutputWorkspace": EMPTY_NAME, "OutputBinning": q_binning, "AccountForGravity": use_gravity, "RadiusCut": radius_cutoff, "WaveCut": wavelength_cutoff, "OutputParts": output_parts, "ExtraLength": gravity_extra_length } if wavelength_adjustment_workspace: q1d_options.update( {"WavelengthAdj": wavelength_adjustment_workspace}) if pixel_adjustment_workspace: q1d_options.update({"PixelAdj": pixel_adjustment_workspace}) if wavelength_and_pixel_adjustment_workspace: q1d_options.update( {"WavePixelAdj": wavelength_and_pixel_adjustment_workspace}) if q_resolution_workspace: q1d_options.update({"QResolution": q_resolution_workspace}) q1d_alg = create_unmanaged_algorithm(q1d_name, **q1d_options) q1d_alg.execute() reduced_workspace = q1d_alg.getProperty("OutputWorkspace").value # Get the partial workspaces sum_of_counts_workspace, sum_of_norms_workspace = self._get_partial_output( output_parts, q1d_alg, do_clean=False) return reduced_workspace, sum_of_counts_workspace, sum_of_norms_workspace
def _run_q_1d(self, state): data_workspace = self.getProperty("InputWorkspace").value wavelength_adjustment_workspace = self.getProperty("InputWorkspaceWavelengthAdjustment").value pixel_adjustment_workspace = self.getProperty("InputWorkspacePixelAdjustment").value wavelength_and_pixel_adjustment_workspace = self.getProperty("InputWorkspaceWavelengthAndPixelAdjustment").value # Get QResolution convert_to_q = state.convert_to_q q_resolution_factory = QResolutionCalculatorFactory() q_resolution_calculator = q_resolution_factory.create_q_resolution_calculator(state) q_resolution_workspace = q_resolution_calculator.get_q_resolution_workspace(convert_to_q, data_workspace) output_parts = self.getProperty("OutputParts").value # Extract relevant settings q_binning = convert_to_q.q_1d_rebin_string use_gravity = convert_to_q.use_gravity gravity_extra_length = convert_to_q.gravity_extra_length radius_cutoff = convert_to_q.radius_cutoff * 1000. # Q1D2 expects the radius cutoff to be in mm wavelength_cutoff = convert_to_q.wavelength_cutoff q1d_name = "Q1D" q1d_options = {"DetBankWorkspace": data_workspace, "OutputWorkspace": EMPTY_NAME, "OutputBinning": q_binning, "AccountForGravity": use_gravity, "RadiusCut": radius_cutoff, "WaveCut": wavelength_cutoff, "OutputParts": output_parts, "ExtraLength": gravity_extra_length} if wavelength_adjustment_workspace: q1d_options.update({"WavelengthAdj": wavelength_adjustment_workspace}) if pixel_adjustment_workspace: q1d_options.update({"PixelAdj": pixel_adjustment_workspace}) if wavelength_and_pixel_adjustment_workspace: q1d_options.update({"WavePixelAdj": wavelength_and_pixel_adjustment_workspace}) if q_resolution_workspace: q1d_options.update({"QResolution": q_resolution_workspace}) q1d_alg = create_unmanaged_algorithm(q1d_name, **q1d_options) q1d_alg.execute() reduced_workspace = q1d_alg.getProperty("OutputWorkspace").value # Get the partial workspaces sum_of_counts_workspace, sum_of_norms_workspace = self._get_partial_output(output_parts, q1d_alg, do_clean=False) return reduced_workspace, sum_of_counts_workspace, sum_of_norms_workspace
def test_that_raises_when_unknown_facility_is_chosen(self): # Arrange mock_state = MockContainer() mock_state.data = MockContainer() mock_state.data.facility = None factory = QResolutionCalculatorFactory() # Act + Assert args = [mock_state] self.assertRaises(RuntimeError, factory.create_q_resolution_calculator, *args)