Skip to content

Commit f1b4ab0

Browse files
committed
TEST: Add units specification to tests
1 parent ab2e801 commit f1b4ab0

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
@@ -401,7 +401,7 @@ def from_header(klass, header=None, check=True):
401401
klass))
402402
obj.set_data_dtype(header.get_data_dtype())
403403
obj.set_data_shape(header.get_data_shape())
404-
obj.set_zooms(header.get_zooms())
404+
obj.set_zooms(header.get_zooms(units='raw'))
405405
if check:
406406
obj.check_fix()
407407
return obj

nibabel/nifti1.py

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

nibabel/tests/test_analyze.py

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,8 @@ def test_general_init(self):
8888
assert_array_equal(np.diag(hdr.get_base_affine()),
8989
[-1, 1, 1, 1])
9090
# But zooms only go with number of dimensions
91-
assert hdr.get_zooms() == (1.0,)
91+
assert hdr.get_zooms(units='raw') == (1.0,)
92+
assert hdr.get_zooms(units='canonical') == (1.0,)
9293

9394
def test_header_size(self):
9495
assert self.header_class.template_dtype.itemsize == self.sizeof_hdr
@@ -428,7 +429,8 @@ def test_data_shape_zooms_affine(self):
428429
else:
429430
assert hdr.get_data_shape() == (0,)
430431
# Default zoom - for 3D - is 1(())
431-
assert hdr.get_zooms() == (1,) * L
432+
assert hdr.get_zooms(units='raw') == (1,) * L
433+
assert hdr.get_zooms(units='canonical') == (1,) * L
432434
# errors if zooms do not match shape
433435
if len(shape):
434436
with pytest.raises(HeaderDataError):
@@ -446,11 +448,14 @@ def test_data_shape_zooms_affine(self):
446448
hdr = self.header_class()
447449
hdr.set_data_shape((1, 2, 3))
448450
hdr.set_zooms((4, 5, 6))
449-
assert_array_equal(hdr.get_zooms(), (4, 5, 6))
451+
assert_array_equal(hdr.get_zooms(units='raw'), (4, 5, 6))
452+
assert_array_equal(hdr.get_zooms(units='canonical'), (4, 5, 6))
450453
hdr.set_data_shape((1, 2))
451-
assert_array_equal(hdr.get_zooms(), (4, 5))
454+
assert_array_equal(hdr.get_zooms(units='raw'), (4, 5))
455+
assert_array_equal(hdr.get_zooms(units='canonical'), (4, 5))
452456
hdr.set_data_shape((1, 2, 3))
453-
assert_array_equal(hdr.get_zooms(), (4, 5, 1))
457+
assert_array_equal(hdr.get_zooms(units='raw'), (4, 5, 1))
458+
assert_array_equal(hdr.get_zooms(units='canonical'), (4, 5, 1))
454459
# Setting zooms changes affine
455460
assert_array_equal(np.diag(hdr.get_base_affine()),
456461
[-4, 5, 1, 1])
@@ -520,12 +525,13 @@ def get_data_dtype(self): return np.dtype('i2')
520525

521526
def get_data_shape(self): return (5, 4, 3)
522527

523-
def get_zooms(self): return (10.0, 9.0, 8.0)
528+
def get_zooms(self, units=None, raise_unknown=None): return (10.0, 9.0, 8.0)
524529
converted = klass.from_header(C())
525530
assert isinstance(converted, klass)
526531
assert converted.get_data_dtype() == np.dtype('i2')
527532
assert converted.get_data_shape() == (5, 4, 3)
528-
assert converted.get_zooms() == (10.0, 9.0, 8.0)
533+
assert converted.get_zooms(units='raw') == (10.0, 9.0, 8.0)
534+
assert converted.get_zooms(units='canonical') == (10.0, 9.0, 8.0)
529535

530536
def test_base_affine(self):
531537
klass = self.header_class
@@ -631,7 +637,7 @@ def get_data_shape(self):
631637

632638
class H4(H3):
633639

