Ejemplo n.º 1
0
    def test_callable_params_are_used(self):
        # These attributes are based on a custom YAML file at the specified path
        expected_label = "16_4"
        expected_vanadium_runs = "11-12"
        expected_empty_runs = "13-14"
        expected_grouping_file_name = "grouping_file"
        run_number_string = "17-18"
        mock_inst = self.setup_mock_inst_settings(yaml_file_path="ISISPowderRunDetailsTestCallable.yaml")

        # Get the YAML file as a dict first
        wrapped_funcs = run_details.RunDetailsWrappedCommonFuncs

        yaml_callable = run_details.CustomFuncForRunDetails(user_function=wrapped_funcs.get_cal_mapping_dict,
                                                            run_number_string=run_number_string,
                                                            inst_settings=mock_inst)

        empty_callable = yaml_callable.add_to_func_chain(user_function=wrapped_funcs.cal_dictionary_key_helper,
                                                         key="custom_empty_run_numbers")
        vanadium_callable = yaml_callable.add_to_func_chain(user_function=wrapped_funcs.cal_dictionary_key_helper,
                                                            key="custom_vanadium_run_numbers")
        grouping_callable = run_details.CustomFuncForRunDetails(user_function=lambda: expected_grouping_file_name)
        output_obj = run_details.create_run_details_object(run_number_string=run_number_string, inst_settings=mock_inst,
                                                           is_vanadium_run=True, empty_run_call=empty_callable,
                                                           vanadium_run_call=vanadium_callable,
                                                           grouping_file_name_call=grouping_callable)

        self.assertEqual(output_obj.label, expected_label)
        self.assertEqual(output_obj.empty_runs, expected_empty_runs)
        self.assertEqual(output_obj.grouping_file_path,
                         os.path.join(mock_inst.calibration_dir, expected_grouping_file_name))
        self.assertEqual(output_obj.vanadium_run_numbers, expected_vanadium_runs)
        self.assertEqual(output_obj.run_number, expected_vanadium_runs)
    def test_create_run_details_object(self):
        # These attributes are based on a flat YAML file at the specified path
        expected_label = "16_4"
        expected_vanadium_runs = "11-12"
        expected_empty_runs = "13-14"
        expected_offset_file_name = "offset_file_name"
        run_number_string = "17-18"
        mock_inst = self.setup_mock_inst_settings(yaml_file_path="ISISPowderRunDetailsTest.yaml")
        run_number = common.get_first_run_number(run_number_string=run_number_string)
        cal_mapping_dict = yaml_parser.get_run_dictionary(run_number_string=run_number,
                                                          file_path=mock_inst.cal_mapping_path)

        grouping_filename = mock_inst.grouping_file_name
        empty_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="empty_run_numbers")
        vanadium_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="vanadium_run_numbers")

        output_obj = run_details.create_run_details_object(run_number_string=run_number_string, inst_settings=mock_inst,
                                                           is_vanadium_run=False, grouping_file_name=grouping_filename,
                                                           empty_run_number=empty_runs, vanadium_string=vanadium_runs)

        self.assertEqual(output_obj.empty_runs, expected_empty_runs)
        self.assertEqual(output_obj.grouping_file_path,
                         os.path.join(mock_inst.calibration_dir, mock_inst.grouping_file_name))
        expected_file_ext = mock_inst.file_extension
        expected_file_ext = expected_file_ext if expected_file_ext.startswith('.') else '.' + expected_file_ext
        self.assertEqual(output_obj.file_extension, expected_file_ext)
        self.assertEqual(output_obj.label, expected_label)
        self.assertEqual(output_obj.offset_file_path,
                         os.path.join(mock_inst.calibration_dir, expected_label, expected_offset_file_name))
        self.assertEqual(output_obj.output_run_string, run_number_string)
        self.assertEqual(output_obj.run_number, 17)
        self.assertEqual(output_obj.vanadium_run_numbers, expected_vanadium_runs)
