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)
Beispiel #4
0
    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
Beispiel #5
0
 def test_can_handle_no_wavelength(self):
     input_dict = {"binning": {"another_field": None}}
     self.assertIsNone(
         WavelengthTomlParser(input_dict).set_wavelength_details(
             mock.NonCallableMock()))