Skip to content

Commit 1cdf7a9

Browse files
committed
TEST: Add units specification to tests
1 parent 039382f commit 1cdf7a9

File tree

4 files changed

+27
-21
lines changed

4 files changed

+27
-21
lines changed

nibabel/analyze.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -402,7 +402,7 @@ def from_header(klass, header=None, check=True):
402402
klass))
403403
obj.set_data_dtype(header.get_data_dtype())
404404
obj.set_data_shape(header.get_data_shape())
405-
obj.set_zooms(header.get_zooms())
405+
obj.set_zooms(header.get_zooms(units='raw'))
406406
if check:
407407
obj.check_fix()
408408
return obj

nibabel/nifti1.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -785,7 +785,7 @@ def get_data_shape(self):
785785
786786
Expanding number of dimensions gets default zooms
787787
788-
>>> hdr.get_zooms()
788+
>>> hdr.get_zooms(units='canonical')
789789
(1.0, 1.0, 1.0)
790790
791791
Notes

nibabel/tests/test_analyze.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ def test_general_init(self):
9393
assert_array_equal(np.diag(hdr.get_base_affine()),
9494
[-1, 1, 1, 1])
9595
# But zooms only go with number of dimensions
96-
assert_equal(hdr.get_zooms(), (1.0,))
96+
assert_equal(hdr.get_zooms(units='raw'), (1.0,))
97+
assert_equal(hdr.get_zooms(units='canonical'), (1.0,))
9798

9899
def test_header_size(self):
99100
assert_equal(self.header_class.template_dtype.itemsize, self.sizeof_hdr)
@@ -440,7 +441,8 @@ def test_data_shape_zooms_affine(self):
440441
else:
441442
assert_equal(hdr.get_data_shape(), (0,))
442443
# Default zoom - for 3D - is 1(())
443-
assert_equal(hdr.get_zooms(), (1,) * L)
444+
assert_equal(hdr.get_zooms(units='raw'), (1,) * L)
445+
assert_equal(hdr.get_zooms(units='canonical'), (1,) * L)
444446
# errors if zooms do not match shape
445447
if len(shape):
446448
assert_raises(HeaderDataError,
@@ -462,11 +464,14 @@ def test_data_shape_zooms_affine(self):
462464
hdr = self.header_class()
463465
hdr.set_data_shape((1, 2, 3))
464466
hdr.set_zooms((4, 5, 6))
465-
assert_array_equal(hdr.get_zooms(), (4, 5, 6))
467+
assert_array_equal(hdr.get_zooms(units='raw'), (4, 5, 6))
468+
assert_array_equal(hdr.get_zooms(units='canonical'), (4, 5, 6))
466469
hdr.set_data_shape((1, 2))
467-
assert_array_equal(hdr.get_zooms(), (4, 5))
470+
assert_array_equal(hdr.get_zooms(units='raw'), (4, 5))
471+
assert_array_equal(hdr.get_zooms(units='canonical'), (4, 5))
468472
hdr.set_data_shape((1, 2, 3))
469-
assert_array_equal(hdr.get_zooms(), (4, 5, 1))
473+
assert_array_equal(hdr.get_zooms(units='raw'), (4, 5, 1))
474+
assert_array_equal(hdr.get_zooms(units='canonical'), (4, 5, 1))
470475
# Setting zooms changes affine
471476
assert_array_equal(np.diag(hdr.get_base_affine()),
472477
[-4, 5, 1, 1])
@@ -536,12 +541,13 @@ def get_data_dtype(self): return np.dtype('i2')
536541

537542
def get_data_shape(self): return (5, 4, 3)
538543

539-
def get_zooms(self): return (10.0, 9.0, 8.0)
544+
def get_zooms(self, units=None, raise_unknown=None): return (10.0, 9.0, 8.0)
540545
converted = klass.from_header(C())
541546
assert_true(isinstance(converted, klass))
542547
assert_equal(converted.get_data_dtype(), np.dtype('i2'))
543548
assert_equal(converted.get_data_shape(), (5, 4, 3))
544-
assert_equal(converted.get_zooms(), (10.0, 9.0, 8.0))
549+
assert_equal(converted.get_zooms(units='raw'), (10.0, 9.0, 8.0))
550+
assert_equal(converted.get_zooms(units='canonical'), (10.0, 9.0, 8.0))
545551

546552
def test_base_affine(self):
547553
klass = self.header_class
@@ -641,7 +647,7 @@ def get_data_shape(self):
641647

642648
class H4(H3):
643649

644-
def get_zooms(self):
650+
def get_zooms(self, units=None, raise_unknown=None):
645651
return 4., 5., 6.
646652
exp_hdr = klass()
647653
exp_hdr.set_data_dtype(np.dtype('u1'))

nibabel/tests/test_nifti1.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -852,11 +852,11 @@ def test_set_qform(self):
852852
img.set_qform(new_affine, 1, update_affine=False)
853853
assert_array_almost_equal(img.affine, aff_affine)
854854
# Clear qform using None, zooms unchanged
855-
assert_array_almost_equal(hdr.get_zooms(), [1.1, 1.1, 1.1])
855+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [1.1, 1.1, 1.1])
856856
img.set_qform(None)
857857
qaff, code = img.get_qform(coded=True)
858858
assert_equal((qaff, code), (None, 0))
859-
assert_array_almost_equal(hdr.get_zooms(), [1.1, 1.1, 1.1])
859+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [1.1, 1.1, 1.1])
860860
# Best affine similarly
861861
assert_array_almost_equal(img.affine, hdr.get_best_affine())
862862
# If sform is not set, qform should update affine
@@ -911,9 +911,9 @@ def test_set_sform(self):
911911
assert_array_almost_equal(img.affine, aff_affine)
912912
# zooms do not get updated when qform is 0
913913
assert_array_almost_equal(img.get_qform(), orig_aff)
914-
assert_array_almost_equal(hdr.get_zooms(), [2.2, 3.3, 4.3])
914+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [2.2, 3.3, 4.3])
915915
img.set_qform(None)
916-
assert_array_almost_equal(hdr.get_zooms(), [2.2, 3.3, 4.3])
916+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [2.2, 3.3, 4.3])
917917
# Set sform using new_affine when qform is set
918918
img.set_qform(qform_affine, 1)
919919
img.set_sform(new_affine, 1)
@@ -922,7 +922,7 @@ def test_set_sform(self):
922922
assert_array_almost_equal(saff, new_affine)
923923
assert_array_almost_equal(img.affine, new_affine)
924924
# zooms follow qform
925-
assert_array_almost_equal(hdr.get_zooms(), [1.2, 1.2, 1.2])
925+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [1.2, 1.2, 1.2])
926926
# Clear sform using None, best_affine should fall back on qform
927927
img.set_sform(None)
928928
assert_equal(hdr['sform_code'], 0)
@@ -1010,15 +1010,15 @@ def test_load_pixdims(self):
10101010
# Check qform, sform, pixdims are the same
10111011
assert_array_equal(img_hdr.get_qform(), qaff)
10121012
assert_array_equal(img_hdr.get_sform(), saff)
1013-
assert_array_equal(img_hdr.get_zooms(), [2, 3, 4])
1013+
assert_array_equal(img_hdr.get_zooms(units='raw'), [2, 3, 4])
10141014
# Save to stringio
10151015
re_simg = bytesio_round_trip(simg)
10161016
assert_array_equal(re_simg.get_data(), arr)
10171017
# Check qform, sform, pixdims are the same
10181018
rimg_hdr = re_simg.header
10191019
assert_array_equal(rimg_hdr.get_qform(), qaff)
10201020
assert_array_equal(rimg_hdr.get_sform(), saff)
1021-
assert_array_equal(rimg_hdr.get_zooms(), [2, 3, 4])
1021+
assert_array_equal(rimg_hdr.get_zooms(units='raw'), [2, 3, 4])
10221022

