7
7
8
8
from nibabel import cifti2 as ci
9
9
from nibabel .nifti2 import Nifti2Header
10
- from nibabel .cifti2 .cifti2 import _float_01
10
+ from nibabel .cifti2 .cifti2 import _float_01 , _value_if_klass , Cifti2HeaderError
11
11
12
12
from nose .tools import assert_true , assert_equal , assert_raises , assert_is_none
13
13
@@ -26,6 +26,12 @@ def compare_xml_leaf(str1, str2):
26
26
return test
27
27
28
28
29
+ def test_value_if_klass ():
30
+ assert_equal (_value_if_klass (None , list ), None )
31
+ assert_equal (_value_if_klass ([1 ], list ), [1 ])
32
+ assert_raises (ValueError , _value_if_klass , 1 , list )
33
+
34
+
29
35
def test_cifti2_metadata ():
30
36
md = ci .Cifti2MetaData (metadata = {'a' : 'aval' })
31
37
assert_equal (len (md ), 1 )
@@ -83,6 +89,7 @@ def test_cifti2_labeltable():
83
89
lt = ci .Cifti2LabelTable ()
84
90
assert_equal (len (lt ), 0 )
85
91
assert_raises (ci .Cifti2HeaderError , lt .to_xml )
92
+ assert_raises (ci .Cifti2HeaderError , lt ._to_xml_element )
86
93
87
94
label = ci .Cifti2Label (label = 'Test' , key = 0 )
88
95
lt [0 ] = label
@@ -146,6 +153,17 @@ def test_cifti2_parcel():
146
153
assert_raises (ci .Cifti2HeaderError , pl .to_xml )
147
154
assert_raises (TypeError , pl .append_cifti_vertices , None )
148
155
156
+ assert_raises (ValueError , ci .Cifti2Parcel , ** {'vertices' : [1 , 2 , 3 ]})
157
+ pl = ci .Cifti2Parcel (name = 'region' ,
158
+ voxel_indices_ijk = ci .Cifti2VoxelIndicesIJK ([[1 , 2 , 3 ]]),
159
+ vertices = [ci .Cifti2Vertices ([0 , 1 , 2 ])])
160
+ pl .pop_cifti2_vertices (0 )
161
+ assert_equal (len (pl .vertices ), 0 )
162
+ assert_equal (
163
+ pl .to_xml ().decode ('utf-8' ),
164
+ '<Parcel Name="region"><VoxelIndicesIJK>1 2 3</VoxelIndicesIJK></Parcel>'
165
+ )
166
+
149
167
150
168
def test_cifti2_vertices ():
151
169
vs = ci .Cifti2Vertices ()
@@ -158,7 +176,8 @@ def test_cifti2_vertices():
158
176
assert_equal (len (vs ), 0 )
159
177
vs .extend (np .array ([0 , 1 , 2 ]))
160
178
assert_equal (len (vs ), 3 )
161
-
179
+ assert_raises (ValueError , vs .__setitem__ , 1 , 'a' )
180
+ assert_raises (ValueError , vs .insert , 1 , 'a' )
162
181
assert_equal (
163
182
vs .to_xml ().decode ('utf-8' ),
164
183
'<Vertices BrainStructure="CIFTI_STRUCTURE_OTHER">0 1 2</Vertices>'
@@ -167,6 +186,8 @@ def test_cifti2_vertices():
167
186
vs [0 ] = 10
168
187
assert_equal (vs [0 ], 10 )
169
188
assert_equal (len (vs ), 3 )
189
+ vs = ci .Cifti2Vertices (vertices = [0 , 1 , 2 ])
190
+ assert_equal (len (vs ), 3 )
170
191
171
192
172
193
def test_cifti2_transformationmatrixvoxelindicesijktoxyz ():
@@ -220,6 +241,8 @@ def test_cifti2_voxelindicesijk():
220
241
assert_equal (vi [1 ], [3 , 4 , 5 ])
221
242
vi [1 ] = [3 , 4 , 6 ]
222
243
assert_equal (vi [1 ], [3 , 4 , 6 ])
244
+ assert_raises (ValueError , vi .__setitem__ , 'a' , [1 , 2 , 3 ])
245
+ assert_raises (TypeError , vi .__setitem__ , [1 , 2 ], [1 , 2 , 3 ])
223
246
assert_raises (ValueError , vi .__setitem__ , 1 , [2 , 3 ])
224
247
assert_equal (vi [1 , 1 ], 4 )
225
248
assert_raises (ValueError , vi .__setitem__ , [1 , 1 ], 'a' )
@@ -239,6 +262,9 @@ def test_cifti2_voxelindicesijk():
239
262
vi .to_xml ().decode ('utf-8' ),
240
263
'<VoxelIndicesIJK>0 1 2\n 3 4 6</VoxelIndicesIJK>'
241
264
)
265
+ assert_raises (TypeError , ci .Cifti2VoxelIndicesIJK , [0 , 1 ])
266
+ vi = ci .Cifti2VoxelIndicesIJK ([[1 , 2 , 3 ]])
267
+ assert_equal (len (vi ), 1 )
242
268
243
269
244
270
def test_matrixindicesmap ():
0 commit comments