634-
def get_zooms(self):
640+
def get_zooms(self, units=None, raise_unknown=None):
635641
return 4., 5., 6.
636642
exp_hdr = klass()
637643
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
@@ -861,11 +861,11 @@ def test_set_qform(self):
861861
img.set_qform(new_affine, 1, update_affine=False)
862862
assert_array_almost_equal(img.affine, aff_affine)
863863
# Clear qform using None, zooms unchanged
864-
assert_array_almost_equal(hdr.get_zooms(), [1.1, 1.1, 1.1])
864+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [1.1, 1.1, 1.1])
865865
img.set_qform(None)
866866
qaff, code = img.get_qform(coded=True)
867867
assert (qaff, code) == (None, 0)
868-
assert_array_almost_equal(hdr.get_zooms(), [1.1, 1.1, 1.1])
868+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [1.1, 1.1, 1.1])
869869
# Best affine similarly
870870
assert_array_almost_equal(img.affine, hdr.get_best_affine())
871871
# If sform is not set, qform should update affine
@@ -922,9 +922,9 @@ def test_set_sform(self):
922922
assert_array_almost_equal(img.affine, aff_affine)
923923
# zooms do not get updated when qform is 0
924924
assert_array_almost_equal(img.get_qform(), orig_aff)
925-
assert_array_almost_equal(hdr.get_zooms(), [2.2, 3.3, 4.3])
925+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [2.2, 3.3, 4.3])
926926
img.set_qform(None)
927-
assert_array_almost_equal(hdr.get_zooms(), [2.2, 3.3, 4.3])
927+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [2.2, 3.3, 4.3])
928928
# Set sform using new_affine when qform is set
929929
img.set_qform(qform_affine, 1)
930930
img.set_sform(new_affine, 1)
@@ -933,7 +933,7 @@ def test_set_sform(self):
933933
assert_array_almost_equal(saff, new_affine)
934934
assert_array_almost_equal(img.affine, new_affine)
935935
# zooms follow qform
936-
assert_array_almost_equal(hdr.get_zooms(), [1.2, 1.2, 1.2])
936+
assert_array_almost_equal(hdr.get_zooms(units='raw'), [1.2, 1.2, 1.2])
937937
# Clear sform using None, best_affine should fall back on qform
938938
img.set_sform(None)
939939
assert hdr['sform_code'] == 0
@@ -1022,15 +1022,15 @@ def test_load_pixdims(self):
10221022
# Check qform, sform, pixdims are the same
10231023
assert_array_equal(img_hdr.get_qform(), qaff)
10241024
assert_array_equal(img_hdr.get_sform(), saff)
1025-
assert_array_equal(img_hdr.get_zooms(), [2, 3, 4])
1025+
assert_array_equal(img_hdr.get_zooms(units='raw'), [2, 3, 4])
10261026
# Save to stringio
10271027
re_simg = bytesio_round_trip(simg)
10281028
assert_array_equal(re_simg.get_fdata(), arr)
10291029
# Check qform, sform, pixdims are the same
10301030
rimg_hdr = re_simg.header
10311031
assert_array_equal(rimg_hdr.get_qform(), qaff)
10321032
assert_array_equal(rimg_hdr.get_sform(), saff)
1033-
assert_array_equal(rimg_hdr.get_zooms(), [2, 3, 4])
1033+
assert_array_equal(rimg_hdr.get_zooms(units='raw'), [2, 3, 4])
10341034

10351035
def test_affines_init(self):
10361036
# Test we are doing vaguely spec-related qform things. The 'spec' here
@@ -1044,20 +1044,20 @@ def test_affines_init(self):
10441044
hdr = img.header
10451045
assert hdr['qform_code'] == 0
10461046
assert hdr['sform_code'] == 2
1047-
assert_array_equal(hdr.get_zooms(), [2, 3, 4])
1047+
assert_array_equal(hdr.get_zooms(units='raw'), [2, 3, 4])
10481048
# This is also true for affines with header passed
10491049
qaff = np.diag([3, 4, 5, 1])
10501050
saff = np.diag([6, 7, 8, 1])
10511051
hdr.set_qform(qaff, code='scanner')
10521052
hdr.set_sform(saff, code='talairach')
1053-
assert_array_equal(hdr.get_zooms(), [3, 4, 5])
1053+
assert_array_equal(hdr.get_zooms(units='raw'), [3, 4, 5])
10541054
img = IC(arr, aff, hdr)
10551055
new_hdr = img.header
10561056
# Again affine is sort of anonymous space
10571057
assert new_hdr['qform_code'] == 0
10581058
assert new_hdr['sform_code'] == 2
10591059
assert_array_equal(new_hdr.get_sform(), aff)
1060-
assert_array_equal(new_hdr.get_zooms(), [2, 3, 4])
1060+
assert_array_equal(new_hdr.get_zooms(units='raw'), [2, 3, 4])
10611061
# But if no affine passed, codes and matrices stay the same
10621062
img = IC(arr, None, hdr)
10631063
new_hdr = img.header
@@ -1066,7 +1066,7 @@ def test_affines_init(self):
10661066
assert new_hdr['sform_code'] == 3 # Still talairach
10671067
assert_array_equal(new_hdr.get_sform(), saff)
10681068
# Pixdims as in the original header
1069-
assert_array_equal(new_hdr.get_zooms(), [3, 4, 5])
1069+
assert_array_equal(new_hdr.get_zooms(units='raw'), [3, 4, 5])
10701070

10711071
def test_read_no_extensions(self):
10721072
IC = self.image_class

0 commit comments

Comments
 (0)