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)
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)
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)
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 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)
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)
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)
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)
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)
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)
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)
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)
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)
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
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)
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)
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)
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)