From c2ef3e42174cea0fb7c3c35625189d95aff97169 Mon Sep 17 00:00:00 2001 From: Jan Petykiewicz Date: Mon, 30 Mar 2026 21:19:10 -0700 Subject: [PATCH] [test] data_to_ports should accurately preserve ports from a scaled ref --- masque/test/test_ports2data.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/masque/test/test_ports2data.py b/masque/test/test_ports2data.py index f461cb8..72f6870 100644 --- a/masque/test/test_ports2data.py +++ b/masque/test/test_ports2data.py @@ -55,3 +55,22 @@ def test_data_to_ports_hierarchical() -> None: assert_allclose(parent.ports["A"].offset, [100, 105], atol=1e-10) assert parent.ports["A"].rotation is not None assert_allclose(parent.ports["A"].rotation, numpy.pi / 2, atol=1e-10) + + +def test_data_to_ports_hierarchical_scaled_ref() -> None: + lib = Library() + + child = Pattern() + layer = (10, 0) + child.label(layer=layer, string="A:type1 0", offset=(5, 0)) + lib["child"] = child + + parent = Pattern() + parent.ref("child", offset=(100, 100), rotation=numpy.pi / 2, scale=2) + + data_to_ports([layer], lib, parent, max_depth=1) + + assert "A" in parent.ports + assert_allclose(parent.ports["A"].offset, [100, 110], atol=1e-10) + assert parent.ports["A"].rotation is not None + assert_allclose(parent.ports["A"].rotation, numpy.pi / 2, atol=1e-10)