Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
fslpy
Manage
Activity
Members
Code
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Analyze
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
FSL
fslpy
Commits
2a8929a3
Commit
2a8929a3
authored
5 years ago
by
Paul McCarthy
Browse files
Options
Downloads
Patches
Plain Diff
TEST: update wrapper tests ("output" -> "stdout"). New test for results
attribute access. New test for fileOrText decorator
parent
aac90673
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
tests/test_wrappers.py
+29
-29
29 additions, 29 deletions
tests/test_wrappers.py
tests/test_wrapperutils.py
+92
-0
92 additions, 0 deletions
tests/test_wrapperutils.py
with
121 additions
and
29 deletions
tests/test_wrappers.py
+
29
−
29
View file @
2a8929a3
...
...
@@ -48,7 +48,7 @@ def test_bet():
bet
=
op
.
join
(
fsldir
,
'
bin
'
,
'
bet
'
)
result
=
fw
.
bet
(
'
input
'
,
'
output
'
,
mask
=
True
,
c
=
(
10
,
20
,
30
))
expected
=
(
bet
+
'
input output
'
,
(
'
-m
'
,
'
-c 10 20 30
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
,
stripdir
=
[
2
])
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
,
stripdir
=
[
2
])
def
test_robustfov
():
...
...
@@ -56,7 +56,7 @@ def test_robustfov():
rfov
=
op
.
join
(
fsldir
,
'
bin
'
,
'
robustfov
'
)
result
=
fw
.
robustfov
(
'
input
'
,
'
output
'
,
b
=
180
)
expected
=
(
rfov
+
'
-i input
'
,
(
'
-r output
'
,
'
-b 180
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_eddy_cuda
():
...
...
@@ -73,7 +73,7 @@ def test_eddy_cuda():
'
--out=out
'
,
'
--dont_mask_output
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_topup
():
...
...
@@ -81,7 +81,7 @@ def test_topup():
topup
=
op
.
join
(
fsldir
,
'
bin
'
,
'
topup
'
)
result
=
fw
.
topup
(
'
imain
'
,
'
datain
'
,
minmet
=
1
)
expected
=
topup
+
'
--imain=imain --datain=datain --minmet=1
'
assert
result
.
outp
ut
[
0
]
==
expected
assert
result
.
stdo
ut
[
0
]
==
expected
def
test_flirt
():
...
...
@@ -90,7 +90,7 @@ def test_flirt():
result
=
fw
.
flirt
(
'
src
'
,
'
ref
'
,
usesqform
=
True
,
anglerep
=
'
euler
'
)
expected
=
(
flirt
+
'
-in src -ref ref
'
,
(
'
-usesqform
'
,
'
-anglerep euler
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_applyxfm
():
...
...
@@ -102,7 +102,7 @@ def test_applyxfm():
'
-out out
'
,
'
-init mat
'
,
'
-interp trilinear
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_applyxfm
():
...
...
@@ -113,7 +113,7 @@ def test_applyxfm():
expected
=
(
applyxfm
+
'
src ref out mat
'
,
(
'
-fourdigit
'
,
'
-userprefix boo
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_invxfm
():
...
...
@@ -121,7 +121,7 @@ def test_invxfm():
cnvxfm
=
op
.
join
(
fsldir
,
'
bin
'
,
'
convert_xfm
'
)
result
=
fw
.
invxfm
(
'
mat
'
,
'
output
'
)
expected
=
cnvxfm
+
'
-omat output -inverse mat
'
assert
result
.
outp
ut
[
0
]
==
expected
assert
result
.
stdo
ut
[
0
]
==
expected
def
test_concatxfm
():
...
...
@@ -129,7 +129,7 @@ def test_concatxfm():
cnvxfm
=
op
.
join
(
fsldir
,
'
bin
'
,
'
convert_xfm
'
)
result
=
fw
.
concatxfm
(
'
mat1
'
,
'
mat2
'
,
'
output
'
)
expected
=
cnvxfm
+
'
-omat output -concat mat2 mat1
'
assert
result
.
outp
ut
[
0
]
==
expected
assert
result
.
stdo
ut
[
0
]
==
expected
def
test_mcflirt
():
...
...
@@ -140,7 +140,7 @@ def test_mcflirt():
(
'
-out output
'
,
'
-cost normcorr
'
,
'
-dof 12
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_fnirt
():
...
...
@@ -153,7 +153,7 @@ def test_fnirt():
'
--iout=iout
'
,
'
--fout=fout
'
,
'
--subsamp=8,6,4,2
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_applywarp
():
...
...
@@ -162,7 +162,7 @@ def test_applywarp():
result
=
fw
.
applywarp
(
'
src
'
,
'
ref
'
,
'
out
'
,
warp
=
'
warp
'
,
abs
=
True
,
super
=
True
)
expected
=
(
applywarp
+
'
--in=src --ref=ref --out=out
'
,
(
'
--warp=warp
'
,
'
--abs
'
,
'
--super
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_invwarp
():
...
...
@@ -172,7 +172,7 @@ def test_invwarp():
rel
=
True
,
noconstraint
=
True
)
expected
=
(
invwarp
+
'
--warp=warp --ref=ref --out=out
'
,
(
'
--rel
'
,
'
--noconstraint
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_convertwarp
():
...
...
@@ -181,7 +181,7 @@ def test_convertwarp():
result
=
fw
.
convertwarp
(
'
out
'
,
'
ref
'
,
absout
=
True
,
jacobian
=
'
jacobian
'
)
expected
=
(
cnvwarp
+
'
--ref=ref --out=out
'
,
(
'
--absout
'
,
'
--jacobian=jacobian
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_fugue
():
...
...
@@ -193,7 +193,7 @@ def test_fugue():
'
--warp=warp
'
,
'
--median
'
,
'
--dwell=10
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
...
...
@@ -203,7 +203,7 @@ def test_sigloss():
result
=
fw
.
sigloss
(
'
input
'
,
'
sigloss
'
,
mask
=
'
mask
'
,
te
=
0.5
)
expected
=
(
sigloss
+
'
--in input --sigloss sigloss
'
,
(
'
--mask mask
'
,
'
--te 0.5
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_prelude
():
...
...
@@ -217,7 +217,7 @@ def test_prelude():
'
--out=out
'
,
'
--labelslices
'
,
'
--start=5
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_melodic
():
...
...
@@ -226,7 +226,7 @@ def test_melodic():
result
=
fw
.
melodic
(
'
input
'
,
dim
=
50
,
mask
=
'
mask
'
,
Oall
=
True
)
expected
=
(
melodic
+
'
--in=input
'
,
(
'
--dim=50
'
,
'
--mask=mask
'
,
'
--Oall
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_fsl_regfilt
():
...
...
@@ -236,7 +236,7 @@ def test_fsl_regfilt():
filter
=
(
1
,
2
,
3
,
4
),
vn
=
True
)
expected
=
(
regfilt
+
'
--in=input --out=output --design=design
'
,
(
'
--filter=1,2,3,4
'
,
'
--vn
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
...
...
@@ -245,7 +245,7 @@ def test_fslreorient2std():
r2std
=
op
.
join
(
fsldir
,
'
bin
'
,
'
fslreorient2std
'
)
result
=
fw
.
fslreorient2std
(
'
input
'
,
'
output
'
)
expected
=
r2std
+
'
input output
'
assert
result
.
outp
ut
[
0
]
==
expected
assert
result
.
stdo
ut
[
0
]
==
expected
def
test_fslroi
():
...
...
@@ -254,15 +254,15 @@ def test_fslroi():
result
=
fw
.
fslroi
(
'
input
'
,
'
output
'
,
1
,
10
)
expected
=
fslroi
+
'
input output 1 10
'
assert
result
.
outp
ut
[
0
]
==
expected
assert
result
.
stdo
ut
[
0
]
==
expected
result
=
fw
.
fslroi
(
'
input
'
,
'
output
'
,
1
,
10
,
2
,
20
,
3
,
30
)
expected
=
fslroi
+
'
input output 1 10 2 20 3 30
'
assert
result
.
outp
ut
[
0
]
==
expected
assert
result
.
stdo
ut
[
0
]
==
expected
result
=
fw
.
fslroi
(
'
input
'
,
'
output
'
,
1
,
10
,
2
,
20
,
3
,
30
,
4
,
40
)
expected
=
fslroi
+
'
input output 1 10 2 20 3 30 4 40
'
assert
result
.
outp
ut
[
0
]
==
expected
assert
result
.
stdo
ut
[
0
]
==
expected
def
test_slicer
():
...
...
@@ -270,7 +270,7 @@ def test_slicer():
slicer
=
op
.
join
(
fsldir
,
'
bin
'
,
'
slicer
'
)
result
=
fw
.
slicer
(
'
input1
'
,
'
input2
'
,
i
=
(
20
,
100
),
x
=
(
20
,
'
x.png
'
))
expected
=
slicer
+
'
input1 input2 -i 20 100 -x 20 x.png
'
assert
result
.
outp
ut
[
0
]
==
expected
assert
result
.
stdo
ut
[
0
]
==
expected
def
test_cluster
():
...
...
@@ -280,7 +280,7 @@ def test_cluster():
fractional
=
True
,
osize
=
'
osize
'
)
expected
=
(
cluster
+
'
--in=input --thresh=thresh
'
,
(
'
--fractional
'
,
'
--osize=osize
'
))
assert
checkResult
(
result
.
outp
ut
[
0
],
*
expected
)
assert
checkResult
(
result
.
stdo
ut
[
0
],
*
expected
)
def
test_fslmaths
():
...
...
@@ -300,7 +300,7 @@ def test_fslmaths():
'
-inm inmim
'
,
'
-bptf 1 10
'
,
'
output
'
]
expected
=
'
'
.
join
(
expected
)
assert
result
.
outp
ut
[
0
]
==
expected
assert
result
.
stdo
ut
[
0
]
==
expected
# test LOAD output
with
tempdir
()
as
td
,
mockFSLDIR
(
bin
=
(
'
fslmaths
'
,))
as
fsldir
:
...
...
@@ -328,12 +328,12 @@ def test_fast():
result
=
fw
.
fast
(
'
input
'
,
'
myseg
'
,
n_classes
=
3
)
expected
=
[
cmd
,
'
-v
'
,
'
--out=myseg
'
,
'
--class=3
'
,
'
input
'
]
assert
result
.
outp
ut
[
0
]
==
'
'
.
join
(
expected
)
assert
result
.
stdo
ut
[
0
]
==
'
'
.
join
(
expected
)
result
=
fw
.
fast
((
'
in1
'
,
'
in2
'
,
'
in3
'
),
'
myseg
'
,
n_classes
=
3
)
expected
=
[
cmd
,
'
-v
'
,
'
--out=myseg
'
,
'
--class=3
'
,
'
in1
'
,
'
in2
'
,
'
in3
'
]
assert
result
.
outp
ut
[
0
]
==
'
'
.
join
(
expected
)
assert
result
.
stdo
ut
[
0
]
==
'
'
.
join
(
expected
)
...
...
@@ -348,4 +348,4 @@ def test_fsl_anat():
expected
=
[
cmd
,
'
-i
'
,
'
t1
'
,
'
-o
'
,
'
fsl_anat
'
,
'
-t
'
,
'
T1
'
,
'
-s
'
,
'
25
'
]
assert
result
.
outp
ut
[
0
]
==
'
'
.
join
(
expected
)
assert
result
.
stdo
ut
[
0
]
==
'
'
.
join
(
expected
)
This diff is collapsed.
Click to expand it.
tests/test_wrapperutils.py
+
92
−
0
View file @
2a8929a3
...
...
@@ -8,6 +8,7 @@
import
os.path
as
op
import
os
import
shlex
import
pathlib
import
textwrap
try
:
from
unittest
import
mock
...
...
@@ -353,6 +354,30 @@ def test_fileOrThing_sequence():
assert
np
.
all
(
func
(
infiles
[
0
],
wutils
.
LOAD
)[
'
out
'
]
==
inputs
[
0
])
def
test_fileOrText
():
@wutils.fileOrText
(
'
input
'
,
'
output
'
)
def
func
(
input
,
output
):
data
=
open
(
input
).
read
()
data
=
''
.
join
([
'
{}{}
'
.
format
(
c
,
c
)
for
c
in
data
])
open
(
output
,
'
wt
'
).
write
(
data
)
with
tempdir
.
tempdir
():
data
=
'
abcdefg
'
exp
=
'
aabbccddeeffgg
'
open
(
'
input.txt
'
,
'
wt
'
).
write
(
data
)
func
(
pathlib
.
Path
(
'
input.txt
'
),
pathlib
.
Path
(
'
output.txt
'
))
assert
open
(
'
output.txt
'
).
read
()
==
exp
func
(
'
abcdefg
'
,
pathlib
.
Path
(
'
output.txt
'
))
assert
open
(
'
output.txt
'
).
read
()
==
exp
assert
func
(
'
12345
'
,
wutils
.
LOAD
).
output
==
'
1122334455
'
def
test_fileOrThing_outprefix
():
@wutils.fileOrImage
(
'
img
'
,
outprefix
=
'
output_base
'
)
...
...
@@ -496,6 +521,73 @@ def test_fileOrThing_outprefix_directory():
assert
np
.
all
(
np
.
asanyarray
(
res
[
op
.
join
(
'
foo
'
,
'
myout_imgs
'
,
'
img4
'
)].
dataobj
)
==
exp4
)
def
test_fileOrThing_results
():
@wutils.fileOrArray
(
'
input
'
,
'
regular_output
'
,
outprefix
=
'
outpref
'
)
def
func
(
input
,
regular_output
,
outpref
):
input
=
np
.
loadtxt
(
input
)
regout
=
input
*
2
prefouts
=
[]
for
i
in
range
(
3
,
6
):
prefouts
.
append
(
input
*
i
)
np
.
savetxt
(
regular_output
,
regout
)
for
i
,
o
in
enumerate
(
prefouts
):
np
.
savetxt
(
'
{}_{}.txt
'
.
format
(
outpref
,
i
),
o
)
return
(
'
return
'
,
'
value
'
)
input
=
np
.
random
.
randint
(
1
,
10
,
(
3
,
3
))
infile
=
'
input.txt
'
exp
=
[
input
*
i
for
i
in
range
(
2
,
6
)]
with
tempdir
.
tempdir
():
np
.
savetxt
(
infile
,
input
)
result
=
func
(
'
input.txt
'
,
'
regout.txt
'
,
'
outpref
'
)
assert
len
(
result
)
==
0
assert
result
.
stdout
==
(
'
return
'
,
'
value
'
)
assert
(
np
.
loadtxt
(
'
regout.txt
'
)
==
exp
[
0
]).
all
()
for
i
in
range
(
3
):
assert
(
np
.
loadtxt
(
'
outpref_{}.txt
'
.
format
(
i
))
==
exp
[
i
+
1
]).
all
()
result
=
func
(
input
,
'
regout.txt
'
,
'
outpref
'
)
assert
len
(
result
)
==
0
assert
result
.
stdout
==
(
'
return
'
,
'
value
'
)
assert
(
np
.
loadtxt
(
'
regout.txt
'
)
==
exp
[
0
]).
all
()
for
i
in
range
(
3
):
assert
(
np
.
loadtxt
(
'
outpref_{}.txt
'
.
format
(
i
))
==
exp
[
i
+
1
]).
all
()
result
=
func
(
input
,
wutils
.
LOAD
,
'
outpref
'
)
assert
len
(
result
)
==
1
assert
result
.
stdout
==
(
'
return
'
,
'
value
'
)
assert
(
result
.
regular_output
==
exp
[
0
]).
all
()
assert
(
result
[
'
regular_output
'
]
==
exp
[
0
]).
all
()
for
i
in
range
(
3
):
assert
(
np
.
loadtxt
(
'
outpref_{}.txt
'
.
format
(
i
))
==
exp
[
i
+
1
]).
all
()
# todo outpref
result
=
func
(
input
,
wutils
.
LOAD
,
wutils
.
LOAD
)
assert
len
(
result
)
==
4
assert
result
.
stdout
==
(
'
return
'
,
'
value
'
)
assert
(
result
.
regular_output
==
exp
[
0
]).
all
()
assert
(
result
[
'
regular_output
'
]
==
exp
[
0
]).
all
()
assert
(
result
.
outpref_0
==
exp
[
1
]).
all
()
assert
(
result
[
'
outpref_0
'
]
==
exp
[
1
]).
all
()
assert
(
result
.
outpref_1
==
exp
[
2
]).
all
()
assert
(
result
[
'
outpref_1
'
]
==
exp
[
2
]).
all
()
assert
(
result
.
outpref_2
==
exp
[
3
]).
all
()
assert
(
result
[
'
outpref_2
'
]
==
exp
[
3
]).
all
()
for
i
in
range
(
3
):
assert
(
np
.
loadtxt
(
'
outpref_{}.txt
'
.
format
(
i
))
==
exp
[
i
+
1
]).
all
()
def
test_chained_fileOrImageAndArray
():
@wutils.fileOrImage
(
'
image
'
,
'
outimage
'
)
@wutils.fileOrArray
(
'
array
'
,
'
outarray
'
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment