test: Add test routines for `4x4_1206_led_matrix_breakout`

This commit is contained in:
Mikolaj Wielgus 2025-09-17 13:26:34 +02:00
parent 979493efe4
commit e7e3e7b6f8
4 changed files with 588 additions and 10 deletions

View File

@ -23,13 +23,14 @@ mod common;
fn test_master(#[case] variant: &str) {}
#[apply(test_master)]
fn test_tht_de9_to_tht_de9_in_order(variant: &str) {
let autorouter =
common::load_design("tests/single_layer/tht_de9_to_tht_de9/tht_de9_to_tht_de9.dsn");
fn autoroute_4x4_1206_led_matrix_breakout(variant: &str) {
let autorouter = common::load_design(
"tests/single_layer/4x4_1206_led_matrix_breakout/4x4_1206_led_matrix_breakout.dsn",
);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert(
&mut invoker,
"tests/single_layer/tht_de9_to_tht_de9/autoroute_all_in_an_order.cmd",
"tests/single_layer/4x4_1206_led_matrix_breakout/autoroute_all.cmd",
variant,
);
@ -38,7 +39,23 @@ fn test_tht_de9_to_tht_de9_in_order(variant: &str) {
}
#[apply(test_master)]
fn test_tht_de9_to_tht_de9(variant: &str) {
fn autoroute_4x4_1206_led_matrix_breakout_in_predefined_order(variant: &str) {
let autorouter = common::load_design(
"tests/single_layer/4x4_1206_led_matrix_breakout/4x4_1206_led_matrix_breakout.dsn",
);
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert(
&mut invoker,
"tests/single_layer/4x4_1206_led_matrix_breakout/autoroute_all_in_predefined_order.cmd",
variant,
);
let (mut autorouter, ..) = invoker.dissolve();
common::assert_single_layer_groundless_autoroute(&mut autorouter, "F.Cu");
}
#[apply(test_master)]
fn autoroute_tht_de9_to_tht_de9(variant: &str) {
let autorouter =
common::load_design("tests/single_layer/tht_de9_to_tht_de9/tht_de9_to_tht_de9.dsn");
let mut invoker = common::create_invoker_and_assert(autorouter);
@ -54,7 +71,22 @@ fn test_tht_de9_to_tht_de9(variant: &str) {
}
#[apply(test_master)]
fn test_0603_breakout(variant: &str) {
fn autoroute_tht_de9_to_tht_de9_in_predefined_order(variant: &str) {
let autorouter =
common::load_design("tests/single_layer/tht_de9_to_tht_de9/tht_de9_to_tht_de9.dsn");
let mut invoker = common::create_invoker_and_assert(autorouter);
common::replay_and_assert(
&mut invoker,
"tests/single_layer/tht_de9_to_tht_de9/autoroute_all_in_predefined_order.cmd",
variant,
);
let (mut autorouter, ..) = invoker.dissolve();
common::assert_single_layer_groundless_autoroute(&mut autorouter, "F.Cu");
}
#[apply(test_master)]
fn autoroute_0603_breakout(variant: &str) {
let mut autorouter = common::load_design("tests/single_layer/0603_breakout/0603_breakout.dsn");
common::assert_navnode_count(&mut autorouter, "R1-2", "J1-2", 22);
let mut invoker = common::create_invoker_and_assert(autorouter);
@ -71,7 +103,7 @@ fn test_0603_breakout(variant: &str) {
}
#[apply(test_master)]
fn test_tht_diode_bridge_rectifier(variant: &str) {
fn autoroute_tht_diode_bridge_rectifier(variant: &str) {
let mut autorouter = common::load_design(
"tests/single_layer/tht_diode_bridge_rectifier/tht_diode_bridge_rectifier.dsn",
);
@ -108,7 +140,7 @@ fn test_tht_diode_bridge_rectifier(variant: &str) {
}
#[apply(test_master)]
fn test_4x_3rd_order_smd_lc_filters(variant: &str) {
fn autoroute_4x_3rd_order_smd_lc_filters(variant: &str) {
let mut autorouter = common::load_design(
"tests/single_layer/4x_3rd_order_smd_lc_filters/4x_3rd_order_smd_lc_filters.dsn",
);
@ -150,7 +182,7 @@ fn test_tht_3pin_xlr_to_tht_3pin_xlr(#[case] variant: &str) {
}*/
#[apply(test_master)]
fn test_vga_dac_breakout(variant: &str) {
fn autoroute_vga_dac_breakout(variant: &str) {
let mut autorouter =
common::load_design("tests/single_layer/vga_dac_breakout/vga_dac_breakout.dsn");
common::assert_navnode_count(&mut autorouter, "J1-2", "R4-1", 272);
@ -167,7 +199,7 @@ fn test_vga_dac_breakout(variant: &str) {
}
#[apply(test_master)]
fn test_smd_non_rectangular_buck_converter(variant: &str) {
fn autoroute_smd_non_rectangular_buck_converter(variant: &str) {
let path = "tests/single_layer/smd_non_rectangular_buck_converter/smd_non_rectangular_buck_converter.dsn";
let autorouter = common::load_design(&path);

View File

@ -0,0 +1,212 @@
{
"done": [
{
"Autoroute": [
[
{
"pin": "D1-1",
"layer": "F.Cu"
},
{
"pin": "D1-2",
"layer": "F.Cu"
},
{
"pin": "D10-1",
"layer": "F.Cu"
},
{
"pin": "D10-2",
"layer": "F.Cu"
},
{
"pin": "D11-1",
"layer": "F.Cu"
},
{
"pin": "D11-2",
"layer": "F.Cu"
},
{
"pin": "D12-1",
"layer": "F.Cu"
},
{
"pin": "D12-2",
"layer": "F.Cu"
},
{
"pin": "D13-1",
"layer": "F.Cu"
},
{
"pin": "D13-2",
"layer": "F.Cu"
},
{
"pin": "D14-1",
"layer": "F.Cu"
},
{
"pin": "D14-2",
"layer": "F.Cu"
},
{
"pin": "D15-1",
"layer": "F.Cu"
},
{
"pin": "D15-2",
"layer": "F.Cu"
},
{
"pin": "D16-1",
"layer": "F.Cu"
},
{
"pin": "D16-2",
"layer": "F.Cu"
},
{
"pin": "D2-1",
"layer": "F.Cu"
},
{
"pin": "D2-2",
"layer": "F.Cu"
},
{
"pin": "D3-1",
"layer": "F.Cu"
},
{
"pin": "D3-2",
"layer": "F.Cu"
},
{
"pin": "D4-1",
"layer": "F.Cu"
},
{
"pin": "D4-2",
"layer": "F.Cu"
},
{
"pin": "D5-1",
"layer": "F.Cu"
},
{
"pin": "D5-2",
"layer": "F.Cu"
},
{
"pin": "D6-1",
"layer": "F.Cu"
},
{
"pin": "D6-2",
"layer": "F.Cu"
},
{
"pin": "D7-1",
"layer": "F.Cu"
},
{
"pin": "D7-2",
"layer": "F.Cu"
},
{
"pin": "D8-1",
"layer": "F.Cu"
},
{
"pin": "D8-2",
"layer": "F.Cu"
},
{
"pin": "D9-1",
"layer": "F.Cu"
},
{
"pin": "D9-2",
"layer": "F.Cu"
},
{
"pin": "J1-1",
"layer": "F.Cu"
},
{
"pin": "J1-2",
"layer": "F.Cu"
},
{
"pin": "J1-3",
"layer": "F.Cu"
},
{
"pin": "J1-4",
"layer": "F.Cu"
},
{
"pin": "J2-1",
"layer": "F.Cu"
},
{
"pin": "J2-2",
"layer": "F.Cu"
},
{
"pin": "J2-3",
"layer": "F.Cu"
},
{
"pin": "J2-4",
"layer": "F.Cu"
},
{
"pin": "R1-1",
"layer": "F.Cu"
},
{
"pin": "R1-2",
"layer": "F.Cu"
},
{
"pin": "R2-1",
"layer": "F.Cu"
},
{
"pin": "R2-2",
"layer": "F.Cu"
},
{
"pin": "R3-1",
"layer": "F.Cu"
},
{
"pin": "R3-2",
"layer": "F.Cu"
},
{
"pin": "R4-1",
"layer": "F.Cu"
},
{
"pin": "R4-2",
"layer": "F.Cu"
}
],
{
"presort_by": "RatlineIntersectionCountAndLength",
"permutate": true,
"router_options": {
"routed_band_width": 100.0,
"wrap_around_bands": true,
"squeeze_through_under_bends": true
}
}
]
}
],
"undone": []
}

View File

@ -0,0 +1,334 @@
{
"done": [
{
"Autoroute": [
[
{
"pin": "D13-1",
"layer": "F.Cu"
},
{
"pin": "D14-1",
"layer": "F.Cu"
},
{
"pin": "D15-1",
"layer": "F.Cu"
},
{
"pin": "D16-1",
"layer": "F.Cu"
},
{
"pin": "J2-1",
"layer": "F.Cu"
},
{
"pin": "J2-2",
"layer": "F.Cu"
},
{
"pin": "J2-3",
"layer": "F.Cu"
},
{
"pin": "J2-4",
"layer": "F.Cu"
},
{
"pin": "R1-1",
"layer": "F.Cu"
},
{
"pin": "R1-2",
"layer": "F.Cu"
},
{
"pin": "R2-1",
"layer": "F.Cu"
},
{
"pin": "R2-2",
"layer": "F.Cu"
},
{
"pin": "R3-1",
"layer": "F.Cu"
},
{
"pin": "R3-2",
"layer": "F.Cu"
},
{
"pin": "R4-1",
"layer": "F.Cu"
},
{
"pin": "R4-2",
"layer": "F.Cu"
}
],
{
"presort_by": "RatlineIntersectionCountAndLength",
"permutate": true,
"router_options": {
"routed_band_width": 100.0,
"wrap_around_bands": true,
"squeeze_through_under_bends": true
}
}
]
},
{
"Autoroute": [
[
{
"pin": "D1-2",
"layer": "F.Cu"
},
{
"pin": "D13-2",
"layer": "F.Cu"
},
{
"pin": "D5-2",
"layer": "F.Cu"
},
{
"pin": "D9-2",
"layer": "F.Cu"
},
{
"pin": "J1-1",
"layer": "F.Cu"
},
{
"pin": "J1-2",
"layer": "F.Cu"
},
{
"pin": "J1-3",
"layer": "F.Cu"
},
{
"pin": "J1-4",
"layer": "F.Cu"
}
],
{
"presort_by": "RatlineIntersectionCountAndLength",
"permutate": true,
"router_options": {
"routed_band_width": 100.0,
"wrap_around_bands": true,
"squeeze_through_under_bends": true
}
}
]
},
{
"Autoroute": [
[
{
"pin": "D1-2",
"layer": "F.Cu"
},
{
"pin": "D10-2",
"layer": "F.Cu"
},
{
"pin": "D11-2",
"layer": "F.Cu"
},
{
"pin": "D12-2",
"layer": "F.Cu"
},
{
"pin": "D13-2",
"layer": "F.Cu"
},
{
"pin": "D14-2",
"layer": "F.Cu"
},
{
"pin": "D15-2",
"layer": "F.Cu"
},
{
"pin": "D16-2",
"layer": "F.Cu"
},
{
"pin": "D2-2",
"layer": "F.Cu"
},
{
"pin": "D3-2",
"layer": "F.Cu"
},
{
"pin": "D4-2",
"layer": "F.Cu"
},
{
"pin": "D5-2",
"layer": "F.Cu"
},
{
"pin": "D6-2",
"layer": "F.Cu"
},
{
"pin": "D7-2",
"layer": "F.Cu"
},
{
"pin": "D8-2",
"layer": "F.Cu"
},
{
"pin": "D9-2",
"layer": "F.Cu"
}
],
{
"presort_by": "RatlineIntersectionCountAndLength",
"permutate": true,
"router_options": {
"routed_band_width": 100.0,
"wrap_around_bands": true,
"squeeze_through_under_bends": true
}
}
]
},
{
"Autoroute": [
[
{
"pin": "D1-1",
"layer": "F.Cu"
},
{
"pin": "D13-1",
"layer": "F.Cu"
},
{
"pin": "D5-1",
"layer": "F.Cu"
},
{
"pin": "D9-1",
"layer": "F.Cu"
}
],
{
"presort_by": "RatlineIntersectionCountAndLength",
"permutate": true,
"router_options": {
"routed_band_width": 100.0,
"wrap_around_bands": true,
"squeeze_through_under_bends": true
}
}
]
},
{
"Autoroute": [
[
{
"pin": "D10-1",
"layer": "F.Cu"
},
{
"pin": "D14-1",
"layer": "F.Cu"
},
{
"pin": "D2-1",
"layer": "F.Cu"
},
{
"pin": "D6-1",
"layer": "F.Cu"
}
],
{
"presort_by": "RatlineIntersectionCountAndLength",
"permutate": true,
"router_options": {
"routed_band_width": 100.0,
"wrap_around_bands": true,
"squeeze_through_under_bends": true
}
}
]
},
{
"Autoroute": [
[
{
"pin": "D11-1",
"layer": "F.Cu"
},
{
"pin": "D15-1",
"layer": "F.Cu"
},
{
"pin": "D3-1",
"layer": "F.Cu"
},
{
"pin": "D7-1",
"layer": "F.Cu"
}
],
{
"presort_by": "RatlineIntersectionCountAndLength",
"permutate": true,
"router_options": {
"routed_band_width": 100.0,
"wrap_around_bands": true,
"squeeze_through_under_bends": true
}
}
]
},
{
"Autoroute": [
[
{
"pin": "D12-1",
"layer": "F.Cu"
},
{
"pin": "D16-1",
"layer": "F.Cu"
},
{
"pin": "D4-1",
"layer": "F.Cu"
},
{
"pin": "D8-1",
"layer": "F.Cu"
}
],
{
"presort_by": "RatlineIntersectionCountAndLength",
"permutate": true,
"router_options": {
"routed_band_width": 100.0,
"wrap_around_bands": true,
"squeeze_through_under_bends": true
}
}
]
}
],
"undone": []
}