topola/tests/single_layer.rs

85 lines
2.6 KiB
Rust

use std::fs::File;
use petgraph::{
unionfind::UnionFind,
visit::{EdgeRef, IntoEdgeReferences, NodeIndexable},
};
use topola::{
autorouter::{invoker::Invoker, Autorouter},
drawing::{
graph::{GetLayer, GetMaybeNet},
primitive::GetInnerOuter,
},
dsn::design::DsnDesign,
graph::GetNodeIndex,
layout::NodeIndex,
triangulation::GetTrianvertexIndex,
};
mod common;
#[test]
fn test_0603_breakout() {
let mut invoker =
common::load_design_and_assert("tests/single_layer/data/0603_breakout/0603_breakout.dsn");
common::replay_and_assert(
&mut invoker,
"tests/single_layer/data/0603_breakout/autoroute_all.cmd",
);
let (mut autorouter, ..) = invoker.destruct();
common::assert_single_layer_groundless_autoroute(&mut autorouter, "F.Cu");
//common::assert_number_of_conncomps(&mut autorouter, 2);
}
#[test]
fn test_tht_diode_bridge_rectifier() {
let mut invoker = common::load_design_and_assert(
"tests/single_layer/data/tht_diode_bridge_rectifier/tht_diode_bridge_rectifier.dsn",
);
common::replay_and_assert(
&mut invoker,
"tests/single_layer/data/tht_diode_bridge_rectifier/autoroute_all.cmd",
);
let (mut autorouter, ..) = invoker.destruct();
common::assert_single_layer_groundless_autoroute(&mut autorouter, "F.Cu");
//common::assert_number_of_conncomps(&mut autorouter, 4);
common::assert_band_length(autorouter.board(), "J2-2", "D4-2", 15500.0, 0.5);
}
#[test]
fn test_four_3rd_order_smd_lc_filters() {
let mut invoker = common::load_design_and_assert(
"tests/single_layer/data/four_3rd_order_smd_lc_filters/four_3rd_order_smd_lc_filters.dsn",
);
common::replay_and_assert(
&mut invoker,
"tests/single_layer/data/four_3rd_order_smd_lc_filters/autoroute_signals.cmd",
);
let (mut autorouter, ..) = invoker.destruct();
common::assert_single_layer_groundless_autoroute(&mut autorouter, "F.Cu");
//common::assert_number_of_conncomps(&mut autorouter, 16);
}
// FIXME: This test fails indeterministically.
#[test]
fn test_3pin_xlr_tht_female_to_tht_female() {
let mut invoker = common::load_design_and_assert(
"tests/single_layer/data/3pin_xlr_tht_female_to_tht_female/3pin_xlr_tht_female_to_tht_female.dsn",
);
common::replay_and_assert(
&mut invoker,
"tests/single_layer/data/3pin_xlr_tht_female_to_tht_female/autoroute_all.cmd",
);
let (mut autorouter, ..) = invoker.destruct();
// FIXME: The routing result is pretty bad.
common::assert_single_layer_groundless_autoroute(&mut autorouter, "F.Cu");
}