Skip to content

Commit

Permalink
Refs #11116 Added unit tests for MDReductionWrapper
Browse files Browse the repository at this point in the history
  • Loading branch information
ianbush committed Feb 18, 2015
1 parent d075c03 commit 9cb345e
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
1 change: 1 addition & 0 deletions Code/Mantid/scripts/CMakeLists.txt
Expand Up @@ -6,6 +6,7 @@ set ( TEST_PY_FILES
test/DirectEnergyConversionTest.py
test/IndirectApplyCorrectionsTest.py
test/IndirectCommonTests.py
test/MDReductionWrapperTest.py
test/ReductionWrapperTest.py
test/ReflectometryQuickAuxiliaryTest.py
test/RunDescriptorTest.py
Expand Down
17 changes: 8 additions & 9 deletions Code/Mantid/scripts/Inelastic/Direct/MDReductionWrapper.py
Expand Up @@ -53,7 +53,7 @@ def get_file_number_alternative(self, file_run_number, range_starts, number_of_r
if (file_run_number < range_starts[0]):
return -1, -1, -1
file_number = file_run_number//number_of_runs_to_merge[0] - range_starts[0]//number_of_runs_to_merge[0]
return file_number + 1, file_number * number_of_runs_to_merge[0], (file_number + 1) * number_of_runs_to_merge[0]
return file_number, file_number * number_of_runs_to_merge[0] + 1, (file_number + 1) * number_of_runs_to_merge[0]
elif (len(range_starts) > 1 and len(number_of_runs_to_merge) == 1):
for i in range(0, len(range_starts)):
if (file_run_number >= range_starts[i] and file_run_number < range_starts[i] + number_of_runs_to_merge[0]):
Expand All @@ -68,16 +68,15 @@ def get_file_number_alternative(self, file_run_number, range_starts, number_of_r
raise Exception("Size of range_starts, ", len(range_starts), " and number_of_runs_to_merge, ",
len(number_of_runs_to_merge), " are incompatible")

def get_file_name(self, file_number, start, end):
def get_file_name(self, file_names, file_number, start, end):
""" If MD:Filenames is set return the appropriate filename, else return a filename such as 123_456_SQW.nxs
"""
file_names = self._wvs.advanced_vars.get('MD:Filenames')
if (file_names is None or len(file_names) == 0):
return str(start) + '_' + str(end) + '_SQW.nxs'
else:
return file_names[file_number]

def get_psi(self, file_number, file_run_number, start, end):
def get_psi(self, psi_starts, psi_increments, file_number, file_run_number, start):
""" For psi allowed combinations are shown below
N = number of accumulated MD files to produce (e.g. Psi Starts is a list of N integers).
___________
Expand All @@ -87,9 +86,6 @@ def get_psi(self, file_number, file_run_number, start, end):
--------------------------------
"""

psi_starts = self._wvs.advanced_vars.get('MD:Psi Starts')
psi_increments = self._wvs.advanced_vars.get('MD:Psi Increments')

if (len(psi_starts) == 1 and len(psi_increments) == 1):
return psi_starts[0] + (file_run_number - start) * psi_increments[0]
elif (len(psi_starts) == len(psi_increments)):
Expand All @@ -114,9 +110,12 @@ def convert_and_merge(self, input_file, input_dir, file_run_number):
else:
file_number, start, end = self.get_file_number(file_run_number, range_starts, range_ends)

merged_filename = input_dir + '/../' + self.get_file_name(file_number, start, end)
merged_filename = input_dir + '/../' + \
self.get_file_name(self._wvs.advanced_vars.get('MD:Filenames'), file_number, start, end)

psi = self.get_psi(file_number, file_run_number, start, end)
psi = self.get_psi(self._wvs.advanced_vars.get('MD:Psi Starts'), \
self._wvs.advanced_vars.get('MD:Psi Increments'), \
file_number, file_run_number, start)

ub_matrix = self._wvs.advanced_vars.get('MD:UB Matrix')

Expand Down
8 changes: 4 additions & 4 deletions Code/Mantid/scripts/test/MerlinAccumulateMDReduction.py
@@ -1,8 +1,8 @@
""" MERLIN reduction script which also creates Merged MD files """

### Only required for running locally ###
#import sys
#sys.path.insert(0,'/home/whb43145/Mantid/mantid-develop/Code/Mantid/scripts/Inelastic')
import sys
sys.path.insert(0,'/home/whb43145/Mantid/mantid-develop/Code/Mantid/scripts/Inelastic')
#sys.path.insert(0,'/home/whb43145/autoreduction_test_production')

from Direct.MDReductionWrapper import *
Expand Down Expand Up @@ -78,15 +78,15 @@ def reduce(input_file, output_dir):
# Define any extra directories needed for maps files etc. (not needed for running through autoreduction server)

### Only required for running locally ###
#maps_dir = '/home/whb43145/Mantid/RAW_to_SPE/MERLIN/masks'
maps_dir = '/home/whb43145/Mantid/RAW_to_SPE/MERLIN/masks'

input_path, input_filename = os.path.split(input_file)

# Merlin data starts in the format: 'MERXXXXX.raw', where XXXXXX is the run number
file_run_number = int(input_filename.split('MER')[1].split('.')[0])

### Only required for running locally ###
#config.setDataSearchDirs('{0};{1};{2}'.format(input_path,output_dir,maps_dir))
config.setDataSearchDirs('{0};{1};{2}'.format(input_path,output_dir,maps_dir))

config['defaultsave.directory'] = output_dir.encode('ascii','replace') # folder to save resulting spe/nxspe files

Expand Down

0 comments on commit 9cb345e

Please sign in to comment.