66import pytest
77import nipype .interfaces .fsl .model as fsl
88from nipype .interfaces .fsl import no_fsl
9+ from pathlib import Path
10+ from ....pipeline import engine as pe
911
1012
1113@pytest .mark .skipif (no_fsl (), reason = "fsl is not installed" )
1214def test_MultipleRegressDesign (tmpdir ):
13- tmpdir .chdir ()
14- foo = fsl .MultipleRegressDesign ()
15- foo .inputs .regressors = dict (
15+ designer = pe .Node (fsl .MultipleRegressDesign (), name = 'designer' , base_dir = str (tmpdir ))
16+ designer .inputs .regressors = dict (
1617 voice_stenght = [1 , 1 , 1 ], age = [0.2 , 0.4 , 0.5 ], BMI = [1 , - 1 , 2 ]
1718 )
1819 con1 = ["voice_and_age" , "T" , ["age" , "voice_stenght" ], [0.5 , 0.5 ]]
1920 con2 = ["just_BMI" , "T" , ["BMI" ], [1 ]]
20- foo .inputs .contrasts = [con1 , con2 , ["con3" , "F" , [con1 , con2 ]]]
21- res = foo .run ()
21+ designer .inputs .contrasts = [con1 , con2 , ["con3" , "F" , [con1 , con2 ]], ["con4" , "F" , [con2 ]]]
22+ res = designer .run ()
23+ outputs = res .outputs .get_traitsfree ()
2224
23- for ii in ["mat" , "con" , "fts" , "grp" ]:
24- assert (
25- getattr (res .outputs , "design_" + ii ) == tmpdir .join ("design." + ii ).strpath
26- )
25+ for ftype in ["mat" , "con" , "fts" , "grp" ]:
26+ assert Path (outputs ["design_" + ftype ]).exists ()
2727
28- design_mat_expected_content = """/NumWaves 3
28+ expected_content = {}
29+
30+ expected_content ["design_mat" ] = """/NumWaves 3
2931/NumPoints 3
3032/PPheights 3.000000e+00 5.000000e-01 1.000000e+00
3133
@@ -35,7 +37,7 @@ def test_MultipleRegressDesign(tmpdir):
35372.000000e+00 5.000000e-01 1.000000e+00
3638"""
3739
38- design_con_expected_content = """/ContrastName1 voice_and_age
40+ expected_content [ "design_con" ] = """/ContrastName1 voice_and_age
3941/ContrastName2 just_BMI
4042/NumWaves 3
4143/NumContrasts 2
@@ -47,22 +49,22 @@ def test_MultipleRegressDesign(tmpdir):
47491.000000e+00 0.000000e+00 0.000000e+00
4850"""
4951
50- design_fts_expected_content = """/NumWaves 2
51- /NumContrasts 1
52+ expected_content [ "design_fts" ] = """/NumWaves 2
53+ /NumContrasts 2
5254
5355/Matrix
54561 1
57+ 0 1
5558"""
5659
57- design_grp_expected_content = """/NumWaves 1
60+ expected_content [ "design_grp" ] = """/NumWaves 1
5861/NumPoints 3
5962
6063/Matrix
61641
62651
63661
6467"""
65- for ii in ["mat" , "con" , "fts" , "grp" ]:
66- assert tmpdir .join ("design." + ii ).read () == eval (
67- "design_" + ii + "_expected_content"
68- )
68+ for ftype in ["mat" , "con" , "fts" , "grp" ]:
69+ outfile = "design_" + ftype
70+ assert Path (outputs [outfile ]).read_text () == expected_content [outfile ]
0 commit comments