Ejemplo n.º 3
0
def get_run_details(run_number_string, inst_settings, is_vanadium_run):
    # Get empty and vanadium
    mode_run_numbers = _get_current_mode_dictionary(run_number_string, inst_settings)

    empty_runs = _get_run_numbers_for_key(current_mode_run_numbers=mode_run_numbers, key="empty_run_numbers")
    vanadium_runs = _get_run_numbers_for_key(current_mode_run_numbers=mode_run_numbers, key="vanadium_run_numbers")
    grouping_file_name = inst_settings.grouping_file_name
    if inst_settings.texture_mode:
        return create_run_details_object(run_number_string=run_number_string, inst_settings=inst_settings,
                                         is_vanadium_run=is_vanadium_run, empty_run_number=empty_runs,
                                         grouping_file_name=grouping_file_name, vanadium_string=vanadium_runs,
                                         splined_name_list=["texture_mode"])

    return create_run_details_object(run_number_string=run_number_string, inst_settings=inst_settings,

                                     is_vanadium_run=is_vanadium_run, empty_run_number=empty_runs,
                                     grouping_file_name=grouping_file_name, vanadium_string=vanadium_runs)
Ejemplo n.º 4
0
    def test_create_run_details_object_when_van_cal(self):
        # When we are running the vanadium calibration we expected the run number to take the vanadium
        # number instead
        run_number_string = "17-18"
        expected_vanadium_runs = "11-12"
        mock_inst = self.setup_mock_inst_settings(yaml_file_path="ISISPowderRunDetailsTest.yaml")
        output_obj = run_details.create_run_details_object(run_number_string=run_number_string, inst_settings=mock_inst,
                                                           is_vanadium_run=True)

        self.assertEqual(expected_vanadium_runs, output_obj.run_number)
        self.assertEqual(output_obj.vanadium_run_numbers, output_obj.run_number)
        self.assertEqual(expected_vanadium_runs, output_obj.output_run_string)
Ejemplo n.º 5
0
    def test_run_details_splined_name_list_is_used(self):
        expected_vanadium_runs = "11-12"
        expected_offset_file_name = "offset_file_name"
        splined_name_list = ["bar", "bang", "baz"]
        mock_inst = self.setup_mock_inst_settings(yaml_file_path="ISISPowderRunDetailsTest.yaml")
        output_obj = run_details.create_run_details_object(run_number_string=10, inst_settings=mock_inst,
                                                           is_vanadium_run=False, splined_name_list=splined_name_list)

        expected_splined_out_str = ''.join('_' + val for val in splined_name_list)
        expected_output_name = "VanSplined_" + expected_vanadium_runs + expected_splined_out_str
        expected_output_name += '_' + expected_offset_file_name + ".nxs"
        expected_path = os.path.join(mock_inst.calibration_dir, output_obj.label, expected_output_name)
        self.assertEqual(expected_path, output_obj.splined_vanadium_file_path)
Ejemplo n.º 6
0
def get_run_details(run_number_string, inst_settings, is_vanadium):
    # Drill down to relevant section
    run_mapping_dict = get_cal_mapping_dict(run_number_string, inst_settings.cal_mapping_path)
    inst_mode_dict = common.cal_map_dictionary_key_helper(run_mapping_dict, key=inst_settings.mode)
    tof_window = common.cal_map_dictionary_key_helper(dictionary=inst_mode_dict, key=inst_settings.tof_window)

    empty_run = _get_run_numbers_for_key(tof_window, key="empty_run_numbers")
    vanadium_run = _get_run_numbers_for_key(tof_window, key="vanadium_run_numbers")

    grouping_file_name = inst_settings.grouping_file_name

    return create_run_details_object(run_number_string=run_number_string, inst_settings=inst_settings,
                                     is_vanadium_run=is_vanadium, empty_run_number=empty_run,
                                     vanadium_string=vanadium_run, grouping_file_name=grouping_file_name)
