From 50aa5283022800a57b22e4da1170764daa8569a5 Mon Sep 17 00:00:00 2001 From: Johannes Soltwedel <38459088+jo-mueller@users.noreply.github.com> Date: Mon, 5 Oct 2026 14:22:35 +0200 Subject: [PATCH 1/2] feat: correctly invert spaced transform --- src/transformnd/spaced.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/transformnd/spaced.py b/src/transformnd/spaced.py index ee93f4f..2bb466c 100644 --- a/src/transformnd/spaced.py +++ b/src/transformnd/spaced.py @@ -38,7 +38,7 @@ def invert(self) -> Self | None: t = self.transform.invert() if t is None: return None - return type(self)(t, self.spaces.source, self.spaces.target) + return type(self)(t, self.spaces.target, self.spaces.source) def __invert__(self): out = self.invert() From cfa9ab4bba1dfa66d5514dc7d8b816759475d429 Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Mon, 5 Oct 2026 13:28:00 +0100 Subject: [PATCH 2/2] Add unit test for spaced inversion --- tests/test_spaced.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 tests/test_spaced.py diff --git a/tests/test_spaced.py b/tests/test_spaced.py new file mode 100644 index 0000000..07a30d8 --- /dev/null +++ b/tests/test_spaced.py @@ -0,0 +1,15 @@ +import pytest +from transformnd.spaced import Spaced +from transformnd.transforms import Translate +from transformnd.util import as_floats + + +def test_invert_spaced(coords5x3): + t1 = Translate(as_floats([1, 2, 3])) + s1 = Spaced(t1, "a", "b") + s2 = s1.invert() + assert s2 is not None + assert s2.spaces.source == s1.spaces.target + assert s2.spaces.target == s1.spaces.source + + assert s2.transform.apply(s1.transform.apply(coords5x3)) == pytest.approx(coords5x3)