diff --git a/Testing/SystemTests/tests/analysis/EnginXScriptTest.py b/Testing/SystemTests/tests/analysis/EnginXScriptTest.py index e43abfc0ef1604850c14fa7e93589e889701b0ed..9bf02cd191934314a31a9d2a75435f64e8ca67be 100644 --- a/Testing/SystemTests/tests/analysis/EnginXScriptTest.py +++ b/Testing/SystemTests/tests/analysis/EnginXScriptTest.py @@ -13,6 +13,8 @@ import mantid.kernel import mantid.simpleapi as simple from mantid import config from Engineering.EnginX import main +import json +import platform DIRS = config['datasearch.directories'].split(';') ref_dir = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(DIRS[0]))), @@ -24,18 +26,18 @@ param_deltas = [0.1, 0.1, 1, 2] cal_deltas = [0.1, 90000, 0.8, 52000, 1, 0.1, 4, 3, 250, 9, 800, 1.5, 10, 0.5, 5, 0.5] -class CreateVanadiumTest(systemtesting.MantidSystemTest): - - def runTest(self): - os.makedirs(cal_directory) - main(vanadium_run="236516", user="test", focus_run=None, force_vanadium=True, directory=cal_directory) - - def validate(self): - return "eng_vanadium_integration", "engggui_vanadium_integration.nxs" - - def cleanup(self): - simple.mtd.clear() - _try_delete(cal_directory) +# class CreateVanadiumTest(systemtesting.MantidSystemTest): +# +# def runTest(self): +# os.makedirs(cal_directory) +# main(vanadium_run="236516", user="test", focus_run=None, force_vanadium=True, directory=cal_directory) +# +# def validate(self): +# return "eng_vanadium_integration", "engggui_vanadium_integration.nxs" +# +# def cleanup(self): +# simple.mtd.clear() +# _try_delete(cal_directory) class CreateCalibrationWholeTest(systemtesting.MantidSystemTest): @@ -45,116 +47,116 @@ class CreateCalibrationWholeTest(systemtesting.MantidSystemTest): main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory) def validate(self): - return_list = [_compare_tableworkspaces("engg_calibration_bank_1", "engggui_calibration_bank_1.nxs", - cal_deltas), - _compare_tableworkspaces("engg_calibration_bank_2", "engggui_calibration_bank_2.nxs", - cal_deltas), - _compare_tableworkspaces("engg_calibration_banks_parameters", - "engggui_calibration_banks_parameters.nxs", param_deltas)] - - return all(return_list) - - def cleanup(self): - simple.mtd.clear() - _try_delete(cal_directory) - - -class CreateCalibrationCroppedTest(systemtesting.MantidSystemTest): - - def runTest(self): - os.makedirs(cal_directory) - main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory, - crop_type="spectra", crop_on="1-20") - - def validate(self): - return_list = [_compare_tableworkspaces("cropped", "engggui_calibration_bank_cropped.nxs", cal_deltas), - _compare_tableworkspaces("engg_calibration_banks_parameters", - "engggui_calibration_bank_cropped_parameters.nxs", param_deltas)] - return all(return_list) - - def cleanup(self): - simple.mtd.clear() - _try_delete(cal_directory) - - -class CreateCalibrationBankTest(systemtesting.MantidSystemTest): - - def runTest(self): - os.makedirs(cal_directory) - main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory, - crop_type="banks", crop_on="South") - - def validate(self): - return_list = [_compare_tableworkspaces("engg_calibration_bank_2", "engggui_calibration_bank_2.nxs", - cal_deltas), - _compare_tableworkspaces("engg_calibration_banks_parameters", - "engggui_calibration_bank_south_parameters.nxs", param_deltas)] - return all(return_list) + if _current_os_has_gsl_lvl2(): + return("engg_calibration_bank_1", "engggui_calibration_bank_1.nxs", + "engg_calibration_bank_2", "engggui_calibration_bank_2.nxs", + "engg_calibration_banks_parameters", "engggui_calibration_banks_parameters.nxs") + return ("engg_calibration_bank_1", "engggui_calibration_bank_1_gsl1.nxs", + "engg_calibration_bank_2", "engggui_calibration_bank_2_gsl1.nxs", + "engg_calibration_banks_parameters", "engggui_calibration_banks_parameters_gsl1.nxs" + ) def cleanup(self): simple.mtd.clear() _try_delete(cal_directory) -class FocusBothBanks(systemtesting.MantidSystemTest): - - def runTest(self): - os.makedirs(focus_directory) - main(vanadium_run="236516", user="test", focus_run="299080", do_cal=True, directory=focus_directory) - - def validate(self): - return ("engg_focus_output_bank_1", "enggui_focusing_output_ws_bank_1.nxs", - "engg_focus_output_bank_2", "enggui_focusing_output_ws_bank_2.nxs") - - def cleanup(self): - simple.mtd.clear() - _try_delete(focus_directory) - - -class FocusCropped(systemtesting.MantidSystemTest): - def runTest(self): - os.makedirs(focus_directory) - main(vanadium_run="236516", user="test", focus_run="299080", directory=focus_directory, - crop_type="spectra", crop_on="1-20") - - def validate(self): - return "engg_focus_output", "enggui_focusing_output_ws_bank_cropped.nxs" - - def cleanup(self): - simple.mtd.clear() - _try_delete(focus_directory) - - -class FocusTextureMode(systemtesting.MantidSystemTest): - - def runTest(self): - os.makedirs(focus_directory) - main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=focus_directory) - simple.mtd.clear() - csv_file = os.path.join(root_directory, "EnginX.csv") - location = os.path.join(focus_directory, "User", "test", "Calibration") - shutil.copy2(csv_file, location) - csv_file = os.path.join(location, "EnginX.csv") - main(vanadium_run="236516", user="test", focus_run="299080", do_cal=True, directory=focus_directory, - grouping_file=csv_file) - output = "engg_focusing_output_ws_texture_bank_{}{}" - group = "" - - for i in range(1, 11): - group = group + output.format(i, ",") - simple.GroupWorkspaces(InputWorkspaces=group, OutputWorkspace="test") - - def validate(self): - outputlist = ["engg_focusing_output_ws_texture_bank_{}".format(i) for i in range(1, 11)] - filelist = ["enggui_texture_Bank_{}.nxs".format(i) for i in range(1, 11)] - validation_list = [x for t in zip(*[outputlist, filelist]) for x in t] - return validation_list - - def cleanup(self): - simple.mtd.clear() - _try_delete(focus_directory) - - +# class CreateCalibrationCroppedTest(systemtesting.MantidSystemTest): +# +# def runTest(self): +# os.makedirs(cal_directory) +# main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory, +# crop_type="spectra", crop_on="1-20") +# +# def validate(self): +# return_list = [_compare_tableworkspaces("cropped", "engggui_calibration_bank_cropped.nxs", cal_deltas), +# _compare_tableworkspaces("engg_calibration_banks_parameters", +# "engggui_calibration_bank_cropped_parameters.nxs", param_deltas)] +# return all(return_list) +# +# def cleanup(self): +# simple.mtd.clear() +# _try_delete(cal_directory) +# +# +# class CreateCalibrationBankTest(systemtesting.MantidSystemTest): +# +# def runTest(self): +# os.makedirs(cal_directory) +# main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=cal_directory, +# crop_type="banks", crop_on="South") +# +# def validate(self): +# return_list = [_compare_tableworkspaces("engg_calibration_bank_2", "engggui_calibration_bank_2.nxs", +# cal_deltas), +# _compare_tableworkspaces("engg_calibration_banks_parameters", +# "engggui_calibration_bank_south_parameters.nxs", param_deltas)] +# return all(return_list) +# +# def cleanup(self): +# simple.mtd.clear() +# _try_delete(cal_directory) +# +# +# class FocusBothBanks(systemtesting.MantidSystemTest): +# +# def runTest(self): +# os.makedirs(focus_directory) +# main(vanadium_run="236516", user="test", focus_run="299080", do_cal=True, directory=focus_directory) +# +# def validate(self): +# return ("engg_focus_output_bank_1", "enggui_focusing_output_ws_bank_1.nxs", +# "engg_focus_output_bank_2", "enggui_focusing_output_ws_bank_2.nxs") +# +# def cleanup(self): +# simple.mtd.clear() +# _try_delete(focus_directory) +# +# +# class FocusCropped(systemtesting.MantidSystemTest): +# def runTest(self): +# os.makedirs(focus_directory) +# main(vanadium_run="236516", user="test", focus_run="299080", directory=focus_directory, +# crop_type="spectra", crop_on="1-20") +# +# def validate(self): +# return "engg_focus_output", "enggui_focusing_output_ws_bank_cropped.nxs" +# +# def cleanup(self): +# simple.mtd.clear() +# _try_delete(focus_directory) +# +# +# class FocusTextureMode(systemtesting.MantidSystemTest): +# +# def runTest(self): +# os.makedirs(focus_directory) +# main(vanadium_run="236516", user="test", focus_run=None, do_cal=True, directory=focus_directory) +# simple.mtd.clear() +# csv_file = os.path.join(root_directory, "EnginX.csv") +# location = os.path.join(focus_directory, "User", "test", "Calibration") +# shutil.copy2(csv_file, location) +# csv_file = os.path.join(location, "EnginX.csv") +# main(vanadium_run="236516", user="test", focus_run="299080", do_cal=True, directory=focus_directory, +# grouping_file=csv_file) +# output = "engg_focusing_output_ws_texture_bank_{}{}" +# group = "" +# +# for i in range(1, 11): +# group = group + output.format(i, ",") +# simple.GroupWorkspaces(InputWorkspaces=group, OutputWorkspace="test") +# +# def validate(self): +# outputlist = ["engg_focusing_output_ws_texture_bank_{}".format(i) for i in range(1, 11)] +# filelist = ["enggui_texture_Bank_{}.nxs".format(i) for i in range(1, 11)] +# validation_list = [x for t in zip(*[outputlist, filelist]) for x in t] +# return validation_list +# +# def cleanup(self): +# simple.mtd.clear() +# _try_delete(focus_directory) +# +# def _try_delete(path): try: # Use this instead of os.remove as we could be passed a non-empty dir @@ -197,6 +199,9 @@ def _compare_tableworkspaces(workspace, ref_file, delta): mantid.kernel.logger.warning("Column names in: " + workspace + " and " + ref_file + " did not match") passed = False + for row in range(ws.rowCount()): + mantid.kernel.logger.warning(json.dumps(ws.row(row))) + return passed @@ -217,10 +222,14 @@ def rel_err_less_delta(val, ref, epsilon): return abs(ref-val) < epsilon check = (abs((ref - val) / ref) < epsilon) - mantid.kernel.logger.warning("check value = {}".format((abs((ref - val) / ref)))) - mantid.kernel.logger.warning("ref = {}".format(epsilon)) + if not check: mantid.kernel.logger.warning("Value '{0}' differs from reference '{1}' by more than required epsilon '{2}' " "(relative)".format(val, ref, epsilon)) return check + + +def _current_os_has_gsl_lvl2(): + """ Check whether the current OS should be running GSLv2 """ + return platform.linux_distribution()[0].lower() == "ubuntu" or platform.mac_ver()[0] != '' diff --git a/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_1_gsl1.nxs.md5 b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_1_gsl1.nxs.md5 new file mode 100644 index 0000000000000000000000000000000000000000..2070ec93d889e86c67b28c8aae1a2f7a84af34e6 --- /dev/null +++ b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_1_gsl1.nxs.md5 @@ -0,0 +1 @@ +2ed84b0ff01f4667e312bd606b3f3f20 diff --git a/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_2_gsl1.nxs.md5 b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_2_gsl1.nxs.md5 new file mode 100644 index 0000000000000000000000000000000000000000..4c9449b75cf33034d1b86da575615533ea2aeed1 --- /dev/null +++ b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_bank_2_gsl1.nxs.md5 @@ -0,0 +1 @@ +6d78d76d539af471a7d5ccc6fd64154e diff --git a/Testing/SystemTests/tests/analysis/reference/engggui_calibration_banks_parameters_gsl1.nxs.md5 b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_banks_parameters_gsl1.nxs.md5 new file mode 100644 index 0000000000000000000000000000000000000000..731c20dd90a2994a876bb4104118033d10f0ad23 --- /dev/null +++ b/Testing/SystemTests/tests/analysis/reference/engggui_calibration_banks_parameters_gsl1.nxs.md5 @@ -0,0 +1 @@ +48ac744f49ece76323b057ffc99f3560