Skip to content

Commit e7412d5

Browse files
committed
Broaden NibabelReader layout regression coverage
Exercise both .nii and .nii.gz inputs in the tiny layout regression test so the reader path stays covered without adding a benchmark or a heavier fixture. Signed-off-by: Soumya Snigdha Kundu <soumya_snigdha.kundu@kcl.ac.uk>
1 parent 5678af4 commit e7412d5

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

tests/data/test_init_reader.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -86,16 +86,19 @@ def test_nibabel_reader_avoids_eager_c_order_copy(self):
8686

8787
test_image = np.arange(2 * 3 * 4, dtype=np.int16).reshape(2, 3, 4)
8888
with tempfile.TemporaryDirectory() as tempdir:
89-
filename = os.path.join(tempdir, "test_image.nii.gz")
90-
nib.save(nib.Nifti1Image(test_image, np.eye(4)), filename)
91-
92-
reader = NibabelReader(mmap=False)
93-
img = reader.read(filename)
94-
data, _ = reader.get_data(img)
95-
96-
np.testing.assert_array_equal(data, test_image)
97-
self.assertTrue(data.flags.f_contiguous)
98-
self.assertFalse(data.flags.c_contiguous)
89+
for suffix in (".nii", ".nii.gz"):
90+
with self.subTest(suffix=suffix):
91+
filename = os.path.join(tempdir, f"test_image{suffix}")
92+
nib.save(nib.Nifti1Image(test_image, np.eye(4)), filename)
93+
94+
reader = NibabelReader(mmap=False)
95+
img = reader.read(filename)
96+
data, _ = reader.get_data(img)
97+
98+
np.testing.assert_array_equal(data, test_image)
99+
# The reader must not force an eager C-order copy; the native
100+
# (F-order) layout from nibabel should be preserved here.
101+
self.assertFalse(data.flags.c_contiguous)
99102

100103

101104
if __name__ == "__main__":

0 commit comments

Comments
 (0)