@@ -260,3 +260,62 @@ def test_filename_save():
260260 del rt_img
261261 finally :
262262 shutil .rmtree (pth )
263+
264+
265+ def test_analyze_detection ():
266+ # Test detection of Analyze, Nifti1 and Nifti2
267+ # Algorithm is as described in loadsave:which_analyze_type
268+ def wat (hdr ):
269+ return nils .which_analyze_type (hdr .binaryblock )
270+ n1_hdr = Nifti1Header (b'\0 ' * 348 , check = False )
271+ assert_equal (wat (n1_hdr ), None )
272+ n1_hdr ['sizeof_hdr' ] = 540
273+ assert_equal (wat (n1_hdr ), 'nifti2' )
274+ assert_equal (wat (n1_hdr .as_byteswapped ()), 'nifti2' )
275+ n1_hdr ['sizeof_hdr' ] = 348
276+ assert_equal (wat (n1_hdr ), 'analyze' )
277+ assert_equal (wat (n1_hdr .as_byteswapped ()), 'analyze' )
278+ n1_hdr ['magic' ] = b'n+1'
279+ assert_equal (wat (n1_hdr ), 'nifti1' )
280+ assert_equal (wat (n1_hdr .as_byteswapped ()), 'nifti1' )
281+ n1_hdr ['magic' ] = b'ni1'
282+ assert_equal (wat (n1_hdr ), 'nifti1' )
283+ assert_equal (wat (n1_hdr .as_byteswapped ()), 'nifti1' )
284+ # Doesn't matter what magic is if it's not a nifti1 magic
285+ n1_hdr ['magic' ] = b'ni2'
286+ assert_equal (wat (n1_hdr ), 'analyze' )
287+ n1_hdr ['sizeof_hdr' ] = 0
288+ n1_hdr ['magic' ] = b''
289+ assert_equal (wat (n1_hdr ), None )
290+ n1_hdr ['magic' ] = 'n+1'
291+ assert_equal (wat (n1_hdr ), 'nifti1' )
292+ n1_hdr ['magic' ] = 'ni1'
293+ assert_equal (wat (n1_hdr ), 'nifti1' )
294+
295+
296+ def test_guessed_image_type ():
297+ # Test whether we can guess the image type from example files
298+ assert_equal (nils .guessed_image_type (
299+ pjoin (DATA_PATH , 'example4d.nii.gz' )),
300+ Nifti1Image )
301+ assert_equal (nils .guessed_image_type (
302+ pjoin (DATA_PATH , 'nifti1.hdr' )),
303+ Nifti1Pair )
304+ assert_equal (nils .guessed_image_type (
305+ pjoin (DATA_PATH , 'example_nifti2.nii.gz' )),
306+ Nifti2Image )
307+ assert_equal (nils .guessed_image_type (
308+ pjoin (DATA_PATH , 'nifti2.hdr' )),
309+ Nifti2Pair )
310+ assert_equal (nils .guessed_image_type (
311+ pjoin (DATA_PATH , 'tiny.mnc' )),
312+ Minc1Image )
313+ assert_equal (nils .guessed_image_type (
314+ pjoin (DATA_PATH , 'small.mnc' )),
315+ Minc2Image )
316+ assert_equal (nils .guessed_image_type (
317+ pjoin (DATA_PATH , 'test.mgz' )),
318+ MGHImage )
319+ assert_equal (nils .guessed_image_type (
320+ pjoin (DATA_PATH , 'analyze.hdr' )),
321+ Spm2AnalyzeImage )
0 commit comments