Update Slicer CLI buildsystem to download input and baseline using ExternalData

This notebook was specifically designed to process the a Slicer source tree (based of r28333) and perform the following updates:

  • Copy data from directories Slicer/Testing/Data/Input and Slicer/MRML/Core/Testing/TestData directories into each CLI Slicer/Modules/CLI/<ModuleName>/Data/(BaseLine|Input) where they are used.
  • Update the Slicer/Modules/CLI/<ModuleName>/Testing/CMakeLists.txt of each CLI to use ExternalData_add_test.
  • Upload data to Midas (see http://slicer.kitware.com/midas3/folder/301) and check data can effectively be downloaded given a checksum.
  • Identify list of files that could potentially be removed from the source tree.
  • Identify list of CLI Testing/CMakeLists.txt missing the setting of FOLDER target property.
In [1]:
import hashlib
import glob
import os
import re
import shutil

%reload_ext autoreload
%autoreload 1
%aimport pydas

#---------------------------------------------------------------------------
slicer_src = '/home/jcfr/Projects/Slicer-Qt5-VTK8'
cli_src_directory = os.path.join(slicer_src, 'Modules/CLI')

# The goal is to remove this global directory and have every modules and libraries
# listing their own requirements regarding input test and baseline data.
global_test_data_dir = '/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input'
global_mrml_test_data_dir = '/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData'
global_datafiles_candidate_for_removal = []

# Folder id associated Slicer data hosted on http://slicer.kitware.com/midas3
midas_data_folder_id = 301

midas_url = 'http://slicer.kitware.com/midas3'
email = os.environ["MIDAS_PACKAGE_EMAIL"]
apikey = os.environ["MIDAS_PACKAGE_API_KEY"]

# Update sys.path adding Slicer python module directory
slicer_python_dir = os.path.join(slicer_src, 'Base/Python/slicer/release')
import sys
if slicer_python_dir not in sys.path:
    sys.path.append(slicer_python_dir)

import midasdata

# If enabled, update midas creating missing folder and uploading data if needed.
midas_update = False

# If enabled, this option will connect to the midas server and check
# if the current CLI test data have been uploaded.
check_data_is_uploaded = False

# If enabled, generate hash files for each data files, rename the original
# data file with extension '.bkp'
# If false, revert the previous step using .bkp files (if any)
convert_to_hashfiles = True
delete_bkp = True

# Disable replacement of 'add_test' with 'ExternalData_add_target'
replace_add_test = True

# Map of hashing algos to consider when creating "content links"
hash_functions = {
    'md5': hashlib.md5,
    #'sha256': hashlib.sha256,
    #'sha512': hashlib.sha512,
}

# List of data files to exclude
filenames_to_exclude = ['Brain_slice.nrrd']

# List of data file extensions that should NOT be considered
extensions_to_exclude = ['.tfm', '.txt', '.bkp', '.mrml', '.fcsv'] + [".%s" % algo for algo in hash_functions.keys()]

#---------------------------------------------------------------------------
# Initialize global vars

if midas_update or check_data_is_uploaded:
    communicator = pydas.core.Communicator(midas_url)
    def token(email, apikey):
        return communicator.login_with_api_key(email, apikey)

    midas_data_folders = communicator.folder_children(token(email, apikey), midas_data_folder_id)

    modulesIndex = midasdata._getFolderIndex(midas_data_folders, "Modules")
    modulesID = midasdata._getIDfromIndex(midas_data_folders, "folder", modulesIndex)
    availableModules = communicator.folder_children(token(email, apikey), modulesID)
    availableModulesFolders = availableModules["folders"]

moduleNames = []

MODULE_INPUT_SUBDIR = 'Data/Input'
MODULE_BASELINE_SUBDIR = 'Data/Baseline'

#---------------------------------------------------------------------------
def get_module_data_directories(cli_src_directory):
    data_directories = []
    for root, dirnames, filenames in os.walk(cli_src_directory):
        if root.endswith(MODULE_INPUT_SUBDIR):
            data_directories.append(root)
        if root.endswith(MODULE_BASELINE_SUBDIR):
            data_directories.append(root)
    return sorted(data_directories)

#---------------------------------------------------------------------------
def check_module_test_data_are_uploaded(cli_src_directory):

    # Maps of moduleName to filename that need to uploaded
    modules_missing_data = {}
    
    # Collect data directories
    data_directories = get_module_data_directories(cli_src_directory)
    for data_directory in data_directories:

        moduleName = data_directory.split('/')[-3]
        # Skip 'ExtractSkeleton' because it has already been updated
        #if moduleName == 'ExtractSkeleton':
        #    continue

        # Check if existing data file have been uploaded on Midas
        for filename in os.listdir(data_directory):
            filepath = os.path.join(data_directory, filename)
            if os.path.splitext(filename)[1] in extensions_to_exclude:
                #print("[%s] %s [skipping upload: extension excluded]" % (moduleName, filepath))
                continue
            digest = md5(filepath)
            uploaded = has_bitstream(filename, digest)
            print("[%s] %s => %s [uploaded: %s]" % (moduleName, filepath, digest, uploaded))
            if not uploaded:
                if moduleName not in modules_missing_data:
                    modules_missing_data[moduleName] = []
                modules_missing_data[moduleName].append(filepath)
    
    return modules_missing_data

#---------------------------------------------------------------------------
def has_folder_property(cmakelist):
    """CMakeLists.txt of CLIs are expected to have a line like this one::

        set_target_properties(${CLP}Data PROPERTIES FOLDER ${${CLP}_TARGETS_FOLDER})
    """
    has_property = False
    with open(cmakelist, 'r') as myfile:
        lines = myfile.readlines()
        has_property = "PROPERTIES FOLDER" in "".join(lines)
    if not has_property:
        print("=> [folder property missing]")
    else:
        print("=> [folder property ok]")
    return has_property
    
            
#---------------------------------------------------------------------------
def add_external_data_target(cmakelist):
    # Should the footer be appended ?
    footer_already_appended = False
    # Should a line be added between end of files and footer ?
    lastline_empty = False
    with open(cmakelist, 'r') as myfile:
        lines = myfile.readlines()
        footer_already_appended = 'ExternalData_add_target'.lower() in "".join(lines).lower()
        if lines[-1] == "\n":
            lastline_empty = True
    # Append footer
    if not footer_already_appended:
        with open(cmakelist, "a") as myfile:
            if not lastline_empty:
                myfile.write("\n")
            myfile.write("""#-----------------------------------------------------------------------------
if(${SEM_DATA_MANAGEMENT_TARGET} STREQUAL ${CLP}Data)
  ExternalData_add_target(${CLP}Data)
endif()
""")
        print("=> [footer ok] (lastline_empty: %s)" % (lastline_empty))
    else:
        print("=> [footer skip] (already appended)")

#---------------------------------------------------------------------------
def get_line(cmakelist, regex, relative_line_index=0):
    """Return line matching the provided regex.
    
    Setting relative_line_index allow to negative (or positve) allows to get the line
    before (or after) the matching one.
    """
    p = re.compile(regex)
    with open(cmakelist, 'r') as myfile:
        lines = myfile.readlines()
    for index, line in enumerate(lines):
        if p.match(line):
            return lines[index + relative_line_index].strip()
    return None

#---------------------------------------------------------------------------
def has_line(cmakelist, regex):
    return get_line(cmakelist, regex) is not None
    
#---------------------------------------------------------------------------
def remove_matching_lines(cmakelist, regex):
    p = re.compile(regex)
    updated_lines = []
    removed = 0
    with open(cmakelist, 'r') as myfile:
        lines = myfile.readlines()
        for line in lines:
            if not p.match(line):
                updated_lines.append(line)
            else:
                removed = removed + 1
    with open(cmakelist, "w") as myfile:
        myfile.writelines(updated_lines)
    return removed > 0

#---------------------------------------------------------------------------
def add_line_after(cmakelist, regex, line_to_add, before=True):
    p = re.compile(regex)
    updated_lines = []
    added = 0
    with open(cmakelist, 'r') as myfile:
        lines = myfile.readlines()
        for line in lines:
            if before:
                updated_lines.append(line)
            if p.match(line):
                updated_lines.append(line_to_add + '\n')
                added = added + 1
            if not before:
                updated_lines.append(line)
    if not added <= 1:
        raise Exception("File '%s' is expected to have only one line matching '%s'" % (cmakelist, regex))
    with open(cmakelist, "w") as myfile:
        myfile.writelines(updated_lines)
    return added > 0

#---------------------------------------------------------------------------
def add_line_before(cmakelist, regex, line_to_add):
    return add_line_after(cmakelist, regex, line_to_add, before=False)

#---------------------------------------------------------------------------
# Datafile helper functions

#---------------------------------------------------------------------------
def md5(fname):
    return hashfile(fname, hashlib.md5)

#---------------------------------------------------------------------------
def hashfile(fname, hashfunc):
    hash = hashfunc()
    with open(fname) as f:
        for chunk in iter(lambda: f.read(4096), ""):
            hash.update(chunk)
    return hash.hexdigest()

#---------------------------------------------------------------------------
def datafile_regex(varname):
    return ur'(\${' + varname + ur'}\/[\${}\w\-\_]+\.[\w\d]+(\.[\w\d]+)?)'

#---------------------------------------------------------------------------
def relocate_test_data(line, varname, global_test_data_dir, module_input_dir):
    if "${%s}" % varname not in line:
        return line

    p = re.compile(datafile_regex(varname))
    for m in re.finditer(p, line):
        g = m.group(1)
        data_filepath = g.replace("${%s}" % varname, global_test_data_dir)
        
        if not os.path.isfile(data_filepath) and os.path.isdir(os.path.dirname(data_filepath)):
            # We assume the variable is of the form /path/to/brainSlice${pixeltype}.mha
            # Generate a wild-card expression and glob corresponding files
            cmake_var_ref_regex = r"\$\{\w+\}"
            p = re.compile(cmake_var_ref_regex)
            glob_expr = p.sub("*", data_filepath)
            print("\n=> [using glob_expr] %s" % glob_expr)
            data_filepaths = glob.glob(glob_expr)
        else:
            print("\n=> [using data_filepath] %s" % data_filepath)
            data_filepaths = [data_filepath]
            
        for data_filepath in data_filepaths:

            data_filename = os.path.basename(data_filepath)
            dest_data_filepath = os.path.join(module_input_dir, data_filename)
            
            if os.path.isfile(data_filepath):
                print("\n  => [data_filepath] %s" % data_filepath)
                print("  => [dest_data_filepath] %s" % dest_data_filepath)
                print("  => [global_test_data_dir -> module_input_dir] %s" % data_filename)
                dest_data_path = os.path.dirname(dest_data_filepath)
                if not os.path.exists(dest_data_path):
                    print("  => %s [created]" % dest_data_path)
                    os.makedirs(dest_data_path)
                shutil.copy(data_filepath, dest_data_filepath)
                for data_dependency_filepath in datafile_dependencies(data_filepath):
                    shutil.copy(data_dependency_filepath, dest_data_path)
                    print("  => %s [copied]" % os.path.basename(data_dependency_filepath))

                if moduleName not in missing_midas_module_input_data:
                    missing_midas_module_input_data[moduleName] = []

                missing_midas_module_input_data[moduleName].append(dest_data_filepath)
                if data_filepath not in global_datafiles_candidate_for_removal:
                    global_datafiles_candidate_for_removal.append(data_filepath)
            else:
                print("\n  => [data_filepath:nonexistent] %s" % data_filepath)
                print("      -> original line:  %s" % line)

    return line.replace("${%s}" % varname, '${INPUT}')

#---------------------------------------------------------------------------
def datafile_dependency_is_gz(filename):
    with open(filename, "r") as _file:
        return '.gz' in "".join(_file.readlines())

#---------------------------------------------------------------------------
def datafile_is_serie(data_filepath):
    base_dir = os.path.dirname(data_filepath)
    data_filename = os.path.basename(data_filepath)
    (basename, ext) = os.path.splitext(data_filename)
    # This implementation simply check if file '<basename>.1.<ext>' exists
    # For a complete implementation see "ExternalData_arg_series()" in
    # ExternalData CMake module.
    serie_item = os.path.join(base_dir, basename + '.1' + ext)
    return os.path.isfile(serie_item)

#---------------------------------------------------------------------------
def datafile_dependencies(data_filepath):
    dependencies = []
    (basename, ext) = os.path.splitext(data_filepath)
    if ext == '.nhdr':
        if datafile_dependency_is_gz(data_filepath):
            return [basename + '.raw.gz']
        else:
            return [basename + '.raw']
    elif ext == '.hdr':
        return [basename + '.img']
    
    # XXX Add support for file series
    
    return dependencies

#---------------------------------------------------------------------------
# Pydas helper functions

#---------------------------------------------------------------------------
def has_bitstream(name, checksum):
    items = communicator.search_item_by_name(name)
    for item in items:
        item_id = item['item_id']
        item_data = communicator.item_get(token(email, apikey), item_id)
        if len(item_data['revisions']) > 0:
            if item_data['revisions'][-1]['bitstreams'][0]['checksum'] == checksum:
                return True
    return False

#---------------------------------------------------------------------------
def folder_children(folder_id, children_type="folder"):
    folders = communicator.folder_children(token(email, apikey), folder_id)
    return {folder['name']: folder[children_type + '_id'] for folder in folders[children_type + 's']}

#---------------------------------------------------------------------------
def get_or_create_module_test_data_directory(module_name, test_data_type):
    # Get <module_name> folder id, or create it if needed
    try:
        module_folder_id = midas_module_names[module_name]
        #print("=> %s [Found module_folder_id: %s]" % (module_name, module_folder_id))
    except KeyError:
        module_folder = communicator.create_folder(token(email, apikey), module_name, modules_folder_id)
        module_folder_id = module_folder['folder_id']
        #print("=> %s [Created module_folder_id: %s]" % (module_name, module_folder_id))

    # Get Nightly folder id, or create it if needed
    versions = folder_children(module_folder_id)
    try:
        nightly_folder_id = versions['Nightly']
        #print("=> %s [Found nightly_folder_id: %s]" % (module_name, nightly_folder_id))
    except KeyError:
        nightly_folder = communicator.create_folder(token(email, apikey), 'Nightly', module_folder_id)
        nightly_folder_id = nightly_folder['folder_id']
        #print("=> %s [Created nightly_folder_id: %s]" % (module_name, nightly_folder_id))

    # Get Testing folder id, or create it if needed
    testings = folder_children(nightly_folder_id)
    try:
        testing_folder_id = testings['Testing']
        #print("=> %s [Found testing_folder_id: %s]" % (module_name, testing_folder_id))
    except KeyError:
        testing_folder = communicator.create_folder(token(email, apikey), 'Testing', nightly_folder_id)
        testing_folder_id = testing_folder['folder_id']
        #print("=> %s [Created testing_folder_id: %s]" % (module_name, testing_folder_id))

    # Get testdata_type (Input or Baseline) folder id, or create it if needed
    testdata_types = folder_children(testing_folder_id)
    try:
        test_data_type_folder_id = testdata_types[test_data_type]
        #print("=> %s [Found test_data_type_folder_id: %s / %s]" % (module_name, test_data_type_folder_id, test_data_type))
    except KeyError:
        test_data_type_folder = communicator.create_folder(token(email, apikey), test_data_type, testing_folder_id)
        test_data_type_folder_id = test_data_type_folder['folder_id']
        #print("=> %s [Created test_data_type_folder_id: %s / %s]" % (module_name, test_data_type_folder_id, test_data_type))
    return test_data_type_folder_id

#---------------------------------------------------------------------------
def upload_revision(item_id, filepath):
    checksum = md5(filepath)
    filename = os.path.basename(filepath)
    print("=> md5(%s): %s" % (filename, checksum))
    upload_token = communicator.generate_upload_token(token(email, apikey), item_id, filename, checksum=checksum, create_additional_revision=True)
    if upload_token:
        communicator.perform_upload(upload_token, filename, item_id=item_id, filepath=filepath, create_additional_revision=True)
    else:
        print("=> skipping upload: using reference to existing bitstream")
    print("Done")

#---------------------------------------------------------------------------
def upload_item(folder_id, filepath):
    filename = os.path.basename(filepath)
    # Get existing item if one exists with the same name
    item_names = folder_children(folder_id, children_type='item')
    try:
        item_id = item_names[filename]
        print("=> found item: %s" % (item_id))
    except KeyError:
        item = communicator.create_item(token(email, apikey), filename, folder_id)
        item_id = item['item_id']
        print("=> item created: %s" % (item_id))
    
    upload_revision(item_id, filepath)

#---------------------------------------------------------------------------
# Map associating module folder that should be created on Midas + data file that should be uploaded
missing_midas_module_input_data = {}

#---------------------------------------------------------------------------
# List of modules missing the "PROPERTIES FOLDER".
modules_missing_folder_property = []

#---------------------------------------------------------------------------
print("\n" + ("*" * 80) + "\nLocal: Process CMakeLists.txt\n" + ("*" * 80))

for root, dirnames, filenames in os.walk(cli_src_directory):
    
    if not root.endswith('/Testing'):
        continue
        
    testing_dir = root

    cmakelist = os.path.join(testing_dir, 'CMakeLists.txt')
    
    if not os.path.exists(cmakelist):
        continue
    
    # Set module to process only one
    module = "" # AddScalarVolumes CheckerBoardFilter MergeModels ModelMaker
    if module and cmakelist != "%s/%s/Testing/CMakeLists.txt" % (cli_src_directory, module):
        continue
    
    testing_dir = os.path.dirname(cmakelist)
    
    # Get moduleName
    moduleName = os.path.basename(os.path.dirname(testing_dir))
    
    if moduleName not in moduleNames:
        moduleNames.append(moduleName)
    
    print("\n%s" % (cmakelist.replace(cli_src_directory + '/', '')))
    
    if not has_folder_property(cmakelist):
        modules_missing_folder_property.append(moduleName)
        
    add_external_data_target(cmakelist)
    
    tmp_cmakelist = cmakelist + ".tmp"

    with open(tmp_cmakelist, "w") as fout:
        
        # Get baseline_dir/input_dir assuming all CLIs are organized similarly.
        baseline_dir = os.path.join(testing_dir, '..', MODULE_BASELINE_SUBDIR)
        if not os.path.isdir(baseline_dir):
            baseline_dir = None
        input_dir = os.path.join(testing_dir, '..', MODULE_INPUT_SUBDIR)
        
        with open(cmakelist, "r") as fin:

            for line in fin:
                
                if replace_add_test:
                    pos = line.find('add_test(')
                    if pos >= 0 and 'ExternalData_add_test' not in line:
                        #print("pos:", pos, line[0:pos])
                        line = line.replace('add_test(', 'ExternalData_add_test(${SEM_DATA_MANAGEMENT_TARGET}\n' + line[0:pos] + '  ')
                
                # Identify all test data that should be copied into the module Baseline or Input directory
                line = relocate_test_data(line, 'TEST_DATA', global_test_data_dir, input_dir)
                line = relocate_test_data(line, 'MRML_TEST_DATA', global_mrml_test_data_dir, input_dir)

                # Add 'DATA{}' where it applies.
                for varname in ['BASELINE', 'INPUT']:
                    # For example, it will:
                    #  - looks for line containing occurences of "${BASELINE}"
                    #  - extract the associated path: ${BASELINE}/path/to/foo.nrrd
                    #  - replace it with DATA{${BASELINE}/path/to/foo.nrrd} if not already done
                    #  - this can be skipped by adding '.nrrd' to 'extensions_to_exclude'
                    if "${%s}" % varname in line:
                        p = re.compile(datafile_regex(varname))
                        for m in re.finditer(p, line):
                            g = m.group(1)
                            filename = os.path.basename(g)
                            if not os.path.basename(filename) in filenames_to_exclude \
                                and not os.path.splitext(filename)[1] in extensions_to_exclude:
                                for char in [" ", "(", "="]:
                                    line = line.replace(char + g, char + 'DATA{' + g + '}')
                            else:
                                print("=> skipping addition of DATA{}: %s" % m.group(0))

                # Update DATA association.
                #  - .nhdr will be associated with either '.raw' or '.raw.gz'
                #  - .hdr will be associated with '.img'
                if 'DATA{' in line:
                    p = re.compile(ur'DATA{([{}\w\_\-\/\$\.,]*)}')
                    for m in re.finditer(p, line):
                        for g in m.groups():

                            if g.endswith('.nhdr'):
                                data_filepath = g
                                data_filepath = data_filepath.replace('${CLP}', moduleName)
                                if baseline_dir:
                                    data_filepath = data_filepath.replace('${BASELINE}', baseline_dir)
                                data_filepath = data_filepath.replace('${INPUT}', input_dir)
                                data_basename = os.path.splitext(os.path.basename(data_filepath))[0]
                                try:
                                    # Append .raw
                                    updated = g + ',' + data_basename + '.raw'
                                    if datafile_dependency_is_gz(data_filepath):
                                        updated = updated + '.gz'
                                    #print("...... %s => %s" % (g, updated))
                                    line = line.replace(g, updated)
                                    print("=> [data_association] (%s)" % (updated))
                                except IOError as e:
                                    print("=> [data_association] %s" % (e))
                            if g.endswith('.raw'):
                                # Fix incorrect association. Associate nhdr with '.raw.gz'
                                # instead of '.raw' if it applies.
                                data_filepath = g.split(',')[0]
                                data_filepath = data_filepath.replace('${CLP}', moduleName)
                                if baseline_dir:
                                    data_filepath = data_filepath.replace('${BASELINE}', baseline_dir)
                                data_filepath = data_filepath.replace('${INPUT}', input_dir)
                                if os.path.isfile(data_filepath) and datafile_dependency_is_gz(data_filepath):
                                    updated = os.path.basename(g) + '.gz'
                                    line = line.replace(g, updated)
                                    print("=> [data_association] (%s)" % (updated))
                            if g.endswith('.hdr'):
                                data_filename = os.path.basename(g)
                                base = os.path.splitext(data_filename)[0]
                                # Append .img
                                updated = g + ',' + base + '.img'
                                #print("...... %s => %s" % (g, updated))
                                line = line.replace(g, updated)
                                print("=> [data_association] (%s)" % (updated))

                            # Check if data file is associated with a series
                            data_filename = g.replace('${CLP}', moduleName)
                            if baseline_dir:
                                data_filename = data_filename.replace('${BASELINE}', baseline_dir)
                            if input_dir:
                                data_filename = data_filename.replace('${INPUT}', input_dir)
                            # Check if the file belong to a serie
                            if datafile_is_serie(data_filename):
                                updated = g + ',:'
                                line = line.replace(g, updated)
                                print("=> [data_association] (%s)" % (updated))
                            
                fout.write(line)
    
    # Remove `set(TEST_DATA ...` line
    remove_matching_lines(tmp_cmakelist, ur'^set\(TEST_DATA .+\)$')
    remove_matching_lines(tmp_cmakelist, ur'^set\(MRML_TEST_DATA .+\)$')

    # Add `set(INPUT ...)` line after the `set(BASELINE ...)` if it
    # exists, otherwise after `set(CLP ...)`
    if not has_line(tmp_cmakelist, ur'^set\(INPUT .+\)$'):
        if has_line(tmp_cmakelist, ur'^set\(BASELINE .+\)$'):
            add_line_after(tmp_cmakelist, ur'^set\(BASELINE .+\)$', 'set(INPUT ${CMAKE_CURRENT_SOURCE_DIR}/../Data/Input)')
        else:
            add_line_before(tmp_cmakelist, ur'^set\(CLP .+\)$', 'set(INPUT ${CMAKE_CURRENT_SOURCE_DIR}/../Data/Input)')
        
    # Add empty line before  `set(CLP ...)`
    if get_line(tmp_cmakelist, ur'^set\(CLP .+\)$', -1) != '':
        add_line_before(tmp_cmakelist, ur'^set\(CLP .+\)$', '')
    
    # Add setting of SEM_DATA_MANAGEMENT_TARGET
    if not has_line(tmp_cmakelist, ur'^  set\(SEM_DATA_MANAGEMENT_TARGET \$\{CLP\}Data\)$'):
        add_line_after(
            tmp_cmakelist, ur'^set\(CLP .+\)$', 
            """
if(NOT DEFINED SEM_DATA_MANAGEMENT_TARGET)
  set(SEM_DATA_MANAGEMENT_TARGET ${CLP}Data)
endif()"""
        )
    
    shutil.move(cmakelist + ".tmp", cmakelist)
    #break
********************************************************************************
Local: Process CMakeLists.txt
********************************************************************************

MaskScalarVolume/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MaskScalarVolume/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MaskScalarVolume/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxialMask.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxialMask.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MaskScalarVolume/Testing/../Data/Input/CTHeadAxialMask.nrrd
  => [global_test_data_dir -> module_input_dir] CTHeadAxialMask.nrrd
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

GradientAnisotropicDiffusion/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)
=> [data_association] (${BASELINE}/GradientAnisotropicDiffusionTestWithImageSpacingOff.nhdr,GradientAnisotropicDiffusionTestWithImageSpacingOff.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GradientAnisotropicDiffusion/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GradientAnisotropicDiffusion/Testing/../Data/Input [created]
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)
=> [data_association] (${BASELINE}/GradientAnisotropicDiffusionTestWithImageSpacingOn.nhdr,GradientAnisotropicDiffusionTestWithImageSpacingOn.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GradientAnisotropicDiffusion/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

GaussianBlurImageFilter/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)
=> [data_association] (${BASELINE}/GaussianBlurImageFilterTest.nhdr,GaussianBlurImageFilterTest.raw)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GaussianBlurImageFilter/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GaussianBlurImageFilter/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

