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,26 +2,65 @@
"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"
}
]
}
}

View File

@ -42,15 +42,18 @@ fn test() {
.node_bound(),
);
for edge in autorouter
for primitive in autorouter.board().layout().drawing().primitive_nodes() {
dbg!(primitive);
for joined in autorouter
.board()
.layout()
.drawing()
.geometry()
.graph()
.edge_references()
.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() {

View File

@ -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
for primitive in autorouter.board().layout().drawing().primitive_nodes() {
dbg!(primitive);
for joined in autorouter
.board()
.layout()
.drawing()
.geometry()
.graph()
.edge_references()
.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() {
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())