Skip to content
Snippets Groups Projects
Commit 19380e0b authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

RF: re-work applyxfm tests - no longer rely on external data. Use benchmark

data for evaluation
parent 270f7f8e
No related branches found
No related tags found
No related merge requests found
Showing
with 10 additions and 275 deletions
unit_tests/applyxfm4D
#!/usr/bin/env fslpython
"""
test applyxfm4D correct failure
"""
from subprocess import run, PIPE, CalledProcessError
from os.path import join
from tempfile import mkdtemp
import os
import sys
OUTDIR = sys.argv[1]
INDIR = sys.argv[2]
FSLDIR = os.environ.get('FSLDIR')
FSLBIN = join(FSLDIR, 'bin')
# applyxfm4D fmri.nii.gz brain.nii.gz applyxfm4D_out f2b.mat -singlematrix -interp nn
def test_applyxfm4D_fail():
cmd = [
join(FSLBIN, 'applyxfm4D'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_in.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_ref.nii.gz'),
join(OUTDIR, 'applyxfm4D_out.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_mat.mat')
]
try:
run_result = run(cmd, stdout=PIPE, check=True)
stdout_string = run_result.stdout.decode('utf-8')
assert False
except CalledProcessError as e:
print("test_applyxfm4D correctly failed. This is good!")
assert e.returncode != 0
print("running test_applyxfm4D_fail()")
test_applyxfm4D_fail()
unit_tests/applyxfm4D
#!/usr/bin/env fslpython
"""
test applyxfm4D matfile directory option with 4 digit numbers in filenames
"""
from subprocess import run, PIPE
from os.path import join
from tempfile import mkdtemp
import os
import sys
OUTDIR = sys.argv[1]
INDIR = sys.argv[2]
FSLDIR = os.environ.get('FSLDIR')
FSLBIN = join(FSLDIR, 'bin')
print(INDIR)
def test_applyxfm4D_fourdigit():
# use trilinear interp for speed
cmd = [
join(FSLBIN, 'applyxfm4D'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_in.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_ref.nii.gz'),
join(OUTDIR, 'applyxfm4D_out.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'matfiles_four_digit'),
'-interp',
'trilinear',
'-fourdigit'
]
run_result = run(cmd, stdout=PIPE, check=True)
stdout_string = run_result.stdout.decode('utf-8')
# check that the files were written to disk
# the brain extracted input should exist
assert os.path.isfile(join(OUTDIR, 'applyxfm4D_out.nii.gz')) == True
test_applyxfm4D_fourdigit()
File added
1.0000000000 0.0000000000 0.0000000000 -0.3750000000
0.0000000000 1.0000000000 0.0000000000 0.8958333450
0.0000000000 0.0000000000 1.0000000000 2.0000000000
0.0000000000 0.0000000000 0.0000000000 1.0000000000
unit_tests/applyxfm4D
#!/usr/bin/env fslpython
"""
test applyxfm4D nn interp
"""
from subprocess import run, PIPE
from os.path import join
from tempfile import mkdtemp
import os
import sys
OUTDIR = sys.argv[1]
INDIR = sys.argv[2]
FSLDIR = os.environ.get('FSLDIR')
FSLBIN = join(FSLDIR, 'bin')
print(INDIR)
def test_applyxfm4D_nn():
cmd = [
join(FSLBIN, 'applyxfm4D'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_in.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_ref.nii.gz'),
join(OUTDIR, 'applyxfm4D_out.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_mat.mat'),
'-singlematrix',
'-interp',
'nn'
]
run_result = run(cmd, stdout=PIPE, check=True)
stdout_string = run_result.stdout.decode('utf-8')
# check that the files were written to disk
# the brain extracted input should exist
assert os.path.isfile(join(OUTDIR, 'applyxfm4D_out.nii.gz')) == True
test_applyxfm4D_nn()
File added
unit_tests/applyxfm4D
#!/usr/bin/env fslpython
"""
test applyxfm4D sinc interp
"""
from subprocess import run, PIPE
from os.path import join
from tempfile import mkdtemp
import os
import sys
OUTDIR = sys.argv[1]
INDIR = sys.argv[2]
FSLDIR = os.environ.get('FSLDIR')
FSLBIN = join(FSLDIR, 'bin')
print(INDIR)
def test_applyxfm4D_sinc():
cmd = [
join(FSLBIN, 'applyxfm4D'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_in.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_ref.nii.gz'),
join(OUTDIR, 'applyxfm4D_out.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_mat.mat'),
'-singlematrix',
'-interp',
'sinc'
]
run_result = run(cmd, stdout=PIPE, check=True)
stdout_string = run_result.stdout.decode('utf-8')
# check that the files were written to disk
# the brain extracted input should exist
assert os.path.isfile(join(OUTDIR, 'applyxfm4D_out.nii.gz')) == True
test_applyxfm4D_sinc()
unit_tests/applyxfm4D
#!/usr/bin/env fslpython
"""
test applyxfm4D single matrix option
"""
from subprocess import run, PIPE
from os.path import join
from tempfile import mkdtemp
import os
import sys
OUTDIR = sys.argv[1]
INDIR = sys.argv[2]
FSLDIR = os.environ.get('FSLDIR')
FSLBIN = join(FSLDIR, 'bin')
print(INDIR)
def test_applyxfm4D_singlematrix():
# use nearestneighbour interp for speed
cmd = [
join(FSLBIN, 'applyxfm4D'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_in.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_ref.nii.gz'),
join(OUTDIR, 'applyxfm4D_out.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_mat.mat'),
'-singlematrix',
'-interp',
'nn'
]
run_result = run(cmd, stdout=PIPE, check=True)
stdout_string = run_result.stdout.decode('utf-8')
# check that the files were written to disk
# the brain extracted input should exist
assert os.path.isfile(join(OUTDIR, 'applyxfm4D_out.nii.gz')) == True
test_applyxfm4D_singlematrix()
unit_tests/applyxfm4D
#!/usr/bin/env fslpython
"""
test applyxfm4D spline interp
"""
from subprocess import run, PIPE
from os.path import join
from tempfile import mkdtemp
import os
import sys
OUTDIR = sys.argv[1]
INDIR = sys.argv[2]
FSLDIR = os.environ.get('FSLDIR')
FSLBIN = join(FSLDIR, 'bin')
print(INDIR)
def test_applyxfm4D_spline():
cmd = [
join(FSLBIN, 'applyxfm4D'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_in.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_ref.nii.gz'),
join(OUTDIR, 'applyxfm4D_out.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_mat.mat'),
'-singlematrix',
'-interp',
'spline'
]
run_result = run(cmd, stdout=PIPE, check=True)
stdout_string = run_result.stdout.decode('utf-8')
# check that the files were written to disk
# the brain extracted input should exist
assert os.path.isfile(join(OUTDIR, 'applyxfm4D_out.nii.gz')) == True
test_applyxfm4D_spline()
unit_tests/applyxfm4D
#!/usr/bin/env fslpython
"""
test applyxfm4D matfile directory option
"""
from subprocess import run, PIPE
from os.path import join
from tempfile import mkdtemp
import os
import sys
OUTDIR = sys.argv[1]
INDIR = sys.argv[2]
FSLDIR = os.environ.get('FSLDIR')
FSLBIN = join(FSLDIR, 'bin')
print(INDIR)
def test_applyxfm4D_transdir():
# use trilinear interp for speed
cmd = [
join(FSLBIN, 'applyxfm4D'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_in.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_ref.nii.gz'),
join(OUTDIR, 'applyxfm4D_out.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'matfiles_five_digit'),
'-interp',
'trilinear'
]
run_result = run(cmd, stdout=PIPE, check=True)
stdout_string = run_result.stdout.decode('utf-8')
# check that the files were written to disk
# the brain extracted input should exist
assert os.path.isfile(join(OUTDIR, 'applyxfm4D_out.nii.gz')) == True
test_applyxfm4D_transdir()
unit_tests/applyxfm4D
#!/usr/bin/env fslpython
"""
test applyxfm4D trilinear interp
"""
from subprocess import run, PIPE
from os.path import join
from tempfile import mkdtemp
import os
import sys
OUTDIR = sys.argv[1]
INDIR = sys.argv[2]
FSLDIR = os.environ.get('FSLDIR')
FSLBIN = join(FSLDIR, 'bin')
print(INDIR)
def test_applyxfm4D_trilinear():
cmd = [
join(FSLBIN, 'applyxfm4D'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_in.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_ref.nii.gz'),
join(OUTDIR, 'applyxfm4D_out.nii.gz'),
join(INDIR, 'unit_tests', 'applyxfm4D', 'applyxfm4D_mat.mat'),
'-singlematrix',
'-interp',
'trilinear'
]
run_result = run(cmd, stdout=PIPE, check=True)
stdout_string = run_result.stdout.decode('utf-8')
# check that the files were written to disk
# the brain extracted input should exist
assert os.path.isfile(join(OUTDIR, 'applyxfm4D_out.nii.gz')) == True
test_applyxfm4D_trilinear()
unit_tests/applyxfm4D
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment