@@ -54,6 +54,18 @@ def test_linear_valueerror():
54
54
nitl .Affine (np .ones ((4 , 4 )))
55
55
56
56
57
+ def test_linear_load_unsupported (data_path ):
58
+ """Exercise loading transform without I/O implementation."""
59
+ with pytest .raises (TypeError ):
60
+ nitl .load (data_path / "itktflist2.tfm" , fmt = "X5" )
61
+
62
+
63
+ def test_linear_load_mistaken (data_path ):
64
+ """Exercise loading transform without I/O implementation."""
65
+ with pytest .raises (io .TransformFileError ):
66
+ nitl .load (data_path / "itktflist2.tfm" , fmt = "afni" )
67
+
68
+
57
69
def test_loadsave_itk (tmp_path , data_path , testdata_path ):
58
70
"""Test idempotency."""
59
71
ref_file = testdata_path / "someones_anatomy.nii.gz"
@@ -73,9 +85,13 @@ def test_loadsave_itk(tmp_path, data_path, testdata_path):
73
85
)
74
86
75
87
88
+ @pytest .mark .parametrize ("autofmt" , (False , True ))
76
89
@pytest .mark .parametrize ("fmt" , ["itk" , "fsl" , "afni" , "lta" ])
77
- def test_loadsave (tmp_path , data_path , testdata_path , fmt ):
90
+ def test_loadsave (tmp_path , data_path , testdata_path , autofmt , fmt ):
78
91
"""Test idempotency."""
92
+ supplied_fmt = None if autofmt else fmt
93
+
94
+ # Load reference transform
79
95
ref_file = testdata_path / "someones_anatomy.nii.gz"
80
96
xfm = nitl .load (data_path / "itktflist2.tfm" , fmt = "itk" )
81
97
xfm .reference = ref_file
@@ -85,33 +101,33 @@ def test_loadsave(tmp_path, data_path, testdata_path, fmt):
85
101
86
102
if fmt == "fsl" :
87
103
# FSL should not read a transform without reference
88
- with pytest .raises (ValueError ):
89
- nitl .load (fname , fmt = fmt )
90
- nitl .load (fname , fmt = fmt , moving = ref_file )
104
+ with pytest .raises (io . TransformIOError ):
105
+ nitl .load (fname , fmt = supplied_fmt )
106
+ nitl .load (fname , fmt = supplied_fmt , moving = ref_file )
91
107
92
108
with pytest .warns (UserWarning ):
93
109
assert np .allclose (
94
110
xfm .matrix ,
95
- nitl .load (fname , fmt = fmt , reference = ref_file ).matrix ,
111
+ nitl .load (fname , fmt = supplied_fmt , reference = ref_file ).matrix ,
96
112
)
97
113
98
114
assert np .allclose (
99
115
xfm .matrix ,
100
- nitl .load (fname , fmt = fmt , reference = ref_file , moving = ref_file ).matrix ,
116
+ nitl .load (fname , fmt = supplied_fmt , reference = ref_file , moving = ref_file ).matrix ,
101
117
)
102
118
else :
103
- assert xfm == nitl .load (fname , fmt = fmt , reference = ref_file )
119
+ assert xfm == nitl .load (fname , fmt = supplied_fmt , reference = ref_file )
104
120
105
121
xfm .to_filename (fname , fmt = fmt , moving = ref_file )
106
122
107
123
if fmt == "fsl" :
108
124
assert np .allclose (
109
125
xfm .matrix ,
110
- nitl .load (fname , fmt = fmt , reference = ref_file , moving = ref_file ).matrix ,
126
+ nitl .load (fname , fmt = supplied_fmt , reference = ref_file , moving = ref_file ).matrix ,
111
127
rtol = 1e-2 , # FSL incurs into large errors due to rounding
112
128
)
113
129
else :
114
- assert xfm == nitl .load (fname , fmt = fmt , reference = ref_file )
130
+ assert xfm == nitl .load (fname , fmt = supplied_fmt , reference = ref_file )
115
131
116
132
ref_file = testdata_path / "someones_anatomy.nii.gz"
117
133
xfm = nitl .load (data_path / "affine-LAS.itk.tfm" , fmt = "itk" )
@@ -121,21 +137,21 @@ def test_loadsave(tmp_path, data_path, testdata_path, fmt):
121
137
if fmt == "fsl" :
122
138
assert np .allclose (
123
139
xfm .matrix ,
124
- nitl .load (fname , fmt = fmt , reference = ref_file , moving = ref_file ).matrix ,
140
+ nitl .load (fname , fmt = supplied_fmt , reference = ref_file , moving = ref_file ).matrix ,
125
141
rtol = 1e-2 , # FSL incurs into large errors due to rounding
126
142
)
127
143
else :
128
- assert xfm == nitl .load (fname , fmt = fmt , reference = ref_file )
144
+ assert xfm == nitl .load (fname , fmt = supplied_fmt , reference = ref_file )
129
145
130
146
xfm .to_filename (fname , fmt = fmt , moving = ref_file )
131
147
if fmt == "fsl" :
132
148
assert np .allclose (
133
149
xfm .matrix ,
134
- nitl .load (fname , fmt = fmt , reference = ref_file , moving = ref_file ).matrix ,
150
+ nitl .load (fname , fmt = supplied_fmt , reference = ref_file , moving = ref_file ).matrix ,
135
151
rtol = 1e-2 , # FSL incurs into large errors due to rounding
136
152
)
137
153
else :
138
- assert xfm == nitl .load (fname , fmt = fmt , reference = ref_file )
154
+ assert xfm == nitl .load (fname , fmt = supplied_fmt , reference = ref_file )
139
155
140
156
141
157
@pytest .mark .parametrize ("image_orientation" , ["RAS" , "LAS" , "LPS" , "oblique" ])
0 commit comments