[Pather / planner / ports] improve trace_into connection accuracy
This commit is contained in:
parent
e397b3f96e
commit
2b6782c93e
4 changed files with 35 additions and 8 deletions
|
|
@ -113,6 +113,22 @@ def test_pather_trace_into_shapes() -> None:
|
|||
assert numpy.isclose(p.pattern.ports['I'].rotation, pi / 2)
|
||||
|
||||
|
||||
def test_pather_trace_into_large_composed_manhattan_route_plugs() -> None:
|
||||
p = Pather(
|
||||
Library(),
|
||||
tools=PathTool(layer='M1', width=1000, ptype='wire'),
|
||||
render='deferred',
|
||||
)
|
||||
p.ports['src'] = Port((123.25, 456.75), rotation=0, ptype='wire')
|
||||
p.ports['dst'] = Port((-99_999_876.75, 20_000_456.75), rotation=0, ptype='wire')
|
||||
|
||||
p.trace_into('src', 'dst')
|
||||
|
||||
assert 'src' not in p.ports
|
||||
assert 'dst' not in p.ports
|
||||
assert [step.kind for step in p._paths['src']] == ['straight', 'bend', 'straight', 'bend', 'plug']
|
||||
|
||||
|
||||
def test_pather_trace_into_refines_output_adapter_route_before_plug() -> None:
|
||||
class TransitionTool(Tool):
|
||||
def primitive_offers(
|
||||
|
|
|
|||
|
|
@ -169,6 +169,17 @@ def test_port_list_plugged() -> None:
|
|||
assert not pl.ports # Both should be removed
|
||||
|
||||
|
||||
def test_port_list_plugged_uses_coordinate_relative_tolerance() -> None:
|
||||
pattern = Pattern(ports={
|
||||
"A": Port((10, 10), 0),
|
||||
"B": Port((10 + 5e-8, 10), pi),
|
||||
})
|
||||
|
||||
pattern.plugged({"A": "B"})
|
||||
|
||||
assert not pattern.ports
|
||||
|
||||
|
||||
def test_port_list_plugged_ptype_compatibility_warnings(caplog: pytest.LogCaptureFixture) -> None:
|
||||
caplog.set_level("WARNING", logger="masque.ports")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue