|
4 | 4 | from os.path import join as pjoin, dirname, basename
|
5 | 5 | from glob import glob
|
6 | 6 | from warnings import simplefilter
|
7 |
| -import shutil |
8 | 7 |
|
9 | 8 | import numpy as np
|
10 | 9 | from numpy import array as npa
|
11 | 10 |
|
12 | 11 | from .. import load as top_load
|
| 12 | +from ..nifti1 import Nifti1Image, Nifti1Extension |
13 | 13 | from .. import parrec
|
14 | 14 | from ..parrec import (parse_PAR_header, PARRECHeader, PARRECError, vol_numbers,
|
15 |
| - vol_is_full, PARRECImage, PARRECArrayProxy) |
| 15 | + vol_is_full, PARRECImage, PARRECArrayProxy, exts2pars) |
16 | 16 | from ..openers import Opener
|
17 | 17 | from ..fileholders import FileHolder
|
18 | 18 | from ..volumeutils import array_from_file
|
|
21 | 21 | assert_array_equal)
|
22 | 22 |
|
23 | 23 | from nose.tools import (assert_true, assert_false, assert_raises,
|
24 |
| - assert_equal, assert_not_equal) |
| 24 | + assert_equal) |
25 | 25 |
|
26 | 26 | from ..testing import catch_warn_reset, suppress_warnings
|
27 | 27 |
|
@@ -600,3 +600,37 @@ def test_anonymized():
|
600 | 600 | assert_almost_equal(img_defs['window center'][-1], 236.385836385836, 6)
|
601 | 601 | assert_almost_equal(img_defs['window width'][0], 767.277167277167, 6)
|
602 | 602 | assert_almost_equal(img_defs['window width'][-1], 236.385836385836, 6)
|
| 603 | + |
| 604 | + |
| 605 | +def test_exts2par(): |
| 606 | + # Test we can load PAR headers from NIfTI extensions |
| 607 | + par_img = PARRECImage.from_filename(EG_PAR) |
| 608 | + nii_img = Nifti1Image.from_image(par_img) |
| 609 | + assert_equal(exts2pars(nii_img), []) |
| 610 | + assert_equal(exts2pars(nii_img.header), []) |
| 611 | + assert_equal(exts2pars(nii_img.header.extensions), []) |
| 612 | + assert_equal(exts2pars([]), []) |
| 613 | + # Add a header extension |
| 614 | + with open(EG_PAR, 'rb') as fobj: |
| 615 | + hdr_dump = fobj.read() |
| 616 | + dump_ext = Nifti1Extension('comment', hdr_dump) |
| 617 | + nii_img.header.extensions.append(dump_ext) |
| 618 | + hdrs = exts2pars(nii_img) |
| 619 | + assert_equal(len(hdrs), 1) |
| 620 | + # Test attribute from PARRECHeader |
| 621 | + assert_equal(hdrs[0].get_slice_orientation(), 'transverse') |
| 622 | + # Add another PAR extension |
| 623 | + nii_img.header.extensions.append(Nifti1Extension('comment', hdr_dump)) |
| 624 | + hdrs = exts2pars(nii_img) |
| 625 | + assert_equal(len(hdrs), 2) |
| 626 | + # Test attribute from PARRECHeader |
| 627 | + assert_equal(hdrs[1].get_slice_orientation(), 'transverse') |
| 628 | + # Add null extension, ignored |
| 629 | + nii_img.header.extensions.append(Nifti1Extension('comment', b'')) |
| 630 | + # Check all valid inputs |
| 631 | + for source in (nii_img, |
| 632 | + nii_img.header, |
| 633 | + nii_img.header.extensions, |
| 634 | + list(nii_img.header.extensions)): |
| 635 | + hdrs = exts2pars(source) |
| 636 | + assert_equal(len(hdrs), 2) |
0 commit comments