seveibar/adm6-breakout
This code defines PCB designs featuring a 60-pin fanout or direct routing layout with multiple signal and power layers, test pads, and component footprints for a high-density electronic breakout board.
- Version
- 1.0.2
- License
- unset
- Stars
- 0
scripts/verify-no-fanout.mjs
import { readFileSync } from "node:fs"
const debugDir = "dist/adm6-no-fanout-debug"
const input = JSON.parse(
readFileSync(`${debugDir}/phase-0.input.simple-route.json`, "utf8"),
)
const previousOutput = JSON.parse(
readFileSync(`${debugDir}/phase-0.previous-output.traces.json`, "utf8"),
)
const timeout = JSON.parse(
readFileSync(`${debugDir}/phase-0.timeout.json`, "utf8"),
)
const summary = {
configuration: "direct auto-local routing without <fanout>",
inputConnections: input.connections.length,
timeoutSeconds: timeout.elapsedMs / 1000,
phase: timeout.phaseOrdinal,
lastSolverStage: timeout.lastProgress?.phase,
completedOutputTraces: previousOutput.length,
result: "timeout",
}
console.log(JSON.stringify(summary, null, 2))
if (input.connections.length !== 240) {
throw new Error(`Expected 240 direct connections, found ${input.connections.length}`)
}
if (timeout.phaseOrdinal !== 1 || timeout.elapsedMs < 300_000) {
throw new Error("Saved result is not the expected five-minute phase-1 timeout")
}
if (previousOutput.length !== 0) {
throw new Error(
`Expected no emitted route set at timeout, found ${previousOutput.length} traces`,
)
}