diff --git a/nibabel/nifti1.py b/nibabel/nifti1.py index 548ad34658..5393b5a543 100644 --- a/nibabel/nifti1.py +++ b/nibabel/nifti1.py @@ -125,7 +125,9 @@ (1, 'scanner', "NIFTI_XFORM_SCANNER_ANAT"), (2, 'aligned', "NIFTI_XFORM_ALIGNED_ANAT"), (3, 'talairach', "NIFTI_XFORM_TALAIRACH"), - (4, 'mni', "NIFTI_XFORM_MNI_152")), fields=('code', 'label', 'niistring')) + (4, 'mni', "NIFTI_XFORM_MNI_152"), + (5, 'template', "NIFTI_XFORM_TEMPLATE_OTHER"), + ), fields=('code', 'label', 'niistring')) # unit codes unit_codes = Recoder(( # code, label diff --git a/nibabel/tests/test_nifti1.py b/nibabel/tests/test_nifti1.py index 78f876ec7d..3287634f82 100644 --- a/nibabel/tests/test_nifti1.py +++ b/nibabel/tests/test_nifti1.py @@ -226,6 +226,21 @@ def test_nifti_qsform_checks(self): assert_equal(message, 'sform_code -1 not valid; setting to 0') + def test_nifti_xform_codes(self): + # Verify that all xform codes can be set in both qform and sform + hdr = self.header_class() + affine = np.eye(4) + for code in nifti1.xform_codes.keys(): + hdr.set_qform(affine, code) + assert_equal(hdr['qform_code'], nifti1.xform_codes[code]) + hdr.set_sform(affine, code) + assert_equal(hdr['sform_code'], nifti1.xform_codes[code]) + + # Raise KeyError on unknown code + for bad_code in (-1, 6, 10): + assert_raises(KeyError, hdr.set_qform, affine, bad_code) + assert_raises(KeyError, hdr.set_sform, affine, bad_code) + def test_magic_offset_checks(self): # magic and offset HC = self.header_class