Ejemplo n.º 7
0
def get_run_details(run_number_string, inst_settings, is_vanadium_run):
    all_run_numbers = get_cal_mapping_dict(run_number_string, inst_settings.cal_mapping_path)
    empty_runs = _get_run_numbers_for_key(current_mode_run_numbers=all_run_numbers, key="empty_run_numbers")
    vanadium_runs = _get_run_numbers_for_key(current_mode_run_numbers=all_run_numbers, key="vanadium_run_numbers")

    grouping_file_name = _pearl_get_tt_grouping_file_name(inst_settings)

    spline_identifier = [inst_settings.tt_mode]
    if inst_settings.long_mode:
        spline_identifier.append("_long")

    return create_run_details_object(run_number_string=run_number_string, inst_settings=inst_settings,
                                     is_vanadium_run=is_vanadium_run, splined_name_list=spline_identifier,
                                     grouping_file_name=grouping_file_name, empty_run_number=empty_runs,
                                     vanadium_string=vanadium_runs, van_abs_file_name=inst_settings.van_absorb_file)
    def test_generate_out_file_paths(self):
        cal_dir = self._create_temp_dir()
        out_dir = self._create_temp_dir()

        mock_inst = self._setup_mock_inst(suffix="-suf", calibration_dir=cal_dir, output_dir=out_dir)
        run_number = 15
        run_details_obj = run_details.create_run_details_object(run_number_string=run_number,
                                                                inst_settings=mock_inst._inst_settings,
                                                                is_vanadium_run=False)
        output_paths = mock_inst._generate_out_file_paths(run_details=run_details_obj)

        expected_nxs_filename = os.path.join(out_dir,
                                             "16_4",
                                             "ISISPowderAbstractInstrumentTest",
                                             "MOCK15-suf.nxs")
        self.assertEquals(output_paths["nxs_filename"], expected_nxs_filename)
Ejemplo n.º 9
0
def get_run_details(run_number_string, inst_settings, is_vanadium_run):
    mode_run_numbers = _get_current_mode_dictionary(run_number_string, inst_settings)

    # Get empty and vanadium
    err_message = "this must be under the relevant Rietveld or PDF mode."

    empty_runs = common.cal_map_dictionary_key_helper(mode_run_numbers,
                                                      key="empty_run_numbers", append_to_error_message=err_message)
    vanadium_runs = common.cal_map_dictionary_key_helper(mode_run_numbers, key="vanadium_run_numbers",
                                                         append_to_error_message=err_message)

    grouping_file_name = inst_settings.grouping_file_name

    return create_run_details_object(run_number_string=run_number_string, inst_settings=inst_settings,
                                     is_vanadium_run=is_vanadium_run, empty_run_number=empty_runs,
                                     vanadium_string=vanadium_runs, grouping_file_name=grouping_file_name)
Ejemplo n.º 10
0
def get_run_details(run_number_string, inst_settings, is_vanadium_run):
    all_run_numbers = get_cal_mapping_dict(run_number_string, inst_settings.cal_mapping_path)
    empty_runs = _get_run_numbers_for_key(current_mode_run_numbers=all_run_numbers, key="empty_run_numbers")
    vanadium_runs = _get_run_numbers_for_key(current_mode_run_numbers=all_run_numbers, key="vanadium_run_numbers")

    grouping_file_name = _pearl_get_tt_grouping_file_name(inst_settings)

    spline_identifier = [inst_settings.tt_mode]
    if inst_settings.long_mode:
        spline_identifier.append("long")
    if inst_settings.tt_mode == "custom":
        spline_identifier.append(os.path.splitext(os.path.basename(grouping_file_name))[0])

    return create_run_details_object(run_number_string=run_number_string, inst_settings=inst_settings,
                                     is_vanadium_run=is_vanadium_run, splined_name_list=spline_identifier,
                                     grouping_file_name=grouping_file_name, empty_run_number=empty_runs,
                                     vanadium_string=vanadium_runs, van_abs_file_name=inst_settings.van_absorb_file)