MedianImageFilter/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${BASELINE}/MedianImageFilterTest.nhdr,MedianImageFilterTest.raw)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MedianImageFilter/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MedianImageFilter/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

TestGridTransformRegistration/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/TestGridTransformRegistration/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/TestGridTransformRegistration/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/TestGridTransformRegistration/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

HistogramMatching/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)
=> [data_association] (${BASELINE}/HistogramMatchingTest.nhdr,HistogramMatchingTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/HistogramMatching/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/HistogramMatching/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/HistogramMatching/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

LabelMapSmoothing/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)
=> [data_association] (${BASELINE}/LabelMapSmoothingTest.nhdr,LabelMapSmoothingTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadResampledOtsuSegmented.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadResampledOtsuSegmented.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/LabelMapSmoothing/Testing/../Data/Input/CTHeadResampledOtsuSegmented.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadResampledOtsuSegmented.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/LabelMapSmoothing/Testing/../Data/Input [created]
  => CTHeadResampledOtsuSegmented.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadResampledOtsuSegmented.nhdr,CTHeadResampledOtsuSegmented.raw.gz)

SimpleRegionGrowingSegmentation/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${BASELINE}/${CLP}Test.nhdr,SimpleRegionGrowingSegmentationTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/SimpleRegionGrowingSegmentation/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/SimpleRegionGrowingSegmentation/Testing/../Data/Input [created]
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