10231023
def test_affines_init(self):
10241024
# Test we are doing vaguely spec-related qform things. The 'spec' here
@@ -1032,20 +1032,20 @@ def test_affines_init(self):
10321032
hdr = img.header
10331033
assert_equal(hdr['qform_code'], 0)
10341034
assert_equal(hdr['sform_code'], 2)
1035-
assert_array_equal(hdr.get_zooms(), [2, 3, 4])
1035+
assert_array_equal(hdr.get_zooms(units='raw'), [2, 3, 4])
10361036
# This is also true for affines with header passed
10371037
qaff = np.diag([3, 4, 5, 1])
10381038
saff = np.diag([6, 7, 8, 1])
10391039
hdr.set_qform(qaff, code='scanner')
10401040
hdr.set_sform(saff, code='talairach')
1041-
assert_array_equal(hdr.get_zooms(), [3, 4, 5])
1041+
assert_array_equal(hdr.get_zooms(units='raw'), [3, 4, 5])
10421042
img = IC(arr, aff, hdr)
10431043
new_hdr = img.header
10441044
# Again affine is sort of anonymous space
10451045
assert_equal(new_hdr['qform_code'], 0)
10461046
assert_equal(new_hdr['sform_code'], 2)
10471047
assert_array_equal(new_hdr.get_sform(), aff)
1048-
assert_array_equal(new_hdr.get_zooms(), [2, 3, 4])
1048+
assert_array_equal(new_hdr.get_zooms(units='raw'), [2, 3, 4])
10491049
# But if no affine passed, codes and matrices stay the same
10501050
img = IC(arr, None, hdr)
10511051
new_hdr = img.header
@@ -1054,7 +1054,7 @@ def test_affines_init(self):
10541054
assert_equal(new_hdr['sform_code'], 3) # Still talairach
10551055
assert_array_equal(new_hdr.get_sform(), saff)
10561056
# Pixdims as in the original header
1057-
assert_array_equal(new_hdr.get_zooms(), [3, 4, 5])
1057+
assert_array_equal(new_hdr.get_zooms(units='raw'), [3, 4, 5])
10581058

10591059
def test_read_no_extensions(self):
10601060
IC = self.image_class

0 commit comments

Comments
 (0)