Ejemplo n.º 11
0
    def test_create_run_details_object(self):
        # These attributes are based on a flat YAML file at the specified path
        expected_label = "16_4"
        expected_vanadium_runs = "11-12"
        expected_empty_runs = "13-14"
        expected_offset_file_name = "offset_file_name"
        run_number_string = "17-18"
        mock_inst = self.setup_mock_inst_settings(
            yaml_file_path="ISISPowderRunDetailsTest.yaml")
        run_number = common.get_first_run_number(
            run_number_string=run_number_string)
        cal_mapping_dict = yaml_parser.get_run_dictionary(
            run_number_string=run_number, file_path=mock_inst.cal_mapping_path)

        grouping_filename = mock_inst.grouping_file_name
        empty_runs = common.cal_map_dictionary_key_helper(
            dictionary=cal_mapping_dict, key="empty_run_numbers")
        vanadium_runs = common.cal_map_dictionary_key_helper(
            dictionary=cal_mapping_dict, key="vanadium_run_numbers")

        output_obj = run_details.create_run_details_object(
            run_number_string=run_number_string,
            inst_settings=mock_inst,
            is_vanadium_run=False,
            grouping_file_name=grouping_filename,
            empty_run_number=empty_runs,
            vanadium_string=vanadium_runs)

        self.assertEqual(output_obj.empty_runs, expected_empty_runs)
        self.assertEqual(
            output_obj.grouping_file_path,
            os.path.join(mock_inst.calibration_dir,
                         mock_inst.grouping_file_name))
        expected_file_ext = mock_inst.file_extension
        expected_file_ext = expected_file_ext if expected_file_ext.startswith(
            '.') else '.' + expected_file_ext
        self.assertEqual(output_obj.file_extension, expected_file_ext)
        self.assertEqual(output_obj.label, expected_label)
        self.assertEqual(
            output_obj.offset_file_path,
            os.path.join(mock_inst.calibration_dir, expected_label,
                         expected_offset_file_name))
        self.assertEqual(output_obj.output_run_string, run_number_string)
        self.assertEqual(output_obj.run_number, 17)
        self.assertEqual(output_obj.vanadium_run_numbers,
                         expected_vanadium_runs)
