diff --git a/tests/data/single_layer_tht_diode_bridge_rectifier/autoroute_all.cmd b/tests/data/single_layer_tht_diode_bridge_rectifier/autoroute_all.cmd index ef1a231..0aeaf24 100644 --- a/tests/data/single_layer_tht_diode_bridge_rectifier/autoroute_all.cmd +++ b/tests/data/single_layer_tht_diode_bridge_rectifier/autoroute_all.cmd @@ -2,29 +2,68 @@ "done": [ { "Autoroute": { - "pins": [ - "J2-2", - "J2-1", - "D3-2", - "D2-1", - "D3-1", - "D1-1", - "J1-1", - "D2-2", - "D1-2", - "D4-1", - "J1-2" + "selectors": [ + { + "pin": "J2-2", + "layer": "F.Cu" + }, + { + "pin": "J2-1", + "layer": "F.Cu" + }, + { + "pin": "D3-2", + "layer": "F.Cu" + }, + { + "pin": "D2-1", + "layer": "F.Cu" + }, + { + "pin": "D3-1", + "layer": "F.Cu" + }, + { + "pin": "D1-1", + "layer": "F.Cu" + }, + { + "pin": "J1-1", + "layer": "F.Cu" + }, + { + "pin": "D2-2", + "layer": "F.Cu" + }, + { + "pin": "D1-2", + "layer": "F.Cu" + }, + { + "pin": "D4-1", + "layer": "F.Cu" + }, + { + "pin": "J1-2", + "layer": "F.Cu" + } ] } }, { "Autoroute": { - "pins": [ - "D4-2", - "J2-2" + "selectors": [ + { + "pin": "D4-2", + "layer": "F.Cu" + }, + { + "pin": "J2-2", + "layer": "F.Cu" + } ] } } ], "undone": [] -} \ No newline at end of file +} diff --git a/tests/four_3rd_order_smd_lc_filters.rs b/tests/four_3rd_order_smd_lc_filters.rs index de55a0f..2df0451 100644 --- a/tests/four_3rd_order_smd_lc_filters.rs +++ b/tests/four_3rd_order_smd_lc_filters.rs @@ -42,15 +42,18 @@ fn test() { .node_bound(), ); - for edge in autorouter - .board() - .layout() - .drawing() - .geometry() - .graph() - .edge_references() - { - unionfind.union(edge.source(), edge.target()); + for primitive in autorouter.board().layout().drawing().primitive_nodes() { + dbg!(primitive); + for joined in autorouter + .board() + .layout() + .drawing() + .geometry() + .joineds(primitive) + { + dbg!(joined); + unionfind.union(primitive.node_index(), joined.node_index()); + } } for ratline in autorouter.ratsnest().graph().edge_indices() { diff --git a/tests/single_layer_tht_diode_bridge_rectifier.rs b/tests/single_layer_tht_diode_bridge_rectifier.rs index 103e343..0428bf6 100644 --- a/tests/single_layer_tht_diode_bridge_rectifier.rs +++ b/tests/single_layer_tht_diode_bridge_rectifier.rs @@ -6,7 +6,10 @@ use petgraph::{ }; use topola::{ autorouter::{invoker::Invoker, Autorouter}, - drawing::graph::GetMaybeNet, + drawing::{ + graph::{GetLayer, GetMaybeNet}, + primitive::GetInnerOuter, + }, dsn::design::DsnDesign, graph::GetNodeIndex, triangulation::GetTrianvertexIndex, @@ -42,19 +45,48 @@ fn test() { .node_bound(), ); - for edge in autorouter - .board() - .layout() - .drawing() - .geometry() - .graph() - .edge_references() - { - unionfind.union(edge.source(), edge.target()); + for primitive in autorouter.board().layout().drawing().primitive_nodes() { + dbg!(primitive); + for joined in autorouter + .board() + .layout() + .drawing() + .geometry() + .joineds(primitive) + { + dbg!(joined); + unionfind.union(primitive.node_index(), joined.node_index()); + } } for ratline in autorouter.ratsnest().graph().edge_indices() { let (source_dot, target_dot) = autorouter.ratline_endpoints(ratline); + + let source_layer = autorouter + .board() + .layout() + .drawing() + .primitive(source_dot) + .layer(); + let target_layer = autorouter + .board() + .layout() + .drawing() + .primitive(target_dot) + .layer(); + + let Some(source_layername) = autorouter.board().layername(source_layer) else { + continue; + }; + + let Some(target_layername) = autorouter.board().layername(target_layer) else { + continue; + }; + + if source_layername != "F.Cu" || target_layername != "F.Cu" { + continue; + } + let source_net = autorouter .board() .layout() @@ -73,6 +105,7 @@ fn test() { if let Some(netname) = autorouter.board().netname(net) { dbg!(netname); + dbg!(source_dot, target_dot); assert_eq!( unionfind.find(source_dot.node_index()), unionfind.find(target_dot.node_index())