OrientScalarVolume/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/fixed.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/fixed.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/OrientScalarVolume/Testing/../Data/Input/fixed.nrrd
  => [global_test_data_dir -> module_input_dir] fixed.nrrd
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/OrientScalarVolume/Testing/../Data/Input [created]

VotingBinaryHoleFillingImageFilter/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${BASELINE}/VotingBinaryHoleFillingImageFilterTest.nhdr,VotingBinaryHoleFillingImageFilterTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadResampledOtsuSegmented.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadResampledOtsuSegmented.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/VotingBinaryHoleFillingImageFilter/Testing/../Data/Input/CTHeadResampledOtsuSegmented.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadResampledOtsuSegmented.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/VotingBinaryHoleFillingImageFilter/Testing/../Data/Input [created]
  => CTHeadResampledOtsuSegmented.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadResampledOtsuSegmented.nhdr,CTHeadResampledOtsuSegmented.raw.gz)

CurvatureAnisotropicDiffusion/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${BASELINE}/${CLP}Test.nhdr,CurvatureAnisotropicDiffusionTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/CurvatureAnisotropicDiffusion/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/CurvatureAnisotropicDiffusion/Testing/../Data/Input [created]
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

ACPCTransform/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ACPCTest.mrml

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ACPCTest.mrml
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ACPCTransform/Testing/../Data/Input/ACPCTest.mrml
  => [global_test_data_dir -> module_input_dir] ACPCTest.mrml
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ACPCTransform/Testing/../Data/Input [created]
=> skipping addition of DATA{}: ${INPUT}/ACPCTest.mrml

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ACPC.fcsv

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ACPC.fcsv
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ACPCTransform/Testing/../Data/Input/ACPC.fcsv
  => [global_test_data_dir -> module_input_dir] ACPC.fcsv

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/midsag.fcsv

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/midsag.fcsv
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ACPCTransform/Testing/../Data/Input/midsag.fcsv
  => [global_test_data_dir -> module_input_dir] midsag.fcsv
=> skipping addition of DATA{}: ${INPUT}/ACPC.fcsv
=> skipping addition of DATA{}: ${INPUT}/midsag.fcsv

GrayscaleModelMaker/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GrayscaleModelMaker/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GrayscaleModelMaker/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

GrayscaleFillHoleImageFilter/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${BASELINE}/GrayscaleFillHoleTest.nhdr,GrayscaleFillHoleTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GrayscaleFillHoleImageFilter/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GrayscaleFillHoleImageFilter/Testing/../Data/Input [created]
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

FreesurferSurfaceSectionExtraction/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

ExtractSkeleton/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer skip] (already appended)

ModelMaker/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ModelMakerTest.mrml

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ModelMakerTest.mrml
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input/ModelMakerTest.mrml
  => [global_test_data_dir -> module_input_dir] ModelMakerTest.mrml
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input [created]
=> skipping addition of DATA{}: ${INPUT}/ModelMakerTest.mrml

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helix-roi-lable2.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helix-roi-lable2.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input/helix-roi-lable2.nrrd
  => [global_test_data_dir -> module_input_dir] helix-roi-lable2.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helix-roi-lable2.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helix-roi-lable2.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input/helix-roi-lable2.nrrd
  => [global_test_data_dir -> module_input_dir] helix-roi-lable2.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input/helixMask3Labels.nrrd
  => [global_test_data_dir -> module_input_dir] helixMask3Labels.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input/helixMask3Labels.nrrd
  => [global_test_data_dir -> module_input_dir] helixMask3Labels.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input/helixMask3Labels.nrrd
  => [global_test_data_dir -> module_input_dir] helixMask3Labels.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input/helixMask3Labels.nrrd
  => [global_test_data_dir -> module_input_dir] helixMask3Labels.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.mrml

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.mrml
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input/helixMask3Labels.mrml
  => [global_test_data_dir -> module_input_dir] helixMask3Labels.mrml
=> skipping addition of DATA{}: ${INPUT}/helixMask3Labels.mrml

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ModelMaker/Testing/../Data/Input/helixMask3Labels.nrrd
  => [global_test_data_dir -> module_input_dir] helixMask3Labels.nrrd

SubtractScalarVolumes/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${BASELINE}/${CLP}Test.nhdr,SubtractScalarVolumesTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/SubtractScalarVolumes/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/SubtractScalarVolumes/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxialDoubled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxialDoubled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/SubtractScalarVolumes/Testing/../Data/Input/CTHeadAxialDoubled.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxialDoubled.nhdr
  => CTHeadAxialDoubled.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxialDoubled.nhdr,CTHeadAxialDoubled.raw.gz)