Ejemplo n.º 12
0
    def test_generate_out_file_paths(self):
        cal_dir = self._create_temp_dir()
        out_dir = self._create_temp_dir()

        mock_inst = self._setup_mock_inst(suffix="-suf",
                                          calibration_dir=cal_dir,
                                          output_dir=out_dir)
        run_number = 15
        run_details_obj = run_details.create_run_details_object(
            run_number_string=run_number,
            inst_settings=mock_inst._inst_settings,
            is_vanadium_run=False)
        output_paths = mock_inst._generate_out_file_paths(
            run_details=run_details_obj)

        expected_nxs_filename = os.path.join(
            out_dir, "16_4", "ISISPowderAbstractInstrumentTest",
            "MOCK15-suf.nxs")
        self.assertEquals(output_paths["nxs_filename"], expected_nxs_filename)
    def test_run_details_splined_name_list_is_used(self):
        expected_vanadium_runs = "11-12"
        expected_offset_file_name = "offset_file_name"
        splined_name_list = ["bar", "bang", "baz"]
        mock_inst = self.setup_mock_inst_settings(
            yaml_file_path="ISISPowderRunDetailsTest.yaml")
        output_obj = run_details.create_run_details_object(
            run_number_string=10,
            inst_settings=mock_inst,
            is_vanadium_run=False,
            splined_name_list=splined_name_list)

        expected_splined_out_str = ''.join('_' + val
                                           for val in splined_name_list)
        expected_output_name = "VanSplined_" + expected_vanadium_runs + expected_splined_out_str
        expected_output_name += '_' + expected_offset_file_name + ".nxs"
        expected_path = os.path.join(mock_inst.calibration_dir,
                                     output_obj.label, expected_output_name)
        self.assertEqual(expected_path, output_obj.splined_vanadium_file_path)
    def test_callable_params_are_used(self):
        # These attributes are based on a custom YAML file at the specified path
        expected_label = "16_4"
        expected_vanadium_runs = "11-12"
        expected_empty_runs = "13-14"
        expected_grouping_file_name = "grouping_file"
        run_number_string = "17-18"
        mock_inst = self.setup_mock_inst_settings(
            yaml_file_path="ISISPowderRunDetailsTestCallable.yaml")

        # Get the YAML file as a dict first
        wrapped_funcs = run_details.RunDetailsWrappedCommonFuncs

        yaml_callable = run_details.CustomFuncForRunDetails(
            user_function=wrapped_funcs.get_cal_mapping_dict,
            run_number_string=run_number_string,
            inst_settings=mock_inst)

        empty_callable = yaml_callable.add_to_func_chain(
            user_function=wrapped_funcs.cal_dictionary_key_helper,
            key="custom_empty_run_numbers")
        vanadium_callable = yaml_callable.add_to_func_chain(
            user_function=wrapped_funcs.cal_dictionary_key_helper,
            key="custom_vanadium_run_numbers")
        grouping_callable = run_details.CustomFuncForRunDetails(
            user_function=lambda: expected_grouping_file_name)
        output_obj = run_details.create_run_details_object(
            run_number_string=run_number_string,
            inst_settings=mock_inst,
            is_vanadium_run=True,
            empty_run_call=empty_callable,
            vanadium_run_call=vanadium_callable,
            grouping_file_name_call=grouping_callable)

        self.assertEqual(output_obj.label, expected_label)
        self.assertEqual(output_obj.empty_runs, expected_empty_runs)
        self.assertEqual(
            output_obj.grouping_file_path,
            os.path.join(mock_inst.calibration_dir,
                         expected_grouping_file_name))
        self.assertEqual(output_obj.vanadium_run_numbers,
                         expected_vanadium_runs)
        self.assertEqual(output_obj.run_number, expected_vanadium_runs)
Ejemplo n.º 15
0
def get_run_details(run_number_string, inst_settings, is_vanadium_run):
    cal_mapping_callable = CustomFuncForRunDetails().add_to_func_chain(
        user_function=RunDetailsWrappedCommonFuncs.get_cal_mapping_dict, run_number_string=run_number_string,
        inst_settings=inst_settings
    ).add_to_func_chain(user_function=gem_get_chopper_config, inst_settings=inst_settings)

    # Get empty and vanadium
    err_message = "this must be under the relevant Rietveld or PDF mode."

    empty_run_callable = cal_mapping_callable.add_to_func_chain(
        user_function=RunDetailsWrappedCommonFuncs.cal_dictionary_key_helper, key="empty_run_numbers",
        append_to_error_message=err_message)

    vanadium_run_callable = cal_mapping_callable.add_to_func_chain(
        user_function=RunDetailsWrappedCommonFuncs.cal_dictionary_key_helper, key="vanadium_run_numbers",
        append_to_error_message=err_message)

    return create_run_details_object(run_number_string=run_number_string, inst_settings=inst_settings,
                                     is_vanadium_run=is_vanadium_run, empty_run_call=empty_run_callable,
                                     vanadium_run_call=vanadium_run_callable)
