def test_linear_wavelength_setting(self): input_dict = {"binning": {"wavelength": {"type": "Lin", "start": 1.0, "stop": 10.0, "step": 2.0}}} wav_objs = self._get_wavelength_objs() WavelengthTomlParser(input_dict).set_wavelength_details(wav_objs) self._assert_wav_objs(wav_objs, wav_low=1.0, wav_high=10.0, range_type=RangeStepType.LIN, step_size=2.0)
def test_rangelin_wavelength_setting_legacy(self): input_dict = {"binning": {"wavelength": {"type": "RangeLog", "binning": "1,3,7,9", "step": "0.5"}}} wav_objs = self._get_wavelength_objs() WavelengthTomlParser(input_dict).set_wavelength_details(wav_objs) self._assert_wav_objs(wav_objs, range_type=RangeStepType.RANGE_LOG, wav_low=1., wav_high=9.) self.assertEqual([(1., 3.), (3., 7.), (7., 9.), (1., 9.)], wav_objs.wavelength.wavelength_interval.selected_ranges) self.assertEqual(0.5, wav_objs.wavelength.wavelength_interval.wavelength_step)
def test_rangelin_wavelength_setting(self): input_dict = {"binning": {"wavelength": {"type": "RangeLin", "binning": "1-3,4-6", "step": "0.5"}}} wav_objs = self._get_wavelength_objs() WavelengthTomlParser(input_dict).set_wavelength_details(wav_objs) self._assert_wav_objs(wav_objs, range_type=RangeStepType.RANGE_LIN, wav_low=1., wav_high=6.) self.assertEqual([(1., 3.), (4., 6.), (1., 6.0)], wav_objs.wavelength.wavelength_interval.selected_ranges) self.assertEqual(0.5, wav_objs.wavelength.wavelength_interval.wavelength_step)
def _parse_binning(self): binning_dict = self.get_val(["binning"]) to_set = DuplicateWavelengthStates( transmission=self.calculate_transmission, normalize=self.normalize_to_monitor, wavelength=self.wavelength, pixel=self.wavelength_and_pixel) WavelengthTomlParser(toml_dict=self._input).set_wavelength_details( state_objs=to_set) one_d_dict = self.get_val("1d_reduction", binning_dict) if one_d_dict: one_d_binning = self.get_val(["1d_reduction", "binning"], binning_dict) q_min, q_max = self._get_1d_min_max(one_d_binning) self.convert_to_q.q_min = q_min self.convert_to_q.q_1d_rebin_string = one_d_binning self.convert_to_q.q_max = q_max self.convert_to_q.radius_cutoff = self.get_val("radius_cut", one_d_dict, default=0.0) self.convert_to_q.wavelength_cutoff = self.get_val( "wavelength_cut", one_d_dict, default=0.0) self.convert_to_q.q_xy_max = self.get_val(["2d_reduction", "stop"], binning_dict) self.convert_to_q.q_xy_step = self.get_val(["2d_reduction", "step"], binning_dict) two_d_step_type = self.get_val(["2d_reduction", "type"], binning_dict) if two_d_step_type: self.convert_to_q.q_xy_step_type = RangeStepType(two_d_step_type) rebin_type = self.get_val(["2d_reduction", "interpolate"], binning_dict, default=False) rebin_type = RebinType.INTERPOLATING_REBIN if rebin_type else RebinType.REBIN self.calculate_transmission.rebin_type = rebin_type self.normalize_to_monitor.rebin_type = rebin_type
def test_can_handle_no_wavelength(self): input_dict = {"binning": {"another_field": None}} self.assertIsNone( WavelengthTomlParser(input_dict).set_wavelength_details( mock.NonCallableMock()))