Skip to content

Commit 34c651f

Browse files
committed
Add failing test for serialized resampling
1 parent eff0b71 commit 34c651f

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

nitransforms/tests/test_resampling.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -363,3 +363,25 @@ def test_LinearTransformsMapping_apply(
363363
reference=testdata_path / "sbref.nii.gz",
364364
serialize_nvols=2 if serialize_4d else np.inf,
365365
)
366+
367+
368+
def test_apply_serialized_4d_multiple_targets():
369+
"""Regression test for per-volume transforms with serialized resampling."""
370+
nvols = 9
371+
shape = (10, 5, 5)
372+
base = np.zeros(shape, dtype=np.float32)
373+
base[9, 2, 2] = 1
374+
img = nb.Nifti1Image(np.stack([base] * nvols, axis=-1), np.eye(4))
375+
376+
transforms = []
377+
for i in range(nvols):
378+
mat = np.eye(4)
379+
mat[0, 3] = i
380+
transforms.append(nitl.Affine(mat))
381+
382+
xfm = nitl.LinearTransformsMapping(transforms, reference=img)
383+
moved = apply(xfm, img, order=0)
384+
385+
data = np.asanyarray(moved.dataobj)
386+
idxs = [tuple(np.argwhere(data[..., i])[0]) for i in range(nvols)]
387+
assert idxs == [(9 - i, 2, 2) for i in range(nvols)]

0 commit comments

Comments
 (0)