Merge pull request 'Removing mxpic_forge from dependency' (#2) from main into pengkun_main #3
@@ -221,6 +221,39 @@ class EdaRouterPinsContractTest(unittest.TestCase):
|
||||
)
|
||||
self.assertEqual(_metadata_pins(metadata, r"D:\mxpic\some_project_layout"), {})
|
||||
|
||||
def test_eda_rotation_is_converted_to_layout_rotation_for_metadata_pins(self):
|
||||
from mxpic_router.builder import _layout_rotation, _transform_port
|
||||
|
||||
self.assertEqual(_layout_rotation(90), -90.0)
|
||||
x, y, angle = _transform_port(
|
||||
39.25,
|
||||
0.0,
|
||||
360.0,
|
||||
1719.3,
|
||||
-2080.5,
|
||||
_layout_rotation(90),
|
||||
)
|
||||
|
||||
self.assertAlmostEqual(x, 1719.3)
|
||||
self.assertAlmostEqual(y, -2119.75)
|
||||
self.assertEqual(angle, 270.0)
|
||||
|
||||
def test_perpendicular_pin_rotations_use_straight_bend_straight_route(self):
|
||||
from mxpic_router.builder import _route_method_name_for_pins
|
||||
|
||||
class FakePin:
|
||||
def __init__(self, angle):
|
||||
self.a = angle
|
||||
|
||||
self.assertEqual(
|
||||
_route_method_name_for_pins(FakePin(0), FakePin(90)),
|
||||
"strt_bend_strt_p2p",
|
||||
)
|
||||
self.assertEqual(
|
||||
_route_method_name_for_pins(FakePin(0), FakePin(270)),
|
||||
"strt_bend_strt_p2p",
|
||||
)
|
||||
|
||||
def test_route_backend_falls_back_to_nazca_interconnect_when_forge_is_absent(self):
|
||||
import mxpic_router.builder as builder
|
||||
|
||||
@@ -249,6 +282,10 @@ class EdaRouterPinsContractTest(unittest.TestCase):
|
||||
self.calls.append(("bend_strt_bend_p2p", kwargs))
|
||||
return "bend"
|
||||
|
||||
def strt_bend_strt_p2p(self, **kwargs):
|
||||
self.calls.append(("strt_bend_strt_p2p", kwargs))
|
||||
return "straight_bend_straight"
|
||||
|
||||
class FakeInterconnects:
|
||||
Interconnect = FakeInterconnect
|
||||
|
||||
@@ -268,11 +305,17 @@ class EdaRouterPinsContractTest(unittest.TestCase):
|
||||
|
||||
self.assertEqual(route.backend_name, "nazca Interconnect")
|
||||
self.assertEqual(route.strt_p2p(pin1="a", pin2="b", arrow=False), "straight")
|
||||
self.assertEqual(
|
||||
route.strt_bend_strt_p2p(pin1="a", pin2="b", radius=12, arrow=False),
|
||||
"straight_bend_straight",
|
||||
)
|
||||
self.assertEqual(route.bend_p2p(pin1="a", pin2="b", radius=10, arrow=False), "bend")
|
||||
self.assertEqual(FakeInterconnect.calls[0][0], "strt_p2p")
|
||||
self.assertEqual(FakeInterconnect.calls[0][1]["width"], 0.7)
|
||||
self.assertEqual(FakeInterconnect.calls[1][0], "bend_strt_bend_p2p")
|
||||
self.assertEqual(FakeInterconnect.calls[1][1]["radius"], 10)
|
||||
self.assertEqual(FakeInterconnect.calls[1][0], "strt_bend_strt_p2p")
|
||||
self.assertEqual(FakeInterconnect.calls[1][1]["radius"], 12)
|
||||
self.assertEqual(FakeInterconnect.calls[2][0], "bend_strt_bend_p2p")
|
||||
self.assertEqual(FakeInterconnect.calls[2][1]["radius"], 10)
|
||||
finally:
|
||||
builder._import_mxpic_forge_route = original_import
|
||||
builder._NazcaInterconnectRoute._create_interconnect = original_create
|
||||
|
||||
Reference in New Issue
Block a user