tscircuit/dataset-srj12-bus-routing
The code defines electronic circuit diagrams featuring PCB layouts with USB-C, HDMI, and general-purpose chips, connecting their pins with traces, component footprints, and annotations for hardware design.
- Version
- 1.0.6
- License
- unset
- Stars
- 0
index.js
const sample001Srj = require("./circuits/sample001/sample001.circuit.simple-route.json")
const sample002Srj = require("./circuits/sample002/sample002.circuit.simple-route.json")
const sample003Srj = require("./circuits/sample003/sample003.circuit.simple-route.json")
const sample004Srj = require("./circuits/sample004/sample004.circuit.simple-route.json")
const sample005Srj = require("./circuits/sample005/sample005.circuit.simple-route.json")
const sample006Srj = require("./circuits/sample006/sample006.circuit.simple-route.json")
const sample007Srj = require("./circuits/sample007/sample007.circuit.simple-route.json")
const sample008Srj = require("./circuits/sample008/sample008.circuit.simple-route.json")
const sample009Srj = require("./circuits/sample009/sample009.circuit.simple-route.json")
const sample010Srj = require("./circuits/sample010/sample010.circuit.simple-route.json")
const sample001TinyHypergraph = require("./dataset-dist/sample001.tiny-hypergraph.json")
const sample002TinyHypergraph = require("./dataset-dist/sample002.tiny-hypergraph.json")
const sample003TinyHypergraph = require("./dataset-dist/sample003.tiny-hypergraph.json")
const sample004TinyHypergraph = require("./dataset-dist/sample004.tiny-hypergraph.json")
const sample005TinyHypergraph = require("./dataset-dist/sample005.tiny-hypergraph.json")
const sample006TinyHypergraph = require("./dataset-dist/sample006.tiny-hypergraph.json")
const sample007TinyHypergraph = require("./dataset-dist/sample007.tiny-hypergraph.json")
const sample008TinyHypergraph = require("./dataset-dist/sample008.tiny-hypergraph.json")
const sample009TinyHypergraph = require("./dataset-dist/sample009.tiny-hypergraph.json")
const sample010TinyHypergraph = require("./dataset-dist/sample010.tiny-hypergraph.json")
const datasetDistManifest = require("./dataset-dist/manifest.json")
const srjByName = {
sample001: sample001Srj,
sample002: sample002Srj,
sample003: sample003Srj,
sample004: sample004Srj,
sample005: sample005Srj,
sample006: sample006Srj,
sample007: sample007Srj,
sample008: sample008Srj,
sample009: sample009Srj,
sample010: sample010Srj,
}
const tinyHypergraphBenchmarkByName = {
sample001: sample001TinyHypergraph,
sample002: sample002TinyHypergraph,
sample003: sample003TinyHypergraph,
sample004: sample004TinyHypergraph,
sample005: sample005TinyHypergraph,
sample006: sample006TinyHypergraph,
sample007: sample007TinyHypergraph,
sample008: sample008TinyHypergraph,
sample009: sample009TinyHypergraph,
sample010: sample010TinyHypergraph,
}
const samples = Object.keys(srjByName).map((sampleName) => ({
sampleName,
srj: srjByName[sampleName],
tinyHypergraphBenchmark: tinyHypergraphBenchmarkByName[sampleName],
}))
function hydrateTinyHypergraphSolverInput(solverInput) {
const regionsById = new Map(
solverInput.graph.regions.map((region) => [
region.regionId,
{
regionId: region.regionId,
d: region.d,
ports: [],
},
]),
)
const ports = solverInput.graph.ports.map((port) => {
const region1 = regionsById.get(port.region1Id)
const region2 = regionsById.get(port.region2Id)
if (!region1 || !region2) {
throw new Error(`Could not hydrate port ${port.portId}`)
}
const hydratedPort = {
portId: port.portId,
d: {
...port.d,
regions: port.regionIds.map((regionId) => regionsById.get(regionId)),
},
region1,
region2,
}
region1.ports.push(hydratedPort)
region2.ports.push(hydratedPort)
return hydratedPort
})
const graph = {
regions: Array.from(regionsById.values()),
ports,
}
return {
...solverInput,
graph,
connections: solverInput.connections.map((connection) => {
const startRegion = regionsById.get(connection.startRegionId)
const endRegion = regionsById.get(connection.endRegionId)
if (!startRegion || !endRegion) {
throw new Error(`Could not hydrate connection ${connection.connectionId}`)
}
return {
connectionId: connection.connectionId,
mutuallyConnectedNetworkId: connection.mutuallyConnectedNetworkId,
startRegion,
endRegion,
simpleRouteConnection: connection.simpleRouteConnection,
}
}),
}
}
module.exports = {
sample001Srj,
sample002Srj,
sample003Srj,
sample004Srj,
sample005Srj,
sample006Srj,
sample007Srj,
sample008Srj,
sample009Srj,
sample010Srj,
sample001TinyHypergraph,
sample002TinyHypergraph,
sample003TinyHypergraph,
sample004TinyHypergraph,
sample005TinyHypergraph,
sample006TinyHypergraph,
sample007TinyHypergraph,
sample008TinyHypergraph,
sample009TinyHypergraph,
sample010TinyHypergraph,
datasetDistManifest,
srjByName,
tinyHypergraphBenchmarkByName,
samples,
hydrateTinyHypergraphSolverInput,
}