Ejemplo n.º 16
0
def get_run_details(run_number_string, inst_settings, is_vanadium):
    # Drill down to relevant section
    run_mapping_dict = get_cal_mapping_dict(run_number_string,
                                            inst_settings.cal_mapping_path)
    inst_mode_dict = common.cal_map_dictionary_key_helper(
        run_mapping_dict, key=inst_settings.mode)
    tof_window = common.cal_map_dictionary_key_helper(
        dictionary=inst_mode_dict, key=inst_settings.tof_window)

    empty_run = _get_run_numbers_for_key(tof_window, key="empty_run_numbers")
    vanadium_run = _get_run_numbers_for_key(tof_window,
                                            key="vanadium_run_numbers")

    grouping_file_name = inst_settings.grouping_file_name

    return create_run_details_object(run_number_string=run_number_string,
                                     inst_settings=inst_settings,
                                     is_vanadium_run=is_vanadium,
                                     empty_run_number=empty_run,
                                     vanadium_string=vanadium_run,
                                     grouping_file_name=grouping_file_name)
Ejemplo n.º 17
0
    def test_create_run_details_object_when_van_cal(self):
        # When we are running the vanadium calibration we expected the run number to take the vanadium
        # number instead
        run_number_string = "17-18"
        expected_vanadium_runs = "11-12"
        mock_inst = self.setup_mock_inst_settings(yaml_file_path="ISISPowderRunDetailsTest.yaml")
        run_number = common.get_first_run_number(run_number_string=run_number_string)
        cal_mapping_dict = yaml_parser.get_run_dictionary(run_number_string=run_number,
                                                          file_path=mock_inst.cal_mapping_path)

        grouping_filename = mock_inst.grouping_file_name
        empty_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="empty_run_numbers")
        vanadium_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="vanadium_run_numbers")

        output_obj = run_details.create_run_details_object(run_number_string=run_number_string, inst_settings=mock_inst,
                                                           is_vanadium_run=True, grouping_file_name=grouping_filename,
                                                           empty_run_number=empty_runs, vanadium_string=vanadium_runs)

        self.assertEqual(expected_vanadium_runs, output_obj.run_number)
        self.assertEqual(output_obj.vanadium_run_numbers, output_obj.run_number)
        self.assertEqual(expected_vanadium_runs, output_obj.output_run_string)
    def test_create_run_details_object_when_van_cal(self):
        # When we are running the vanadium calibration we expected the run number to take the vanadium
        # number instead
        run_number_string = "17-18"
        expected_vanadium_runs = "11-12"
        mock_inst = self.setup_mock_inst_settings(yaml_file_path="ISISPowderRunDetailsTest.yaml")
        run_number = common.get_first_run_number(run_number_string=run_number_string)
        cal_mapping_dict = yaml_parser.get_run_dictionary(run_number_string=run_number,
                                                          file_path=mock_inst.cal_mapping_path)

        grouping_filename = mock_inst.grouping_file_name
        empty_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="empty_run_numbers")
        vanadium_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="vanadium_run_numbers")

        output_obj = run_details.create_run_details_object(run_number_string=run_number_string, inst_settings=mock_inst,
                                                           is_vanadium_run=True, grouping_file_name=grouping_filename,
                                                           empty_run_number=empty_runs, vanadium_string=vanadium_runs)

        self.assertEqual(expected_vanadium_runs, output_obj.run_number)
        self.assertEqual(output_obj.vanadium_run_numbers, output_obj.run_number)
        self.assertEqual(expected_vanadium_runs, output_obj.output_run_string)