ThresholdScalarVolume/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)
=> [data_association] (${BASELINE}/${CLP}Test.nhdr,ThresholdScalarVolumeTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ThresholdScalarVolume/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ThresholdScalarVolume/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

RobustStatisticsSegmenter/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

DiffusionTensorTest/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helix-DTI.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helix-DTI.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/DiffusionTensorTest/Testing/../Data/Input/helix-DTI.nhdr
  => [global_test_data_dir -> module_input_dir] helix-DTI.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/DiffusionTensorTest/Testing/../Data/Input [created]
  => helix-DTI.raw.gz [copied]
=> [data_association] (${INPUT}/helix-DTI.nhdr,helix-DTI.raw.gz)

CreateDICOMSeries/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/CreateDICOMSeries/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/CreateDICOMSeries/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

AddScalarVolumes/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${BASELINE}/${CLP}Test.nhdr,AddScalarVolumesTest.raw)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

=> [using glob_expr] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSlice*.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceFLOAT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceFLOAT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceFLOAT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceUSHORT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceUSHORT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceUSHORT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceDOUBLE.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceDOUBLE.mha
  => [global_test_data_dir -> module_input_dir] brainSliceDOUBLE.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceUINT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceUINT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceUINT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceSHORT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceSHORT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceSHORT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceLONG.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceLONG.mha
  => [global_test_data_dir -> module_input_dir] brainSliceLONG.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceULONG.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceULONG.mha
  => [global_test_data_dir -> module_input_dir] brainSliceULONG.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceCHAR.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceCHAR.mha
  => [global_test_data_dir -> module_input_dir] brainSliceCHAR.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceINT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceINT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceINT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceUCHAR.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceUCHAR.mha
  => [global_test_data_dir -> module_input_dir] brainSliceUCHAR.mha

=> [using glob_expr] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSlice*.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceFLOAT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceFLOAT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceFLOAT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceUSHORT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceUSHORT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceUSHORT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceDOUBLE.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceDOUBLE.mha
  => [global_test_data_dir -> module_input_dir] brainSliceDOUBLE.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceUINT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceUINT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceUINT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceSHORT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceSHORT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceSHORT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceLONG.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceLONG.mha
  => [global_test_data_dir -> module_input_dir] brainSliceLONG.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceULONG.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceULONG.mha
  => [global_test_data_dir -> module_input_dir] brainSliceULONG.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceCHAR.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceCHAR.mha
  => [global_test_data_dir -> module_input_dir] brainSliceCHAR.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceINT.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceINT.mha
  => [global_test_data_dir -> module_input_dir] brainSliceINT.mha

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceUCHAR.mha
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/AddScalarVolumes/Testing/../Data/Input/brainSliceUCHAR.mha
  => [global_test_data_dir -> module_input_dir] brainSliceUCHAR.mha

ExecutionModelTour/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ExecutionModelTourTest.mrml

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ExecutionModelTourTest.mrml
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ExecutionModelTour/Testing/../Data/Input/ExecutionModelTourTest.mrml
  => [global_test_data_dir -> module_input_dir] ExecutionModelTourTest.mrml
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ExecutionModelTour/Testing/../Data/Input [created]
=> skipping addition of DATA{}: ${INPUT}/ExecutionModelTourTest.mrml

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ExecutionModelTourTest.mrml

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ExecutionModelTourTest.mrml
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ExecutionModelTour/Testing/../Data/Input/ExecutionModelTourTest.mrml
  => [global_test_data_dir -> module_input_dir] ExecutionModelTourTest.mrml
=> skipping addition of DATA{}: ${INPUT}/ExecutionModelTourTest.mrml

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ExecutionModelTour/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ExecutionModelTour/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

GrayscaleGrindPeakImageFilter/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${BASELINE}/GrayscaleGrindPeakTest.nhdr,GrayscaleGrindPeakTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GrayscaleGrindPeakImageFilter/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/GrayscaleGrindPeakImageFilter/Testing/../Data/Input [created]
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

ProbeVolumeWithModel/Testing/CMakeLists.txt
=> [folder property missing]
=> [footer ok] (lastline_empty: False)

ExpertAutomatedRegistration/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> skipping addition of DATA{}: ${INPUT}/RigidUNC24.tfm
=> skipping addition of DATA{}: ${INPUT}/AffineUNC24.tfm
=> skipping addition of DATA{}: ${INPUT}/BSplineUNC24.tfm

PETStandardUptakeValueComputation/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

MergeModels/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/sphere.vtk

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/sphere.vtk
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MergeModels/Testing/../Data/Input/sphere.vtk
  => [global_test_data_dir -> module_input_dir] sphere.vtk
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MergeModels/Testing/../Data/Input [created]

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/cube.vtk

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/cube.vtk
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MergeModels/Testing/../Data/Input/cube.vtk
  => [global_test_data_dir -> module_input_dir] cube.vtk

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/sphere.vtp

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/sphere.vtp
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MergeModels/Testing/../Data/Input/sphere.vtp
  => [global_test_data_dir -> module_input_dir] sphere.vtp

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/cube.vtp

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/cube.vtp
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MergeModels/Testing/../Data/Input/cube.vtp
  => [global_test_data_dir -> module_input_dir] cube.vtp

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/sphere.vtp

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/sphere.vtp
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MergeModels/Testing/../Data/Input/sphere.vtp
  => [global_test_data_dir -> module_input_dir] sphere.vtp

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/cube.vtp

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/cube.vtp
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MergeModels/Testing/../Data/Input/cube.vtp
  => [global_test_data_dir -> module_input_dir] cube.vtp

MultiplyScalarVolumes/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)
=> [data_association] (${BASELINE}/${CLP}Test.nrrd,:)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MultiplyScalarVolumes/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MultiplyScalarVolumes/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/MultiplyScalarVolumes/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => CTHeadAxial.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)

CastScalarVolume/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)

ResampleDTIVolume/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> skipping addition of DATA{}: ${INPUT}/rotation.tfm
=> skipping addition of DATA{}: ${INPUT}/rotationAndAffine.tfm
=> skipping addition of DATA{}: ${INPUT}/FastNonrigidBSplineregistrationTransform.tfm
=> skipping addition of DATA{}: ${INPUT}/affine.tfm
=> skipping addition of DATA{}: ${BASELINE}/Brain_slice.nrrd

ResampleScalarVolume/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${BASELINE}/${CLP}Test.nhdr,ResampleScalarVolumeTest.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVolume/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVolume/Testing/../Data/Input [created]
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

FiducialRegistration/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

N4ITKBiasFieldCorrection/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/he3mask.nii.gz

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/he3mask.nii.gz
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/N4ITKBiasFieldCorrection/Testing/../Data/Input/he3mask.nii.gz
  => [global_test_data_dir -> module_input_dir] he3mask.nii.gz
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/N4ITKBiasFieldCorrection/Testing/../Data/Input [created]

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/he3volume.nii.gz

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/he3volume.nii.gz
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/N4ITKBiasFieldCorrection/Testing/../Data/Input/he3volume.nii.gz
  => [global_test_data_dir -> module_input_dir] he3volume.nii.gz

ImageLabelCombine/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)

ModelToLabelMap/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: False)
=> [data_association] (${INPUT}/OAS10001.hdr,OAS10001.img)
=> [data_association] (${INPUT}/OAS10001.hdr,OAS10001.img)

CheckerBoardFilter/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)
=> [data_association] (${BASELINE}/${CLP}Test.nhdr,CheckerBoardFilterTest.raw)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/CheckerBoardFilter/Testing/../Data/Input/CTHeadAxial.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxial.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/CheckerBoardFilter/Testing/../Data/Input [created]
  => CTHeadAxial.raw.gz [copied]

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxialDoubled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxialDoubled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/CheckerBoardFilter/Testing/../Data/Input/CTHeadAxialDoubled.nhdr
  => [global_test_data_dir -> module_input_dir] CTHeadAxialDoubled.nhdr
  => CTHeadAxialDoubled.raw.gz [copied]
=> [data_association] (${INPUT}/CTHeadAxial.nhdr,CTHeadAxial.raw.gz)
=> [data_association] (${INPUT}/CTHeadAxialDoubled.nhdr,CTHeadAxialDoubled.raw.gz)

ResampleScalarVectorDWIVolume/Testing/CMakeLists.txt
=> [folder property ok]
=> [footer ok] (lastline_empty: True)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input [created]
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledRotationNN.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledRotationNN.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampledRotationNN.nrrd
  => [global_test_data_dir -> module_input_dir] MRHeadResampledRotationNN.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledRotationAndAffine.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledRotationAndAffine.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampledRotationAndAffine.nrrd
  => [global_test_data_dir -> module_input_dir] MRHeadResampledRotationAndAffine.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledBSplineWSInterpolationTest.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledBSplineWSInterpolationTest.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampledBSplineWSInterpolationTest.nrrd
  => [global_test_data_dir -> module_input_dir] MRHeadResampledBSplineWSInterpolationTest.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledBSplineInterpolationTest.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledBSplineInterpolationTest.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampledBSplineInterpolationTest.nrrd
  => [global_test_data_dir -> module_input_dir] MRHeadResampledBSplineInterpolationTest.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledHFieldTest.nrrd

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledHFieldTest.nrrd
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampledHFieldTest.nrrd
  => [global_test_data_dir -> module_input_dir] MRHeadResampledHFieldTest.nrrd

