|
17 | 17 | from nibabel.affines import from_matvec |
18 | 18 | from scipy.io import loadmat |
19 | 19 | from nitransforms.linear import Affine |
20 | | -from nitransforms import nonlinear as nitnl |
21 | 20 | from nitransforms.io import ( |
22 | 21 | afni, |
23 | 22 | fsl, |
24 | 23 | lta as fs, |
25 | 24 | itk, |
26 | | - x5, |
27 | 25 | ) |
28 | 26 | from nitransforms.io.lta import ( |
29 | 27 | VolumeGeometry as VG, |
@@ -766,52 +764,6 @@ def test_itk_displacements(tmp_path, get_testdata, image_orientation, field_is_r |
766 | 764 | np.testing.assert_allclose(LPS @ itk_nit_nii.affine, nit_nii.affine) |
767 | 765 |
|
768 | 766 |
|
769 | | -@pytest.mark.parametrize("is_deltas", [True, False]) |
770 | | -def test_densefield_x5_roundtrip(tmp_path, is_deltas): |
771 | | - """Ensure dense field transforms roundtrip via X5.""" |
772 | | - ref = nb.Nifti1Image(np.zeros((2, 2, 2), dtype="uint8"), np.eye(4)) |
773 | | - disp = nb.Nifti1Image(np.random.rand(2, 2, 2, 3).astype("float32"), np.eye(4)) |
774 | | - |
775 | | - xfm = nitnl.DenseFieldTransform(disp, is_deltas=is_deltas, reference=ref) |
776 | | - |
777 | | - node = xfm.to_x5(metadata={"GeneratedBy": "pytest"}) |
778 | | - assert node.type == "nonlinear" |
779 | | - assert node.subtype == "densefield" |
780 | | - assert node.representation == "displacements" if is_deltas else "deformations" |
781 | | - assert node.domain.size == ref.shape |
782 | | - assert node.metadata["GeneratedBy"] == "pytest" |
783 | | - |
784 | | - fname = tmp_path / "test.x5" |
785 | | - x5.to_filename(fname, [node]) |
786 | | - |
787 | | - xfm2 = nitnl.DenseFieldTransform.from_filename(fname, fmt="X5") |
788 | | - |
789 | | - assert xfm2.reference.shape == ref.shape |
790 | | - assert np.allclose(xfm2.reference.affine, ref.affine) |
791 | | - assert xfm == xfm2 |
792 | | - |
793 | | - |
794 | | -def test_bspline_to_x5(tmp_path): |
795 | | - """Check BSpline transforms export to X5.""" |
796 | | - coeff = nb.Nifti1Image(np.zeros((2, 2, 2, 3), dtype="float32"), np.eye(4)) |
797 | | - ref = nb.Nifti1Image(np.zeros((2, 2, 2), dtype="uint8"), np.eye(4)) |
798 | | - |
799 | | - xfm = nitnl.BSplineFieldTransform(coeff, reference=ref) |
800 | | - node = xfm.to_x5(metadata={"tool": "pytest"}) |
801 | | - assert node.type == "nonlinear" |
802 | | - assert node.subtype == "bspline" |
803 | | - assert node.representation == "coefficients" |
804 | | - assert node.metadata["tool"] == "pytest" |
805 | | - |
806 | | - fname = tmp_path / "bspline.x5" |
807 | | - x5.to_filename(fname, [node]) |
808 | | - |
809 | | - xfm2 = nitnl.BSplineFieldTransform.from_filename(fname, fmt="X5") |
810 | | - assert np.allclose(xfm._coeffs, xfm2._coeffs) |
811 | | - assert xfm2.reference.shape == ref.shape |
812 | | - assert np.allclose(xfm2.reference.affine, ref.affine) |
813 | | - |
814 | | - |
815 | 767 | # Added tests for h5 orientation bug |
816 | 768 | @pytest.mark.xfail( |
817 | 769 | reason="GH-137/GH-171: displacement field dimension order is wrong", |
|
0 commit comments