Ejemplo n.º 19
0
    def _setup_for_generate_out_file_paths(self,
                                           nxs_template="",
                                           tof_xye_template="",
                                           suffix=None,
                                           file_ext=None,
                                           dat_files_dir=""):
        cal_dir = self._create_temp_dir()
        out_dir = self._create_temp_dir()

        mock_inst = self._setup_mock_inst(
            suffix=suffix,
            file_ext=file_ext,
            yaml_file_path="ISISPowderRunDetailsTest.yaml",
            calibration_dir=cal_dir,
            output_dir=out_dir,
            nxs_filename=nxs_template,
            tof_xye_filename=tof_xye_template,
            dat_files_directory=dat_files_dir)

        run_number = 15
        run_number2 = common.get_first_run_number(run_number_string=run_number)
        cal_mapping_dict = yaml_parser.get_run_dictionary(
            run_number_string=run_number2,
            file_path=mock_inst.cal_mapping_path)

        grouping_filename = _gen_random_string()
        empty_runs = common.cal_map_dictionary_key_helper(
            dictionary=cal_mapping_dict, key="empty_run_numbers")
        vanadium_runs = common.cal_map_dictionary_key_helper(
            dictionary=cal_mapping_dict, key="vanadium_run_numbers")

        run_details_obj = run_details.create_run_details_object(
            run_number_string=run_number,
            inst_settings=mock_inst._inst_settings,
            is_vanadium_run=False,
            grouping_file_name=grouping_filename,
            empty_inst_run_number=empty_runs,
            vanadium_string=vanadium_runs)

        return mock_inst, run_details_obj, out_dir
Ejemplo n.º 20
0
def get_run_details(run_number_string, inst_settings, is_vanadium):
    cal_mapping_callable = CustomFuncForRunDetails().add_to_func_chain(
        user_function=RunDetailsWrappedCommonFuncs.get_cal_mapping_dict,
        run_number_string=run_number_string, inst_settings=inst_settings)

    mapping_dict_callable = cal_mapping_callable.add_to_func_chain(user_function=hrpd_get_inst_mode,
                                                                   inst_settings=inst_settings)

    tof_dict_callable = mapping_dict_callable.add_to_func_chain(user_function=hrpd_get_tof_window,
                                                                inst_settings=inst_settings)

    err_message = "this must be under 'coupled' or 'decoupled' and the time of flight window eg 10-110."
    empty_run_callable = tof_dict_callable.add_to_func_chain(
        user_function=RunDetailsWrappedCommonFuncs.cal_dictionary_key_helper, key="empty_run_numbers",
        append_to_error_message=err_message)

    vanadium_run_callable = tof_dict_callable.add_to_func_chain(
        user_function=RunDetailsWrappedCommonFuncs.cal_dictionary_key_helper, key="vanadium_run_numbers",
        append_to_error_message=err_message)

    return create_run_details_object(run_number_string=run_number_string, inst_settings=inst_settings,
                                     is_vanadium_run=is_vanadium, empty_run_call=empty_run_callable,
                                     vanadium_run_call=vanadium_run_callable)
Ejemplo n.º 21
0
    def test_run_details_splined_name_list_is_used(self):
        expected_vanadium_runs = "11-12"
        splined_name_list = ["bar", "bang", "baz"]
        run_number_string = "10"
        mock_inst = self.setup_mock_inst_settings(yaml_file_path="ISISPowderRunDetailsTest.yaml")
        run_number = common.get_first_run_number(run_number_string=run_number_string)
        cal_mapping_dict = yaml_parser.get_run_dictionary(run_number_string=run_number,
                                                          file_path=mock_inst.cal_mapping_path)

        grouping_filename = mock_inst.grouping_file_name
        empty_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="empty_run_numbers")
        vanadium_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="vanadium_run_numbers")

        output_obj = run_details.create_run_details_object(run_number_string, inst_settings=mock_inst,
                                                           is_vanadium_run=False, splined_name_list=splined_name_list,
                                                           grouping_file_name=grouping_filename,
                                                           empty_run_number=empty_runs, vanadium_string=vanadium_runs)

        expected_splined_out_str = ''.join('_' + val for val in splined_name_list)
        expected_output_name = "VanSplined_" + expected_vanadium_runs + expected_splined_out_str
        expected_output_name += ".nxs"
        expected_path = os.path.join(mock_inst.calibration_dir, output_obj.label, expected_output_name)
        self.assertEqual(expected_path, output_obj.splined_vanadium_file_path)
    def test_run_details_splined_name_list_is_used(self):
        expected_vanadium_runs = "11-12"
        splined_name_list = ["bar", "bang", "baz"]
        run_number_string = "10"
        mock_inst = self.setup_mock_inst_settings(yaml_file_path="ISISPowderRunDetailsTest.yaml")
        run_number = common.get_first_run_number(run_number_string=run_number_string)
        cal_mapping_dict = yaml_parser.get_run_dictionary(run_number_string=run_number,
                                                          file_path=mock_inst.cal_mapping_path)

        grouping_filename = mock_inst.grouping_file_name
        empty_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="empty_run_numbers")
        vanadium_runs = common.cal_map_dictionary_key_helper(dictionary=cal_mapping_dict, key="vanadium_run_numbers")

        output_obj = run_details.create_run_details_object(run_number_string, inst_settings=mock_inst,
                                                           is_vanadium_run=False, splined_name_list=splined_name_list,
                                                           grouping_file_name=grouping_filename,
                                                           empty_run_number=empty_runs, vanadium_string=vanadium_runs)

        expected_splined_out_str = ''.join('_' + val for val in splined_name_list)
        expected_output_name = "VanSplined_" + expected_vanadium_runs + expected_splined_out_str
        expected_output_name += ".nxs"
        expected_path = os.path.join(mock_inst.calibration_dir, output_obj.label, expected_output_name)
        self.assertEqual(expected_path, output_obj.splined_vanadium_file_path)