=> [using data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr

  => [data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
  => [dest_data_filepath] /home/jcfr/Projects/Slicer-Qt5-VTK8/Modules/CLI/ResampleScalarVectorDWIVolume/Testing/../Data/Input/MRHeadResampled.nhdr
  => [global_test_data_dir -> module_input_dir] MRHeadResampled.nhdr
  => MRHeadResampled.raw.gz [copied]
=> [data_association] (${INPUT}/MRHeadResampled.nhdr,MRHeadResampled.raw.gz)
In [2]:
#---------------------------------------------------------------------------
# Create module directory in midas if needed, and upload data    

modules_folder_id = 310

if midas_update:
    midas_module_names = folder_children(modules_folder_id)

    print("\n" + ("*" * 80) + "\nMidas: Create module directories and upload missing input test data\n" + ("*" * 80))
    for module_name in missing_midas_module_input_data:
        if not missing_midas_module_input_data[module_name]:
            continue
        # Cache ids
        folder_ids = {
            "Baseline": None, 
            "Input": None,
        }
        # Upload test data
        for data_filepath in missing_midas_module_input_data[module_name]:
            sub_directory = os.path.dirname(data_filepath).split('/')[-1]
            assert sub_directory in folder_ids
            if folder_ids[sub_directory] is None:
                folder_ids[sub_directory] = get_or_create_module_test_data_directory(module_name, sub_directory)
            assert folder_ids[sub_directory] is not None
            print("%s [folder_id:%s]" % (module_name, folder_ids[sub_directory]))
            print("%s uploading %s" % (module_name, data_filepath))
            upload_item(folder_ids[sub_directory], data_filepath)
In [3]:
#---------------------------------------------------------------------------
# File that could potentially be removed from the <global_test_data_dir>

print("\n" + ("*" * 80) + "\nMidas: Potential candidate for removal\n" + ("*" * 80))

# get all list contains in the map, flatten the list, remove duplicates
#_list = [v for (k, v) in missing_midas_module_input_data.iteritems()]
#global_datafiles_candidate_for_removal = list(set(itertools.chain.from_iterable(_list)))
for datafile in global_datafiles_candidate_for_removal:
    print(datafile)


#---------------------------------------------------------------------------
print("\n" + ("*" * 80) + "\nLocal: Convert data file to md5 if it applies\n" + ("*" * 80))
# Convert data file to hash files if it applies
for data_directory in get_module_data_directories(cli_src_directory):
    for filename in os.listdir(data_directory):
        filepath = os.path.join(data_directory, filename)
        basename = os.path.basename(filename)
    
        print("\n%s" % filename)

        if basename in filenames_to_exclude:
            print("\n%s skipping" % filename)
            continue

        if convert_to_hashfiles:
            if os.path.splitext(filepath)[1] not in extensions_to_exclude:
                for hash_algo, hash_func in hash_functions.items():
                    checksum = hashfile(filepath, hash_func)
                    with open(filepath + "." + hash_algo, "w") as myfile:
                        myfile.write(checksum + "\n")
                    print("=> %s.%s [done]" % (basename, hash_algo))
                
                shutil.move(filepath, filepath + '.bkp')
                print("=> %s.bkp [done]" % basename)
                filepath = filepath + '.bkp'
                basename = os.path.basename(filename)
            
            if delete_bkp and filepath.endswith('.bkp'):
                os.remove(filepath)
                print("=> %s [removed]" % basename)
                
            print("=> [ok]")
        elif os.path.splitext(filepath)[1] == '.bkp':
            original_filename = filepath.replace('.bkp', '')
            shutil.move(filepath, original_filename)
            print("=> %s [restored]" % original_filename)
            print("\n%s restoring" % original_filename)
        else:
            print("=> [nothing-to-do]")


#---------------------------------------------------------------------------
if check_data_is_uploaded:
    check_module_test_data_are_uploaded(cli_src_directory)
            

# Display command allowing to run associated tests
print("\n" + ("*" * 80) + "\nLocal: CTest commands to run associated tests\n" + ("*" * 80))
for moduleName in moduleNames:
    print("ctest -R %s" % moduleName)

print("\nctest -R '%s'" % "|".join(moduleNames))

# Display modules missing the call setting "FOLDER" property on the test executable
print("\n" + ("*" * 80) + "\nLocal: CLI testing targets missing FOLDER property\n" + ("*" * 80))
for moduleName in modules_missing_folder_property:
    print(" %s" % moduleName)
********************************************************************************
Midas: Potential candidate for removal
********************************************************************************
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxial.nhdr
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxialMask.nrrd
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampled.nhdr
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadResampledOtsuSegmented.nhdr
/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/fixed.nrrd
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ACPCTest.mrml
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ACPC.fcsv
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/midsag.fcsv
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ModelMakerTest.mrml
/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helix-roi-lable2.nrrd
/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.nrrd
/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helixMask3Labels.mrml
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/CTHeadAxialDoubled.nhdr
/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/helix-DTI.nhdr
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceFLOAT.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceUSHORT.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceDOUBLE.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceUINT.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceSHORT.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceLONG.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceULONG.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceCHAR.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceINT.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/brainSliceUCHAR.mha
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/ExecutionModelTourTest.mrml
/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/sphere.vtk
/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/cube.vtk
/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/sphere.vtp
/home/jcfr/Projects/Slicer-Qt5-VTK8/Libs/MRML/Core/Testing/TestData/cube.vtp
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/he3mask.nii.gz
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/he3volume.nii.gz
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledRotationNN.nrrd
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledRotationAndAffine.nrrd
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledBSplineWSInterpolationTest.nrrd
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledBSplineInterpolationTest.nrrd
/home/jcfr/Projects/Slicer-Qt5-VTK8/Testing/Data/Input/MRHeadResampledHFieldTest.nrrd

********************************************************************************
Local: Convert data file to md5 if it applies
********************************************************************************

ACPC.fcsv
=> [ok]

midsag.fcsv
=> [ok]

ACPCTest.mrml
=> [ok]

AddScalarVolumesTest_INT.mha
=> AddScalarVolumesTest_INT.mha.md5 [done]
=> AddScalarVolumesTest_INT.mha.bkp [done]
=> AddScalarVolumesTest_INT.mha [removed]
=> [ok]

AddScalarVolumesTest_FLOAT.mha
=> AddScalarVolumesTest_FLOAT.mha.md5 [done]
=> AddScalarVolumesTest_FLOAT.mha.bkp [done]
=> AddScalarVolumesTest_FLOAT.mha [removed]
=> [ok]

AddScalarVolumesTest_DOUBLE.mha
=> AddScalarVolumesTest_DOUBLE.mha.md5 [done]
=> AddScalarVolumesTest_DOUBLE.mha.bkp [done]
=> AddScalarVolumesTest_DOUBLE.mha [removed]
=> [ok]

AddScalarVolumesTest_SHORT.mha
=> AddScalarVolumesTest_SHORT.mha.md5 [done]
=> AddScalarVolumesTest_SHORT.mha.bkp [done]
=> AddScalarVolumesTest_SHORT.mha [removed]
=> [ok]

AddScalarVolumesTest.nhdr
=> AddScalarVolumesTest.nhdr.md5 [done]
=> AddScalarVolumesTest.nhdr.bkp [done]
=> AddScalarVolumesTest.nhdr [removed]
=> [ok]

AddScalarVolumesTest_UCHAR.mha
=> AddScalarVolumesTest_UCHAR.mha.md5 [done]
=> AddScalarVolumesTest_UCHAR.mha.bkp [done]
=> AddScalarVolumesTest_UCHAR.mha [removed]
=> [ok]

AddScalarVolumesTest_LONG.mha
=> AddScalarVolumesTest_LONG.mha.md5 [done]
=> AddScalarVolumesTest_LONG.mha.bkp [done]
=> AddScalarVolumesTest_LONG.mha [removed]
=> [ok]

AddScalarVolumesTest_CHAR.mha
=> AddScalarVolumesTest_CHAR.mha.md5 [done]
=> AddScalarVolumesTest_CHAR.mha.bkp [done]
=> AddScalarVolumesTest_CHAR.mha [removed]
=> [ok]

AddScalarVolumesTest_UINT.mha
=> AddScalarVolumesTest_UINT.mha.md5 [done]
=> AddScalarVolumesTest_UINT.mha.bkp [done]
=> AddScalarVolumesTest_UINT.mha [removed]
=> [ok]

AddScalarVolumesTest_USHORT.mha
=> AddScalarVolumesTest_USHORT.mha.md5 [done]
=> AddScalarVolumesTest_USHORT.mha.bkp [done]
=> AddScalarVolumesTest_USHORT.mha [removed]
=> [ok]

AddScalarVolumesTest_ULONG.mha
=> AddScalarVolumesTest_ULONG.mha.md5 [done]
=> AddScalarVolumesTest_ULONG.mha.bkp [done]
=> AddScalarVolumesTest_ULONG.mha [removed]
=> [ok]

AddScalarVolumesTest.raw
=> AddScalarVolumesTest.raw.md5 [done]
=> AddScalarVolumesTest.raw.bkp [done]
=> AddScalarVolumesTest.raw [removed]
=> [ok]

brainSliceFLOAT.mha
=> brainSliceFLOAT.mha.md5 [done]
=> brainSliceFLOAT.mha.bkp [done]
=> brainSliceFLOAT.mha [removed]
=> [ok]

brainSliceUSHORT.mha
=> brainSliceUSHORT.mha.md5 [done]
=> brainSliceUSHORT.mha.bkp [done]
=> brainSliceUSHORT.mha [removed]
=> [ok]

brainSliceDOUBLE.mha
=> brainSliceDOUBLE.mha.md5 [done]
=> brainSliceDOUBLE.mha.bkp [done]
=> brainSliceDOUBLE.mha [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

brainSliceUINT.mha
=> brainSliceUINT.mha.md5 [done]
=> brainSliceUINT.mha.bkp [done]
=> brainSliceUINT.mha [removed]
=> [ok]

brainSliceSHORT.mha
=> brainSliceSHORT.mha.md5 [done]
=> brainSliceSHORT.mha.bkp [done]
=> brainSliceSHORT.mha [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

brainSliceLONG.mha
=> brainSliceLONG.mha.md5 [done]
=> brainSliceLONG.mha.bkp [done]
=> brainSliceLONG.mha [removed]
=> [ok]

brainSliceULONG.mha
=> brainSliceULONG.mha.md5 [done]
=> brainSliceULONG.mha.bkp [done]
=> brainSliceULONG.mha [removed]
=> [ok]

brainSliceCHAR.mha
=> brainSliceCHAR.mha.md5 [done]
=> brainSliceCHAR.mha.bkp [done]
=> brainSliceCHAR.mha [removed]
=> [ok]

brainSliceINT.mha
=> brainSliceINT.mha.md5 [done]
=> brainSliceINT.mha.bkp [done]
=> brainSliceINT.mha [removed]
=> [ok]

brainSliceUCHAR.mha
=> brainSliceUCHAR.mha.md5 [done]
=> brainSliceUCHAR.mha.bkp [done]
=> brainSliceUCHAR.mha [removed]
=> [ok]

CastScalarVolumeTestChar.nrrd
=> CastScalarVolumeTestChar.nrrd.md5 [done]
=> CastScalarVolumeTestChar.nrrd.bkp [done]
=> CastScalarVolumeTestChar.nrrd [removed]
=> [ok]

CastScalarVolumeTestShort.nrrd
=> CastScalarVolumeTestShort.nrrd.md5 [done]
=> CastScalarVolumeTestShort.nrrd.bkp [done]
=> CastScalarVolumeTestShort.nrrd [removed]
=> [ok]

CastScalarVolumeTestUnsignedChar.nrrd
=> CastScalarVolumeTestUnsignedChar.nrrd.md5 [done]
=> CastScalarVolumeTestUnsignedChar.nrrd.bkp [done]
=> CastScalarVolumeTestUnsignedChar.nrrd [removed]
=> [ok]

CastScalarVolumeTestUnsignedInt.nrrd
=> CastScalarVolumeTestUnsignedInt.nrrd.md5 [done]
=> CastScalarVolumeTestUnsignedInt.nrrd.bkp [done]
=> CastScalarVolumeTestUnsignedInt.nrrd [removed]
=> [ok]

CastScalarVolumeTestFloat.nrrd
=> CastScalarVolumeTestFloat.nrrd.md5 [done]
=> CastScalarVolumeTestFloat.nrrd.bkp [done]
=> CastScalarVolumeTestFloat.nrrd [removed]
=> [ok]

CastScalarVolumeTestUnsignedShort.nrrd
=> CastScalarVolumeTestUnsignedShort.nrrd.md5 [done]
=> CastScalarVolumeTestUnsignedShort.nrrd.bkp [done]
=> CastScalarVolumeTestUnsignedShort.nrrd [removed]
=> [ok]

CastScalarVolumeTestInt.nrrd
=> CastScalarVolumeTestInt.nrrd.md5 [done]
=> CastScalarVolumeTestInt.nrrd.bkp [done]
=> CastScalarVolumeTestInt.nrrd [removed]
=> [ok]

CastScalarVolumeTestDouble.nrrd
=> CastScalarVolumeTestDouble.nrrd.md5 [done]
=> CastScalarVolumeTestDouble.nrrd.bkp [done]
=> CastScalarVolumeTestDouble.nrrd [removed]
=> [ok]

CastScalarVolumeTest.nrrd
=> CastScalarVolumeTest.nrrd.md5 [done]
=> CastScalarVolumeTest.nrrd.bkp [done]
=> CastScalarVolumeTest.nrrd [removed]
=> [ok]

CheckerBoardFilterTest.nhdr
=> CheckerBoardFilterTest.nhdr.md5 [done]
=> CheckerBoardFilterTest.nhdr.bkp [done]
=> CheckerBoardFilterTest.nhdr [removed]
=> [ok]

CheckerBoardFilterTest.raw
=> CheckerBoardFilterTest.raw.md5 [done]
=> CheckerBoardFilterTest.raw.bkp [done]
=> CheckerBoardFilterTest.raw [removed]
=> [ok]

CTHeadAxialDoubled.raw.gz
=> CTHeadAxialDoubled.raw.gz.md5 [done]
=> CTHeadAxialDoubled.raw.gz.bkp [done]
=> CTHeadAxialDoubled.raw.gz [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

CTHeadAxialDoubled.nhdr
=> CTHeadAxialDoubled.nhdr.md5 [done]
=> CTHeadAxialDoubled.nhdr.bkp [done]
=> CTHeadAxialDoubled.nhdr [removed]
=> [ok]

CreateDICOMSeriesTest.dcm
=> CreateDICOMSeriesTest.dcm.md5 [done]
=> CreateDICOMSeriesTest.dcm.bkp [done]
=> CreateDICOMSeriesTest.dcm [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

CurvatureAnisotropicDiffusionTest.raw.gz
=> CurvatureAnisotropicDiffusionTest.raw.gz.md5 [done]
=> CurvatureAnisotropicDiffusionTest.raw.gz.bkp [done]
=> CurvatureAnisotropicDiffusionTest.raw.gz [removed]
=> [ok]

CurvatureAnisotropicDiffusionTest.nhdr
=> CurvatureAnisotropicDiffusionTest.nhdr.md5 [done]
=> CurvatureAnisotropicDiffusionTest.nhdr.bkp [done]
=> CurvatureAnisotropicDiffusionTest.nhdr [removed]
=> [ok]

MRHeadResampled.nhdr
=> MRHeadResampled.nhdr.md5 [done]
=> MRHeadResampled.nhdr.bkp [done]
=> MRHeadResampled.nhdr [removed]
=> [ok]

MRHeadResampled.raw.gz
=> MRHeadResampled.raw.gz.md5 [done]
=> MRHeadResampled.raw.gz.bkp [done]
=> MRHeadResampled.raw.gz [removed]
=> [ok]

helix-DTI.nhdr
=> helix-DTI.nhdr.md5 [done]
=> helix-DTI.nhdr.bkp [done]
=> helix-DTI.nhdr [removed]
=> [ok]

helix-DTI.raw.gz
=> helix-DTI.raw.gz.md5 [done]
=> helix-DTI.raw.gz.bkp [done]
=> helix-DTI.raw.gz [removed]
=> [ok]

MRHeadResampled.nhdr
=> MRHeadResampled.nhdr.md5 [done]
=> MRHeadResampled.nhdr.bkp [done]
=> MRHeadResampled.nhdr [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

ExecutionModelTourTest.mrml
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

MRHeadResampled.raw.gz
=> MRHeadResampled.raw.gz.md5 [done]
=> MRHeadResampled.raw.gz.bkp [done]
=> MRHeadResampled.raw.gz [removed]
=> [ok]

AffineUNC24.tfm
=> [ok]

RigidUNC24.tfm
=> [ok]

BSplineUNC24.tfm
=> [ok]

ExtractSkeletonTest.mha.md5
=> [ok]

ExtractSkeleton.mha.md5
=> [ok]

GaussianBlurImageFilterTest.raw
=> GaussianBlurImageFilterTest.raw.md5 [done]
=> GaussianBlurImageFilterTest.raw.bkp [done]
=> GaussianBlurImageFilterTest.raw [removed]
=> [ok]

GaussianBlurImageFilterTest.nhdr
=> GaussianBlurImageFilterTest.nhdr.md5 [done]
=> GaussianBlurImageFilterTest.nhdr.bkp [done]
=> GaussianBlurImageFilterTest.nhdr [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

GradientAnisotropicDiffusionTestWithImageSpacingOff.nhdr
=> GradientAnisotropicDiffusionTestWithImageSpacingOff.nhdr.md5 [done]
=> GradientAnisotropicDiffusionTestWithImageSpacingOff.nhdr.bkp [done]
=> GradientAnisotropicDiffusionTestWithImageSpacingOff.nhdr [removed]
=> [ok]

GradientAnisotropicDiffusionTestWithImageSpacingOn.raw.gz
=> GradientAnisotropicDiffusionTestWithImageSpacingOn.raw.gz.md5 [done]
=> GradientAnisotropicDiffusionTestWithImageSpacingOn.raw.gz.bkp [done]
=> GradientAnisotropicDiffusionTestWithImageSpacingOn.raw.gz [removed]
=> [ok]

GradientAnisotropicDiffusionTestWithImageSpacingOff.raw.gz
=> GradientAnisotropicDiffusionTestWithImageSpacingOff.raw.gz.md5 [done]
=> GradientAnisotropicDiffusionTestWithImageSpacingOff.raw.gz.bkp [done]
=> GradientAnisotropicDiffusionTestWithImageSpacingOff.raw.gz [removed]
=> [ok]

GradientAnisotropicDiffusionTestWithImageSpacingOn.nhdr
=> GradientAnisotropicDiffusionTestWithImageSpacingOn.nhdr.md5 [done]
=> GradientAnisotropicDiffusionTestWithImageSpacingOn.nhdr.bkp [done]
=> GradientAnisotropicDiffusionTestWithImageSpacingOn.nhdr [removed]
=> [ok]

MRHeadResampled.nhdr
=> MRHeadResampled.nhdr.md5 [done]
=> MRHeadResampled.nhdr.bkp [done]
=> MRHeadResampled.nhdr [removed]
=> [ok]

MRHeadResampled.raw.gz
=> MRHeadResampled.raw.gz.md5 [done]
=> MRHeadResampled.raw.gz.bkp [done]
=> MRHeadResampled.raw.gz [removed]
=> [ok]

GrayscaleFillHoleTest.raw.gz
=> GrayscaleFillHoleTest.raw.gz.md5 [done]
=> GrayscaleFillHoleTest.raw.gz.bkp [done]
=> GrayscaleFillHoleTest.raw.gz [removed]
=> [ok]

GrayscaleFillHoleTest.nhdr
=> GrayscaleFillHoleTest.nhdr.md5 [done]
=> GrayscaleFillHoleTest.nhdr.bkp [done]
=> GrayscaleFillHoleTest.nhdr [removed]
=> [ok]

MRHeadResampled.nhdr
=> MRHeadResampled.nhdr.md5 [done]
=> MRHeadResampled.nhdr.bkp [done]
=> MRHeadResampled.nhdr [removed]
=> [ok]

MRHeadResampled.raw.gz
=> MRHeadResampled.raw.gz.md5 [done]
=> MRHeadResampled.raw.gz.bkp [done]
=> MRHeadResampled.raw.gz [removed]
=> [ok]

GrayscaleGrindPeakTest.nhdr
=> GrayscaleGrindPeakTest.nhdr.md5 [done]
=> GrayscaleGrindPeakTest.nhdr.bkp [done]
=> GrayscaleGrindPeakTest.nhdr [removed]
=> [ok]

GrayscaleGrindPeakTest.raw.gz
=> GrayscaleGrindPeakTest.raw.gz.md5 [done]
=> GrayscaleGrindPeakTest.raw.gz.bkp [done]
=> GrayscaleGrindPeakTest.raw.gz [removed]
=> [ok]

MRHeadResampled.nhdr
=> MRHeadResampled.nhdr.md5 [done]
=> MRHeadResampled.nhdr.bkp [done]
=> MRHeadResampled.nhdr [removed]
=> [ok]

MRHeadResampled.raw.gz
=> MRHeadResampled.raw.gz.md5 [done]
=> MRHeadResampled.raw.gz.bkp [done]
=> MRHeadResampled.raw.gz [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

HistogramMatchingTest.raw.gz
=> HistogramMatchingTest.raw.gz.md5 [done]
=> HistogramMatchingTest.raw.gz.bkp [done]
=> HistogramMatchingTest.raw.gz [removed]
=> [ok]

HistogramMatchingTest.nhdr
=> HistogramMatchingTest.nhdr.md5 [done]
=> HistogramMatchingTest.nhdr.bkp [done]
=> HistogramMatchingTest.nhdr [removed]
=> [ok]

MRHeadResampled.nhdr
=> MRHeadResampled.nhdr.md5 [done]
=> MRHeadResampled.nhdr.bkp [done]
=> MRHeadResampled.nhdr [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

MRHeadResampled.raw.gz
=> MRHeadResampled.raw.gz.md5 [done]
=> MRHeadResampled.raw.gz.bkp [done]
=> MRHeadResampled.raw.gz [removed]
=> [ok]

LabelMapSmoothingTest.nhdr
=> LabelMapSmoothingTest.nhdr.md5 [done]
=> LabelMapSmoothingTest.nhdr.bkp [done]
=> LabelMapSmoothingTest.nhdr [removed]
=> [ok]

LabelMapSmoothingTest.raw.gz
=> LabelMapSmoothingTest.raw.gz.md5 [done]
=> LabelMapSmoothingTest.raw.gz.bkp [done]
=> LabelMapSmoothingTest.raw.gz [removed]
=> [ok]

CTHeadResampledOtsuSegmented.raw.gz
=> CTHeadResampledOtsuSegmented.raw.gz.md5 [done]
=> CTHeadResampledOtsuSegmented.raw.gz.bkp [done]
=> CTHeadResampledOtsuSegmented.raw.gz [removed]
=> [ok]

CTHeadResampledOtsuSegmented.nhdr
=> CTHeadResampledOtsuSegmented.nhdr.md5 [done]
=> CTHeadResampledOtsuSegmented.nhdr.bkp [done]
=> CTHeadResampledOtsuSegmented.nhdr [removed]
=> [ok]

MaskedVolume.nrrd
=> MaskedVolume.nrrd.md5 [done]
=> MaskedVolume.nrrd.bkp [done]
=> MaskedVolume.nrrd [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

CTHeadAxialMask.nrrd
=> CTHeadAxialMask.nrrd.md5 [done]
=> CTHeadAxialMask.nrrd.bkp [done]
=> CTHeadAxialMask.nrrd [removed]
=> [ok]

MedianImageFilterTest.nhdr
=> MedianImageFilterTest.nhdr.md5 [done]
=> MedianImageFilterTest.nhdr.bkp [done]
=> MedianImageFilterTest.nhdr [removed]
=> [ok]

MedianImageFilterTest.raw
=> MedianImageFilterTest.raw.md5 [done]
=> MedianImageFilterTest.raw.bkp [done]
=> MedianImageFilterTest.raw [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

sphereCube.vtp
=> sphereCube.vtp.md5 [done]
=> sphereCube.vtp.bkp [done]
=> sphereCube.vtp [removed]
=> [ok]

sphere.vtp
=> sphere.vtp.md5 [done]
=> sphere.vtp.bkp [done]
=> sphere.vtp [removed]
=> [ok]

sphere.vtk
=> sphere.vtk.md5 [done]
=> sphere.vtk.bkp [done]
=> sphere.vtk [removed]
=> [ok]

cube.vtk
=> cube.vtk.md5 [done]
=> cube.vtk.bkp [done]
=> cube.vtk [removed]
=> [ok]

cube.vtp
=> cube.vtp.md5 [done]
=> cube.vtp.bkp [done]
=> cube.vtp [removed]
=> [ok]

helixMask3Labels.nrrd
=> helixMask3Labels.nrrd.md5 [done]
=> helixMask3Labels.nrrd.bkp [done]
=> helixMask3Labels.nrrd [removed]
=> [ok]

helix-roi-lable2.nrrd
=> helix-roi-lable2.nrrd.md5 [done]
=> helix-roi-lable2.nrrd.bkp [done]
=> helix-roi-lable2.nrrd [removed]
=> [ok]

helixMask3Labels.mrml
=> [ok]

ModelMakerTest.mrml
=> [ok]

OAS10001-128.mha
=> OAS10001-128.mha.md5 [done]
=> OAS10001-128.mha.bkp [done]
=> OAS10001-128.mha [removed]
=> [ok]

OAS10001-255.mha
=> OAS10001-255.mha.md5 [done]
=> OAS10001-255.mha.bkp [done]
=> OAS10001-255.mha [removed]
=> [ok]

OAS10001-Transformed.vtp
=> OAS10001-Transformed.vtp.md5 [done]
=> OAS10001-Transformed.vtp.bkp [done]
=> OAS10001-Transformed.vtp [removed]
=> [ok]

OAS10001.hdr
=> OAS10001.hdr.md5 [done]
=> OAS10001.hdr.bkp [done]
=> OAS10001.hdr [removed]
=> [ok]

OAS10001.img
=> OAS10001.img.md5 [done]
=> OAS10001.img.bkp [done]
=> OAS10001.img [removed]
=> [ok]

MultiplyScalarVolumesTest.nrrd
=> MultiplyScalarVolumesTest.nrrd.md5 [done]
=> MultiplyScalarVolumesTest.nrrd.bkp [done]
=> MultiplyScalarVolumesTest.nrrd [removed]
=> [ok]

MultiplyScalarVolumesTest.1.nrrd
=> MultiplyScalarVolumesTest.1.nrrd.md5 [done]
=> MultiplyScalarVolumesTest.1.nrrd.bkp [done]
=> MultiplyScalarVolumesTest.1.nrrd [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

he3biasfield.nii.gz
=> he3biasfield.nii.gz.md5 [done]
=> he3biasfield.nii.gz.bkp [done]
=> he3biasfield.nii.gz [removed]
=> [ok]

he3corrected.nii.gz
=> he3corrected.nii.gz.md5 [done]
=> he3corrected.nii.gz.bkp [done]
=> he3corrected.nii.gz [removed]
=> [ok]

he3volume.nii.gz
=> he3volume.nii.gz.md5 [done]
=> he3volume.nii.gz.bkp [done]
=> he3volume.nii.gz [removed]
=> [ok]

he3mask.nii.gz
=> he3mask.nii.gz.md5 [done]
=> he3mask.nii.gz.bkp [done]
=> he3mask.nii.gz [removed]
=> [ok]

OrientScalarVolumeTestAxial.nrrd
=> OrientScalarVolumeTestAxial.nrrd.md5 [done]
=> OrientScalarVolumeTestAxial.nrrd.bkp [done]
=> OrientScalarVolumeTestAxial.nrrd [removed]
=> [ok]

OrientScalarVolumeTestCoronal.nrrd
=> OrientScalarVolumeTestCoronal.nrrd.md5 [done]
=> OrientScalarVolumeTestCoronal.nrrd.bkp [done]
=> OrientScalarVolumeTestCoronal.nrrd [removed]
=> [ok]

OrientScalarVolumeTestSagittal.nrrd
=> OrientScalarVolumeTestSagittal.nrrd.md5 [done]
=> OrientScalarVolumeTestSagittal.nrrd.bkp [done]
=> OrientScalarVolumeTestSagittal.nrrd [removed]
=> [ok]

fixed.nrrd
=> fixed.nrrd.md5 [done]
=> fixed.nrrd.bkp [done]
=> fixed.nrrd [removed]
=> [ok]

Brain_slice.nrrd

Brain_slice.nrrd skipping

dt-helix-ref-BS.nrrd
=> dt-helix-ref-BS.nrrd.md5 [done]
=> dt-helix-ref-BS.nrrd.bkp [done]
=> dt-helix-ref-BS.nrrd [removed]
=> [ok]

dt-helix-ref-Rotated.nrrd
=> dt-helix-ref-Rotated.nrrd.md5 [done]
=> dt-helix-ref-Rotated.nrrd.bkp [done]
=> dt-helix-ref-Rotated.nrrd [removed]
=> [ok]

dt-helix-ref-HField.nrrd
=> dt-helix-ref-HField.nrrd.md5 [done]
=> dt-helix-ref-HField.nrrd.bkp [done]
=> dt-helix-ref-HField.nrrd [removed]
=> [ok]

dt-helix-ref-RotationAndAffine.nrrd
=> dt-helix-ref-RotationAndAffine.nrrd.md5 [done]
=> dt-helix-ref-RotationAndAffine.nrrd.bkp [done]
=> dt-helix-ref-RotationAndAffine.nrrd [removed]
=> [ok]

dt-helix-ref-BSInterpolation.nrrd
=> dt-helix-ref-BSInterpolation.nrrd.md5 [done]
=> dt-helix-ref-BSInterpolation.nrrd.bkp [done]
=> dt-helix-ref-BSInterpolation.nrrd [removed]
=> [ok]

rotationAndAffine.tfm
=> [ok]

dt-helix.nrrd
=> dt-helix.nrrd.md5 [done]
=> dt-helix.nrrd.bkp [done]
=> dt-helix.nrrd [removed]
=> [ok]

affine.tfm
=> [ok]

deformationField.nrrd
=> deformationField.nrrd.md5 [done]
=> deformationField.nrrd.bkp [done]
=> deformationField.nrrd [removed]
=> [ok]

rotation.tfm
=> [ok]

FastNonrigidBSplineregistrationTransform.tfm
=> [ok]

MRHeadResampled.nhdr
=> MRHeadResampled.nhdr.md5 [done]
=> MRHeadResampled.nhdr.bkp [done]
=> MRHeadResampled.nhdr [removed]
=> [ok]

MRHeadResampledRotationAndAffine.nrrd
=> MRHeadResampledRotationAndAffine.nrrd.md5 [done]
=> MRHeadResampledRotationAndAffine.nrrd.bkp [done]
=> MRHeadResampledRotationAndAffine.nrrd [removed]
=> [ok]

MRHeadResampledBSplineWSInterpolationTest.nrrd
=> MRHeadResampledBSplineWSInterpolationTest.nrrd.md5 [done]
=> MRHeadResampledBSplineWSInterpolationTest.nrrd.bkp [done]
=> MRHeadResampledBSplineWSInterpolationTest.nrrd [removed]
=> [ok]

MRHeadResampledHFieldTest.nrrd
=> MRHeadResampledHFieldTest.nrrd.md5 [done]
=> MRHeadResampledHFieldTest.nrrd.bkp [done]
=> MRHeadResampledHFieldTest.nrrd [removed]
=> [ok]

MRHeadResampledRotationNN.nrrd
=> MRHeadResampledRotationNN.nrrd.md5 [done]
=> MRHeadResampledRotationNN.nrrd.bkp [done]
=> MRHeadResampledRotationNN.nrrd [removed]
=> [ok]

MRHeadResampled.raw.gz
=> MRHeadResampled.raw.gz.md5 [done]
=> MRHeadResampled.raw.gz.bkp [done]
=> MRHeadResampled.raw.gz [removed]
=> [ok]

MRHeadResampledBSplineInterpolationTest.nrrd
=> MRHeadResampledBSplineInterpolationTest.nrrd.md5 [done]
=> MRHeadResampledBSplineInterpolationTest.nrrd.bkp [done]
=> MRHeadResampledBSplineInterpolationTest.nrrd [removed]
=> [ok]

ResampleScalarVolumeTest.raw.gz
=> ResampleScalarVolumeTest.raw.gz.md5 [done]
=> ResampleScalarVolumeTest.raw.gz.bkp [done]
=> ResampleScalarVolumeTest.raw.gz [removed]
=> [ok]

ResampleScalarVolumeTest.nhdr
=> ResampleScalarVolumeTest.nhdr.md5 [done]
=> ResampleScalarVolumeTest.nhdr.bkp [done]
=> ResampleScalarVolumeTest.nhdr [removed]
=> [ok]

MRHeadResampled.nhdr
=> MRHeadResampled.nhdr.md5 [done]
=> MRHeadResampled.nhdr.bkp [done]
=> MRHeadResampled.nhdr [removed]
=> [ok]

MRHeadResampled.raw.gz
=> MRHeadResampled.raw.gz.md5 [done]
=> MRHeadResampled.raw.gz.bkp [done]
=> MRHeadResampled.raw.gz [removed]
=> [ok]

grayscale.nrrd
=> grayscale.nrrd.md5 [done]
=> grayscale.nrrd.bkp [done]
=> grayscale.nrrd [removed]
=> [ok]

grayscale-label.nrrd
=> grayscale-label.nrrd.md5 [done]
=> grayscale-label.nrrd.bkp [done]
=> grayscale-label.nrrd [removed]
=> [ok]

SimpleRegionGrowingSegmentationTest.nhdr
=> SimpleRegionGrowingSegmentationTest.nhdr.md5 [done]
=> SimpleRegionGrowingSegmentationTest.nhdr.bkp [done]
=> SimpleRegionGrowingSegmentationTest.nhdr [removed]
=> [ok]

SimpleRegionGrowingSegmentationTest.raw.gz
=> SimpleRegionGrowingSegmentationTest.raw.gz.md5 [done]
=> SimpleRegionGrowingSegmentationTest.raw.gz.bkp [done]
=> SimpleRegionGrowingSegmentationTest.raw.gz [removed]
=> [ok]

MRHeadResampled.nhdr
=> MRHeadResampled.nhdr.md5 [done]
=> MRHeadResampled.nhdr.bkp [done]
=> MRHeadResampled.nhdr [removed]
=> [ok]

MRHeadResampled.raw.gz
=> MRHeadResampled.raw.gz.md5 [done]
=> MRHeadResampled.raw.gz.bkp [done]
=> MRHeadResampled.raw.gz [removed]
=> [ok]

SubtractScalarVolumesTest.raw.gz
=> SubtractScalarVolumesTest.raw.gz.md5 [done]
=> SubtractScalarVolumesTest.raw.gz.bkp [done]
=> SubtractScalarVolumesTest.raw.gz [removed]
=> [ok]

SubtractScalarVolumesTest.nhdr
=> SubtractScalarVolumesTest.nhdr.md5 [done]
=> SubtractScalarVolumesTest.nhdr.bkp [done]
=> SubtractScalarVolumesTest.nhdr [removed]
=> [ok]

CTHeadAxialDoubled.raw.gz
=> CTHeadAxialDoubled.raw.gz.md5 [done]
=> CTHeadAxialDoubled.raw.gz.bkp [done]
=> CTHeadAxialDoubled.raw.gz [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

CTHeadAxialDoubled.nhdr
=> CTHeadAxialDoubled.nhdr.md5 [done]
=> CTHeadAxialDoubled.nhdr.bkp [done]
=> CTHeadAxialDoubled.nhdr [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

ThresholdScalarVolumeTest.raw.gz
=> ThresholdScalarVolumeTest.raw.gz.md5 [done]
=> ThresholdScalarVolumeTest.raw.gz.bkp [done]
=> ThresholdScalarVolumeTest.raw.gz [removed]
=> [ok]

ThresholdScalarVolumeTest.nhdr
=> ThresholdScalarVolumeTest.nhdr.md5 [done]
=> ThresholdScalarVolumeTest.nhdr.bkp [done]
=> ThresholdScalarVolumeTest.nhdr [removed]
=> [ok]

CTHeadAxial.raw.gz
=> CTHeadAxial.raw.gz.md5 [done]
=> CTHeadAxial.raw.gz.bkp [done]
=> CTHeadAxial.raw.gz [removed]
=> [ok]

CTHeadAxial.nhdr
=> CTHeadAxial.nhdr.md5 [done]
=> CTHeadAxial.nhdr.bkp [done]
=> CTHeadAxial.nhdr [removed]
=> [ok]

VotingBinaryHoleFillingImageFilterTest.nhdr
=> VotingBinaryHoleFillingImageFilterTest.nhdr.md5 [done]
=> VotingBinaryHoleFillingImageFilterTest.nhdr.bkp [done]
=> VotingBinaryHoleFillingImageFilterTest.nhdr [removed]
=> [ok]

VotingBinaryHoleFillingImageFilterTest.raw.gz
=> VotingBinaryHoleFillingImageFilterTest.raw.gz.md5 [done]
=> VotingBinaryHoleFillingImageFilterTest.raw.gz.bkp [done]
=> VotingBinaryHoleFillingImageFilterTest.raw.gz [removed]
=> [ok]

CTHeadResampledOtsuSegmented.raw.gz
=> CTHeadResampledOtsuSegmented.raw.gz.md5 [done]
=> CTHeadResampledOtsuSegmented.raw.gz.bkp [done]
=> CTHeadResampledOtsuSegmented.raw.gz [removed]
=> [ok]

CTHeadResampledOtsuSegmented.nhdr
=> CTHeadResampledOtsuSegmented.nhdr.md5 [done]
=> CTHeadResampledOtsuSegmented.nhdr.bkp [done]
=> CTHeadResampledOtsuSegmented.nhdr [removed]
=> [ok]

********************************************************************************
Local: CTest commands to run associated tests
********************************************************************************
ctest -R MaskScalarVolume
ctest -R GradientAnisotropicDiffusion
ctest -R GaussianBlurImageFilter
ctest -R MedianImageFilter
ctest -R TestGridTransformRegistration
ctest -R HistogramMatching
ctest -R LabelMapSmoothing
ctest -R SimpleRegionGrowingSegmentation
ctest -R OrientScalarVolume
ctest -R VotingBinaryHoleFillingImageFilter
ctest -R CurvatureAnisotropicDiffusion
ctest -R ACPCTransform
ctest -R GrayscaleModelMaker
ctest -R GrayscaleFillHoleImageFilter
ctest -R FreesurferSurfaceSectionExtraction
ctest -R ExtractSkeleton
ctest -R ModelMaker
ctest -R SubtractScalarVolumes
ctest -R ThresholdScalarVolume
ctest -R RobustStatisticsSegmenter
ctest -R DiffusionTensorTest
ctest -R CreateDICOMSeries
ctest -R AddScalarVolumes
ctest -R ExecutionModelTour
ctest -R GrayscaleGrindPeakImageFilter
ctest -R ProbeVolumeWithModel
ctest -R ExpertAutomatedRegistration
ctest -R PETStandardUptakeValueComputation
ctest -R MergeModels
ctest -R MultiplyScalarVolumes
ctest -R CastScalarVolume
ctest -R ResampleDTIVolume
ctest -R ResampleScalarVolume
ctest -R FiducialRegistration
ctest -R N4ITKBiasFieldCorrection
ctest -R ImageLabelCombine
ctest -R ModelToLabelMap
ctest -R CheckerBoardFilter
ctest -R ResampleScalarVectorDWIVolume

ctest -R 'MaskScalarVolume|GradientAnisotropicDiffusion|GaussianBlurImageFilter|MedianImageFilter|TestGridTransformRegistration|HistogramMatching|LabelMapSmoothing|SimpleRegionGrowingSegmentation|OrientScalarVolume|VotingBinaryHoleFillingImageFilter|CurvatureAnisotropicDiffusion|ACPCTransform|GrayscaleModelMaker|GrayscaleFillHoleImageFilter|FreesurferSurfaceSectionExtraction|ExtractSkeleton|ModelMaker|SubtractScalarVolumes|ThresholdScalarVolume|RobustStatisticsSegmenter|DiffusionTensorTest|CreateDICOMSeries|AddScalarVolumes|ExecutionModelTour|GrayscaleGrindPeakImageFilter|ProbeVolumeWithModel|ExpertAutomatedRegistration|PETStandardUptakeValueComputation|MergeModels|MultiplyScalarVolumes|CastScalarVolume|ResampleDTIVolume|ResampleScalarVolume|FiducialRegistration|N4ITKBiasFieldCorrection|ImageLabelCombine|ModelToLabelMap|CheckerBoardFilter|ResampleScalarVectorDWIVolume'

********************************************************************************
Local: CLI testing targets missing FOLDER property
********************************************************************************
 ProbeVolumeWithModel
In [4]:
print("\n" + ("*" * 80) + "\nLocal: CTest commands to run associated tests\n" + ("*" * 80))
print("\nctest -R '%s'" % "|".join(moduleNames))
********************************************************************************
Local: CTest commands to run associated tests
********************************************************************************

ctest -R 'MaskScalarVolume|GradientAnisotropicDiffusion|GaussianBlurImageFilter|MedianImageFilter|TestGridTransformRegistration|HistogramMatching|LabelMapSmoothing|SimpleRegionGrowingSegmentation|OrientScalarVolume|VotingBinaryHoleFillingImageFilter|CurvatureAnisotropicDiffusion|ACPCTransform|GrayscaleModelMaker|GrayscaleFillHoleImageFilter|FreesurferSurfaceSectionExtraction|ExtractSkeleton|ModelMaker|SubtractScalarVolumes|ThresholdScalarVolume|RobustStatisticsSegmenter|DiffusionTensorTest|CreateDICOMSeries|AddScalarVolumes|ExecutionModelTour|GrayscaleGrindPeakImageFilter|ProbeVolumeWithModel|ExpertAutomatedRegistration|PETStandardUptakeValueComputation|MergeModels|MultiplyScalarVolumes|CastScalarVolume|ResampleDTIVolume|ResampleScalarVolume|FiducialRegistration|N4ITKBiasFieldCorrection|ImageLabelCombine|ModelToLabelMap|CheckerBoardFilter|ResampleScalarVectorDWIVolume'