tests: fix single-layer THT diode bridge rectifier test

This commit is contained in:
Mikolaj Wielgus 2024-06-04 14:49:41 +02:00
parent 5eeeb5a004
commit 352a96f895
3 changed files with 110 additions and 35 deletions

View File

@ -2,29 +2,68 @@
"done": [ "done": [
{ {
"Autoroute": { "Autoroute": {
"pins": [ "selectors": [
"J2-2", {
"J2-1", "pin": "J2-2",
"D3-2", "layer": "F.Cu"
"D2-1", },
"D3-1", {
"D1-1", "pin": "J2-1",
"J1-1", "layer": "F.Cu"
"D2-2", },
"D1-2", {
"D4-1", "pin": "D3-2",
"J1-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": { "Autoroute": {
"pins": [ "selectors": [
"D4-2", {
"J2-2" "pin": "D4-2",
"layer": "F.Cu"
},
{
"pin": "J2-2",
"layer": "F.Cu"
}
] ]
} }
} }
], ],
"undone": [] "undone": []
} }

View File

@ -42,15 +42,18 @@ fn test() {
.node_bound(), .node_bound(),
); );
for edge in autorouter for primitive in autorouter.board().layout().drawing().primitive_nodes() {
.board() dbg!(primitive);
.layout() for joined in autorouter
.drawing() .board()
.geometry() .layout()
.graph() .drawing()
.edge_references() .geometry()
{ .joineds(primitive)
unionfind.union(edge.source(), edge.target()); {
dbg!(joined);
unionfind.union(primitive.node_index(), joined.node_index());
}
} }
for ratline in autorouter.ratsnest().graph().edge_indices() { for ratline in autorouter.ratsnest().graph().edge_indices() {

View File

@ -6,7 +6,10 @@ use petgraph::{
}; };
use topola::{ use topola::{
autorouter::{invoker::Invoker, Autorouter}, autorouter::{invoker::Invoker, Autorouter},
drawing::graph::GetMaybeNet, drawing::{
graph::{GetLayer, GetMaybeNet},
primitive::GetInnerOuter,
},
dsn::design::DsnDesign, dsn::design::DsnDesign,
graph::GetNodeIndex, graph::GetNodeIndex,
triangulation::GetTrianvertexIndex, triangulation::GetTrianvertexIndex,
@ -42,19 +45,48 @@ fn test() {
.node_bound(), .node_bound(),
); );
for edge in autorouter for primitive in autorouter.board().layout().drawing().primitive_nodes() {
.board() dbg!(primitive);
.layout() for joined in autorouter
.drawing() .board()
.geometry() .layout()
.graph() .drawing()
.edge_references() .geometry()
{ .joineds(primitive)
unionfind.union(edge.source(), edge.target()); {
dbg!(joined);
unionfind.union(primitive.node_index(), joined.node_index());
}
} }
for ratline in autorouter.ratsnest().graph().edge_indices() { for ratline in autorouter.ratsnest().graph().edge_indices() {
let (source_dot, target_dot) = autorouter.ratline_endpoints(ratline); 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 let source_net = autorouter
.board() .board()
.layout() .layout()
@ -73,6 +105,7 @@ fn test() {
if let Some(netname) = autorouter.board().netname(net) { if let Some(netname) = autorouter.board().netname(net) {
dbg!(netname); dbg!(netname);
dbg!(source_dot, target_dot);
assert_eq!( assert_eq!(
unionfind.find(source_dot.node_index()), unionfind.find(source_dot.node_index()),
unionfind.find(target_dot.node_index()) unionfind.find(target_dot.node_index())