Ejemplo n.º 23
0
def get_run_details(run_number_string, inst_settings, is_vanadium_run):
    mode_run_numbers = _get_current_mode_dictionary(run_number_string,
                                                    inst_settings)

    # Get empty and vanadium
    err_message = "this must be under the relevant Rietveld or PDF mode."

    empty_runs = common.cal_map_dictionary_key_helper(
        mode_run_numbers,
        key="empty_run_numbers",
        append_to_error_message=err_message)
    vanadium_runs = common.cal_map_dictionary_key_helper(
        mode_run_numbers,
        key="vanadium_run_numbers",
        append_to_error_message=err_message)

    grouping_file_name = inst_settings.grouping_file_name

    return create_run_details_object(run_number_string=run_number_string,
                                     inst_settings=inst_settings,
                                     is_vanadium_run=is_vanadium_run,
                                     empty_run_number=empty_runs,
                                     vanadium_string=vanadium_runs,
                                     grouping_file_name=grouping_file_name)
Ejemplo n.º 24
0
    def test_generate_out_file_paths(self):
        cal_dir = self._create_temp_dir()
        out_dir = self._create_temp_dir()

        mock_inst = self._setup_mock_inst(
            suffix="-suf",
            yaml_file_path="ISISPowderRunDetailsTest.yaml",
            calibration_dir=cal_dir,
            output_dir=out_dir)
        run_number = 15
        run_number2 = common.get_first_run_number(run_number_string=run_number)
        cal_mapping_dict = yaml_parser.get_run_dictionary(
            run_number_string=run_number2,
            file_path=mock_inst.cal_mapping_path)

        grouping_filename = _gen_random_string()
        empty_runs = common.cal_map_dictionary_key_helper(
            dictionary=cal_mapping_dict, key="empty_run_numbers")
        vanadium_runs = common.cal_map_dictionary_key_helper(
            dictionary=cal_mapping_dict, key="vanadium_run_numbers")

        run_details_obj = run_details.create_run_details_object(
            run_number_string=run_number,
            inst_settings=mock_inst._inst_settings,
            is_vanadium_run=False,
            grouping_file_name=grouping_filename,
            empty_run_number=empty_runs,
            vanadium_string=vanadium_runs)

        output_paths = mock_inst._generate_out_file_paths(
            run_details=run_details_obj)

        expected_nxs_filename = os.path.join(
            out_dir, "16_4", "ISISPowderAbstractInstrumentTest",
            "MOCK15-suf.nxs")
        self.assertEquals(output_paths["nxs_filename"], expected_nxs_filename)