@tscircuit/schematic-trace-solver 0.0.86 → 0.0.88

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/.agents/skills/schematic-trace-visualization/SKILL.md +115 -0
  2. package/.github/scripts/import-json-bug-report.ts +15 -1
  3. package/.github/workflows/json-bug-report.yml +3 -2
  4. package/AGENTS.md +22 -0
  5. package/dist/index.js +86 -10
  6. package/lib/solvers/Example28Solver/Example28Solver.ts +46 -10
  7. package/lib/solvers/Example28Solver/countCrossingsWithOtherTraces.ts +19 -0
  8. package/lib/solvers/Example28Solver/scoreSolutionTracePath.ts +26 -0
  9. package/lib/testing/PipelineStageDebugRunner.ts +344 -0
  10. package/package.json +3 -2
  11. package/scripts/debug-pipeline-stages.ts +146 -0
  12. package/site/bug-reports/bug-report-20260706T220324Z.page.tsx +4 -0
  13. package/site/bug-reports/bug-report-20260707T020342Z.page.tsx +4 -0
  14. package/site/bug-reports/bug-report-20260707T092615Z.page.tsx +4 -0
  15. package/site/bug-reports/bug-report-20260707T134549Z.page.tsx +4 -0
  16. package/site/bug-reports/bug-report-20260707T134722Z.page.tsx +4 -0
  17. package/site/bug-reports/bug-report-20260707T140410Z.page.tsx +4 -0
  18. package/site/bug-reports/bug-report-20260707T141025Z.page.tsx +4 -0
  19. package/site/bug-reports/bug-report-20260707T141421Z.page.tsx +4 -0
  20. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +357 -3448
  21. package/tests/bug-reports/bug-report-20260707T020342Z/__snapshots__/bug-report-20260707T020342Z.snap.svg +64 -0
  22. package/tests/bug-reports/bug-report-20260707T020342Z/bug-report-20260707T020342Z.json +233 -0
  23. package/tests/bug-reports/bug-report-20260707T020342Z/bug-report-20260707T020342Z.test.ts +12 -0
  24. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +2098 -0
  25. package/tests/bug-reports/bug-report-20260707T092615Z/bug-report-20260707T092615Z.json +1392 -0
  26. package/tests/bug-reports/bug-report-20260707T092615Z/bug-report-20260707T092615Z.test.ts +12 -0
  27. package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +857 -0
  28. package/tests/bug-reports/bug-report-20260707T134549Z/bug-report-20260707T134549Z.json +652 -0
  29. package/tests/bug-reports/bug-report-20260707T134549Z/bug-report-20260707T134549Z.test.ts +12 -0
  30. package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +275 -0
  31. package/tests/bug-reports/bug-report-20260707T134722Z/bug-report-20260707T134722Z.json +265 -0
  32. package/tests/bug-reports/bug-report-20260707T134722Z/bug-report-20260707T134722Z.test.ts +12 -0
  33. package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +950 -0
  34. package/tests/bug-reports/bug-report-20260707T140410Z/bug-report-20260707T140410Z.json +610 -0
  35. package/tests/bug-reports/bug-report-20260707T140410Z/bug-report-20260707T140410Z.test.ts +12 -0
  36. package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +218 -0
  37. package/tests/bug-reports/bug-report-20260707T141025Z/bug-report-20260707T141025Z.json +185 -0
  38. package/tests/bug-reports/bug-report-20260707T141025Z/bug-report-20260707T141025Z.test.ts +12 -0
  39. package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +613 -0
  40. package/tests/bug-reports/bug-report-20260707T141421Z/bug-report-20260707T141421Z.json +499 -0
  41. package/tests/bug-reports/bug-report-20260707T141421Z/bug-report-20260707T141421Z.test.ts +12 -0
  42. package/tests/examples/__snapshots__/example01.snap.svg +59 -162
  43. package/tests/examples/__snapshots__/example02.snap.svg +64 -273
  44. package/tests/examples/__snapshots__/example03.snap.svg +85 -290
  45. package/tests/examples/__snapshots__/example04.snap.svg +50 -94
  46. package/tests/examples/__snapshots__/example05.snap.svg +73 -191
  47. package/tests/examples/__snapshots__/example06.snap.svg +49 -95
  48. package/tests/examples/__snapshots__/example07.snap.svg +65 -218
  49. package/tests/examples/__snapshots__/example08.snap.svg +61 -143
  50. package/tests/examples/__snapshots__/example09.snap.svg +123 -493
  51. package/tests/examples/__snapshots__/example10.snap.svg +57 -136
  52. package/tests/examples/__snapshots__/example11.snap.svg +64 -173
  53. package/tests/examples/__snapshots__/example12.snap.svg +58 -159
  54. package/tests/examples/__snapshots__/example13.snap.svg +78 -348
  55. package/tests/examples/__snapshots__/example14.snap.svg +77 -293
  56. package/tests/examples/__snapshots__/example15.snap.svg +140 -984
  57. package/tests/examples/__snapshots__/example16.snap.svg +62 -162
  58. package/tests/examples/__snapshots__/example17.snap.svg +67 -198
  59. package/tests/examples/__snapshots__/example18.snap.svg +69 -249
  60. package/tests/examples/__snapshots__/example19.snap.svg +63 -202
  61. package/tests/examples/__snapshots__/example20.snap.svg +60 -148
  62. package/tests/examples/__snapshots__/example21.snap.svg +73 -298
  63. package/tests/examples/__snapshots__/example22.snap.svg +62 -156
  64. package/tests/examples/__snapshots__/example23.snap.svg +66 -172
  65. package/tests/examples/__snapshots__/example24.snap.svg +64 -164
  66. package/tests/examples/__snapshots__/example25.snap.svg +76 -299
  67. package/tests/examples/__snapshots__/example26.snap.svg +64 -164
  68. package/tests/examples/__snapshots__/example27.snap.svg +83 -300
  69. package/tests/examples/__snapshots__/example28.snap.svg +54 -115
  70. package/tests/examples/__snapshots__/example29.snap.svg +257 -1299
  71. package/tests/examples/__snapshots__/example30.snap.svg +91 -293
  72. package/tests/examples/__snapshots__/example31.snap.svg +47 -88
  73. package/tests/examples/__snapshots__/example32.snap.svg +107 -405
  74. package/tests/examples/__snapshots__/example33.snap.svg +71 -180
  75. package/tests/examples/__snapshots__/example34.snap.svg +55 -116
  76. package/tests/examples/__snapshots__/example35.snap.svg +69 -176
  77. package/tests/examples/__snapshots__/example36.snap.svg +65 -159
  78. package/tests/examples/__snapshots__/example37.snap.svg +75 -223
  79. package/tests/examples/__snapshots__/example38.snap.svg +46 -76
  80. package/tests/examples/__snapshots__/example39.snap.svg +51 -106
  81. package/tests/examples/__snapshots__/example40.snap.svg +83 -270
  82. package/tests/examples/__snapshots__/example41.snap.svg +54 -118
  83. package/tests/examples/__snapshots__/example42.snap.svg +67 -194
  84. package/tests/examples/__snapshots__/example43.snap.svg +62 -168
  85. package/tests/examples/__snapshots__/example44.snap.svg +86 -369
  86. package/tests/examples/__snapshots__/example45.snap.svg +60 -169
  87. package/tests/examples/__snapshots__/example46.snap.svg +80 -342
  88. package/tests/examples/__snapshots__/example47.snap.svg +82 -323
  89. package/tests/examples/__snapshots__/example48.snap.svg +64 -167
  90. package/tests/examples/__snapshots__/example49.snap.svg +120 -565
  91. package/tests/examples/__snapshots__/example50.snap.svg +71 -195
  92. package/tests/fixtures/getLastStepGraphicsObject.ts +38 -0
  93. package/tests/fixtures/getLastStepSvg.ts +9 -0
  94. package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +67 -218
  95. package/tests/repros/__snapshots__/manufacturePartNumber-text-box.snap.svg +47 -87
  96. package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +73 -272
  97. package/tests/repros/__snapshots__/repro-atmega328p-fault-pullup.snap.svg +284 -0
  98. package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +470 -0
  99. package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +94 -395
  100. package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +88 -467
  101. package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +109 -569
  102. package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +95 -459
  103. package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +64 -176
  104. package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +51 -112
  105. package/tests/repros/assets/repro-atmega328p-fault-pullup.input.json +239 -0
  106. package/tests/repros/assets/repro-atmega328p-missing-gnd-netlabel.input.json +432 -0
  107. package/tests/repros/repro-atmega328p-fault-pullup.test.ts +11 -0
  108. package/tests/repros/repro-atmega328p-missing-gnd-netlabel.test.ts +16 -0
  109. package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_01-example17-d1_1-u1_1.snap.svg +59 -159
  110. package/tests/solvers/TraceCleanupSolver/__snapshots__/TraceCleanupSolver.snap.svg +54 -118
  111. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +58 -245
  112. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/__snapshots__/renderComparisonView01.snap.svg +73 -222
  113. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/__snapshots__/renderComparisonView02.snap.svg +65 -204
  114. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/__snapshots__/renderComparisonView03.snap.svg +65 -183
  115. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/MergedNetLabelObstacles.snap.svg +54 -139
  116. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/OverlapAvoidanceStepSolver.snap.svg +61 -215
  117. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/SingleOverlapSolver.snap.svg +54 -124
@@ -0,0 +1,652 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_0",
5
+ "center": {
6
+ "x": 2.01,
7
+ "y": 0.20000000000000018
8
+ },
9
+ "width": 2.9000000000000004,
10
+ "height": 3,
11
+ "pins": [
12
+ {
13
+ "pinId": "U1.1",
14
+ "x": 0.5599999999999996,
15
+ "y": -0.4999999999999998
16
+ },
17
+ {
18
+ "pinId": "U1.2",
19
+ "x": 3.46,
20
+ "y": 0.5000000000000002
21
+ },
22
+ {
23
+ "pinId": "U1.4",
24
+ "x": 0.5599999999999996,
25
+ "y": 0.10000000000000009
26
+ },
27
+ {
28
+ "pinId": "U1.5",
29
+ "x": 0.5599999999999996,
30
+ "y": -0.2999999999999998
31
+ },
32
+ {
33
+ "pinId": "U1.6",
34
+ "x": 0.5599999999999996,
35
+ "y": -0.09999999999999987
36
+ },
37
+ {
38
+ "pinId": "U1.8",
39
+ "x": 0.5599999999999996,
40
+ "y": -0.6999999999999997
41
+ },
42
+ {
43
+ "pinId": "U1.10",
44
+ "x": 3.46,
45
+ "y": 1.5000000000000002
46
+ },
47
+ {
48
+ "pinId": "U1.12",
49
+ "x": 3.46,
50
+ "y": -0.6999999999999998
51
+ },
52
+ {
53
+ "pinId": "U1.13",
54
+ "x": 0.5599999999999996,
55
+ "y": 1.1
56
+ },
57
+ {
58
+ "pinId": "U1.14",
59
+ "x": 3.46,
60
+ "y": -1.0999999999999999
61
+ },
62
+ {
63
+ "pinId": "U1.15",
64
+ "x": 3.46,
65
+ "y": -0.8999999999999999
66
+ },
67
+ {
68
+ "pinId": "U1.16",
69
+ "x": 3.46,
70
+ "y": -0.4999999999999998
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "chipId": "schematic_component_1",
76
+ "center": {
77
+ "x": -1.3400000000000003,
78
+ "y": -1.1249999999999998
79
+ },
80
+ "width": 2.6000000000000005,
81
+ "height": 0.45000000000000007,
82
+ "pins": [
83
+ {
84
+ "pinId": "V_IN.1",
85
+ "x": -2.6400000000000006,
86
+ "y": -1.1249999999999998
87
+ },
88
+ {
89
+ "pinId": "V_IN.2",
90
+ "x": -0.040000000000000036,
91
+ "y": -1.1249999999999998
92
+ }
93
+ ]
94
+ },
95
+ {
96
+ "chipId": "schematic_component_2",
97
+ "center": {
98
+ "x": -3.159727675,
99
+ "y": -1.1249999999999998
100
+ },
101
+ "width": 0.6394553499999995,
102
+ "height": 1.08,
103
+ "pins": [
104
+ {
105
+ "pinId": "V_LOGIC.1",
106
+ "x": -3.164727675,
107
+ "y": -0.5849999999999997
108
+ },
109
+ {
110
+ "pinId": "V_LOGIC.2",
111
+ "x": -3.154727675,
112
+ "y": -1.6649999999999998
113
+ }
114
+ ]
115
+ },
116
+ {
117
+ "chipId": "schematic_component_3",
118
+ "center": {
119
+ "x": 7.8889106999999985,
120
+ "y": -2.2194553499999996
121
+ },
122
+ "width": 0.6394553499999986,
123
+ "height": 1.08,
124
+ "pins": [
125
+ {
126
+ "pinId": "V_BAT.1",
127
+ "x": 7.883910699999999,
128
+ "y": -1.6794553499999996
129
+ },
130
+ {
131
+ "pinId": "V_BAT.2",
132
+ "x": 7.893910699999998,
133
+ "y": -2.7594553499999996
134
+ }
135
+ ]
136
+ },
137
+ {
138
+ "chipId": "schematic_component_4",
139
+ "center": {
140
+ "x": 6.374183024999998,
141
+ "y": -1.6794553499999996
142
+ },
143
+ "width": 1.1099999999999994,
144
+ "height": 0.8589106999999989,
145
+ "pins": [
146
+ {
147
+ "pinId": "R_BAT_SRC.1",
148
+ "x": 6.929183024999998,
149
+ "y": -1.6794553499999996
150
+ },
151
+ {
152
+ "pinId": "R_BAT_SRC.2",
153
+ "x": 5.819183024999998,
154
+ "y": -1.6794553499999996
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ "chipId": "schematic_component_5",
160
+ "center": {
161
+ "x": 4.7,
162
+ "y": 0.5
163
+ },
164
+ "width": 1.08,
165
+ "height": 1,
166
+ "pins": [
167
+ {
168
+ "pinId": "IBAT_PROBE.1",
169
+ "x": 4.16,
170
+ "y": 0.5
171
+ },
172
+ {
173
+ "pinId": "IBAT_PROBE.2",
174
+ "x": 5.24,
175
+ "y": 0.5
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "chipId": "schematic_component_6",
181
+ "center": {
182
+ "x": 6.569455349999999,
183
+ "y": 2.2
184
+ },
185
+ "width": 1.0591830249999994,
186
+ "height": 1.1,
187
+ "pins": [
188
+ {
189
+ "pinId": "R_LOAD.1",
190
+ "x": 6.1995915125,
191
+ "y": 2.75
192
+ },
193
+ {
194
+ "pinId": "R_LOAD.2",
195
+ "x": 6.1995915125,
196
+ "y": 1.6500000000000001
197
+ }
198
+ ]
199
+ },
200
+ {
201
+ "chipId": "schematic_component_7",
202
+ "center": {
203
+ "x": 4.805,
204
+ "y": 2.2
205
+ },
206
+ "width": 0.9599999999999991,
207
+ "height": 1.1,
208
+ "pins": [
209
+ {
210
+ "pinId": "C_OUT.1",
211
+ "x": 4.59,
212
+ "y": 2.75
213
+ },
214
+ {
215
+ "pinId": "C_OUT.2",
216
+ "x": 4.59,
217
+ "y": 1.6500000000000001
218
+ }
219
+ ]
220
+ },
221
+ {
222
+ "chipId": "schematic_component_8",
223
+ "center": {
224
+ "x": 6.585000000000001,
225
+ "y": -0.04999999999999982
226
+ },
227
+ "width": 0.9599999999999991,
228
+ "height": 1.1,
229
+ "pins": [
230
+ {
231
+ "pinId": "C_BAT.1",
232
+ "x": 6.370000000000001,
233
+ "y": 0.5000000000000002
234
+ },
235
+ {
236
+ "pinId": "C_BAT.2",
237
+ "x": 6.370000000000001,
238
+ "y": -0.5999999999999999
239
+ }
240
+ ]
241
+ },
242
+ {
243
+ "chipId": "schematic_component_9",
244
+ "center": {
245
+ "x": 5.009455349999999,
246
+ "y": -1.1999999999999997
247
+ },
248
+ "width": 1.0591830249999994,
249
+ "height": 1.1,
250
+ "pins": [
251
+ {
252
+ "pinId": "R_ISET.1",
253
+ "x": 4.639591512499999,
254
+ "y": -0.6499999999999997
255
+ },
256
+ {
257
+ "pinId": "R_ISET.2",
258
+ "x": 4.639591512499999,
259
+ "y": -1.7499999999999998
260
+ }
261
+ ]
262
+ },
263
+ {
264
+ "chipId": "schematic_component_10",
265
+ "center": {
266
+ "x": 1.5710892999999997,
267
+ "y": -2.9
268
+ },
269
+ "width": 1.0591830249999994,
270
+ "height": 1.1000000000000005,
271
+ "pins": [
272
+ {
273
+ "pinId": "R_ILIM.1",
274
+ "x": 1.2012254624999998,
275
+ "y": -2.3499999999999996
276
+ },
277
+ {
278
+ "pinId": "R_ILIM.2",
279
+ "x": 1.2012254624999998,
280
+ "y": -3.45
281
+ }
282
+ ]
283
+ },
284
+ {
285
+ "chipId": "schematic_component_11",
286
+ "center": {
287
+ "x": 3.3502723249999997,
288
+ "y": -2.9
289
+ },
290
+ "width": 1.179183024999999,
291
+ "height": 1.1000000000000005,
292
+ "pins": [
293
+ {
294
+ "pinId": "R_ITERM.1",
295
+ "x": 2.9204084874999996,
296
+ "y": -2.3499999999999996
297
+ },
298
+ {
299
+ "pinId": "R_ITERM.2",
300
+ "x": 2.9204084874999996,
301
+ "y": -3.45
302
+ }
303
+ ]
304
+ },
305
+ {
306
+ "chipId": "schematic_component_12",
307
+ "center": {
308
+ "x": 5.009455349999999,
309
+ "y": -2.9999999999999996
310
+ },
311
+ "width": 1.0591830249999994,
312
+ "height": 1.1000000000000005,
313
+ "pins": [
314
+ {
315
+ "pinId": "R_TMR.1",
316
+ "x": 4.639591512499999,
317
+ "y": -2.4499999999999993
318
+ },
319
+ {
320
+ "pinId": "R_TMR.2",
321
+ "x": 4.639591512499999,
322
+ "y": -3.55
323
+ }
324
+ ]
325
+ },
326
+ {
327
+ "chipId": "schematic_component_13",
328
+ "center": {
329
+ "x": -4.239183025,
330
+ "y": -1.1249999999999998
331
+ },
332
+ "width": 0.8191830249999996,
333
+ "height": 1.1,
334
+ "pins": [
335
+ {
336
+ "pinId": "R_TS.1",
337
+ "x": -4.4890468624999995,
338
+ "y": -0.5749999999999997
339
+ },
340
+ {
341
+ "pinId": "R_TS.2",
342
+ "x": -4.4890468624999995,
343
+ "y": -1.6749999999999998
344
+ }
345
+ ]
346
+ }
347
+ ],
348
+ "directConnections": [
349
+ {
350
+ "pinIds": [
351
+ "IBAT_PROBE.1",
352
+ "U1.2"
353
+ ],
354
+ "netId": ".IBAT_PROBE > .pos to U1.BAT"
355
+ },
356
+ {
357
+ "pinIds": [
358
+ "IBAT_PROBE.2",
359
+ "R_BAT_SRC.2"
360
+ ],
361
+ "netId": ".IBAT_PROBE > .neg to R_BAT_SRC.pin2"
362
+ },
363
+ {
364
+ "pinIds": [
365
+ "V_IN.1",
366
+ "U1.13"
367
+ ],
368
+ "netId": "V_IN.OUT to U1.IN",
369
+ "netLabelWidth": 1.68
370
+ },
371
+ {
372
+ "pinIds": [
373
+ "V_LOGIC.1",
374
+ "U1.5"
375
+ ],
376
+ "netId": "V_LOGIC.pin1 to U1.EN2",
377
+ "netLabelWidth": 2.15
378
+ },
379
+ {
380
+ "pinIds": [
381
+ "U1.1",
382
+ "R_TS.1"
383
+ ],
384
+ "netId": "U1.TS to R_TS.pin1",
385
+ "netLabelWidth": 1.77
386
+ },
387
+ {
388
+ "pinIds": [
389
+ "U1.10",
390
+ "R_LOAD.1"
391
+ ],
392
+ "netId": "U1.OUT to R_LOAD.pin1",
393
+ "netLabelWidth": 2.05
394
+ },
395
+ {
396
+ "pinIds": [
397
+ "U1.10",
398
+ "C_OUT.1"
399
+ ],
400
+ "netId": "U1.OUT to C_OUT.pin1"
401
+ },
402
+ {
403
+ "pinIds": [
404
+ "U1.2",
405
+ "C_BAT.1"
406
+ ],
407
+ "netId": "U1.BAT to C_BAT.pin1",
408
+ "netLabelWidth": 1.96
409
+ },
410
+ {
411
+ "pinIds": [
412
+ "R_BAT_SRC.1",
413
+ "V_BAT.1"
414
+ ],
415
+ "netId": "R_BAT_SRC.pin1 to V_BAT.pin1"
416
+ },
417
+ {
418
+ "pinIds": [
419
+ "U1.16",
420
+ "R_ISET.1"
421
+ ],
422
+ "netId": "U1.ISET to R_ISET.pin1"
423
+ },
424
+ {
425
+ "pinIds": [
426
+ "U1.12",
427
+ "R_ILIM.1"
428
+ ],
429
+ "netId": "U1.ILIM to R_ILIM.pin1",
430
+ "netLabelWidth": 2.15
431
+ },
432
+ {
433
+ "pinIds": [
434
+ "U1.15",
435
+ "R_ITERM.1"
436
+ ],
437
+ "netId": "U1.ITERM to R_ITERM.pin1"
438
+ },
439
+ {
440
+ "pinIds": [
441
+ "U1.14",
442
+ "R_TMR.1"
443
+ ],
444
+ "netId": "U1.TMR to R_TMR.pin1"
445
+ }
446
+ ],
447
+ "netConnections": [
448
+ {
449
+ "netId": "TS",
450
+ "pinIds": [
451
+ "U1.1",
452
+ "R_TS.1"
453
+ ],
454
+ "netLabelWidth": 0.36
455
+ },
456
+ {
457
+ "netId": "BAT",
458
+ "pinIds": [
459
+ "U1.2",
460
+ "IBAT_PROBE.1",
461
+ "C_BAT.1"
462
+ ],
463
+ "netLabelWidth": 0.48
464
+ },
465
+ {
466
+ "netId": "GND",
467
+ "pinIds": [
468
+ "U1.4",
469
+ "U1.6",
470
+ "U1.8",
471
+ "V_IN.2",
472
+ "V_LOGIC.2",
473
+ "V_BAT.2",
474
+ "R_LOAD.2",
475
+ "C_OUT.2",
476
+ "C_BAT.2",
477
+ "R_ISET.2",
478
+ "R_ILIM.2",
479
+ "R_ITERM.2",
480
+ "R_TMR.2",
481
+ "R_TS.2"
482
+ ],
483
+ "netLabelWidth": 0.48,
484
+ "netLabelHeight": 0.42
485
+ },
486
+ {
487
+ "netId": "EN2",
488
+ "pinIds": [
489
+ "U1.5",
490
+ "V_LOGIC.1"
491
+ ],
492
+ "netLabelWidth": 0.48
493
+ },
494
+ {
495
+ "netId": "OUT",
496
+ "pinIds": [
497
+ "U1.10",
498
+ "R_LOAD.1",
499
+ "C_OUT.1"
500
+ ],
501
+ "netLabelWidth": 0.48
502
+ },
503
+ {
504
+ "netId": "ILIM",
505
+ "pinIds": [
506
+ "U1.12",
507
+ "R_ILIM.1"
508
+ ],
509
+ "netLabelWidth": 0.6
510
+ },
511
+ {
512
+ "netId": "VIN",
513
+ "pinIds": [
514
+ "U1.13",
515
+ "V_IN.1"
516
+ ],
517
+ "netLabelWidth": 0.48,
518
+ "netLabelHeight": 0.42
519
+ },
520
+ {
521
+ "netId": "TMR",
522
+ "pinIds": [
523
+ "U1.14",
524
+ "R_TMR.1"
525
+ ],
526
+ "netLabelWidth": 0.48
527
+ },
528
+ {
529
+ "netId": "ITERM",
530
+ "pinIds": [
531
+ "U1.15",
532
+ "R_ITERM.1"
533
+ ],
534
+ "netLabelWidth": 0.72
535
+ },
536
+ {
537
+ "netId": "ISET",
538
+ "pinIds": [
539
+ "U1.16",
540
+ "R_ISET.1"
541
+ ],
542
+ "netLabelWidth": 0.6
543
+ },
544
+ {
545
+ "netId": "BAT_SRC",
546
+ "pinIds": [
547
+ "V_BAT.1",
548
+ "R_BAT_SRC.1"
549
+ ],
550
+ "netLabelWidth": 0.96
551
+ },
552
+ {
553
+ "netId": "BAT_PROBE_SRC",
554
+ "pinIds": [
555
+ "R_BAT_SRC.2",
556
+ "IBAT_PROBE.2"
557
+ ],
558
+ "netLabelWidth": 1.68
559
+ }
560
+ ],
561
+ "textBoxes": [
562
+ {
563
+ "chipId": "schematic_component_0",
564
+ "center": {
565
+ "x": 1.6199999999999997,
566
+ "y": -1.4299999999999997
567
+ },
568
+ "width": 1.3199999999999996,
569
+ "height": 0.18000000000000016,
570
+ "text": "BQ24074RGTR"
571
+ },
572
+ {
573
+ "chipId": "schematic_component_0",
574
+ "center": {
575
+ "x": 1.0799999999999996,
576
+ "y": 1.83
577
+ },
578
+ "width": 0.24,
579
+ "height": 0.18000000000000016,
580
+ "text": "U1"
581
+ },
582
+ {
583
+ "chipId": "schematic_component_1",
584
+ "center": {
585
+ "x": -0.9200000000000004,
586
+ "y": -1.4799999999999998
587
+ },
588
+ "width": 2.6399999999999997,
589
+ "height": 0.18000000000000016,
590
+ "text": "BQ24074-OVP-INPUT-STEP"
591
+ },
592
+ {
593
+ "chipId": "schematic_component_1",
594
+ "center": {
595
+ "x": -2,
596
+ "y": -0.7699999999999998
597
+ },
598
+ "width": 0.48,
599
+ "height": 0.17999999999999994,
600
+ "text": "V_IN"
601
+ }
602
+ ],
603
+ "availableNetLabelOrientations": {
604
+ "VIN": [
605
+ "y+"
606
+ ],
607
+ "GND": [
608
+ "y-"
609
+ ],
610
+ "EN2": [
611
+ "x-",
612
+ "x+"
613
+ ],
614
+ "TS": [
615
+ "x-",
616
+ "x+"
617
+ ],
618
+ "OUT": [
619
+ "x-",
620
+ "x+"
621
+ ],
622
+ "BAT": [
623
+ "x-",
624
+ "x+"
625
+ ],
626
+ "ISET": [
627
+ "x-",
628
+ "x+"
629
+ ],
630
+ "ILIM": [
631
+ "x-",
632
+ "x+"
633
+ ],
634
+ "ITERM": [
635
+ "x-",
636
+ "x+"
637
+ ],
638
+ "TMR": [
639
+ "x-",
640
+ "x+"
641
+ ],
642
+ "BAT_SRC": [
643
+ "x-",
644
+ "x+"
645
+ ],
646
+ "BAT_PROBE_SRC": [
647
+ "x-",
648
+ "x+"
649
+ ]
650
+ },
651
+ "maxMspPairDistance": 2.4
652
+ }
@@ -0,0 +1,12 @@
1
+ import { expect, test } from "bun:test"
2
+ import { SchematicTracePipelineSolver } from "lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver"
3
+ import inputProblem from "./bug-report-20260707T134549Z.json"
4
+ import "tests/fixtures/matcher"
5
+
6
+ test("bug-report-20260707T134549Z", () => {
7
+ const solver = new SchematicTracePipelineSolver(inputProblem as any)
8
+
9
+ solver.solve()
10
+
11
+ expect(solver).toMatchSolverSnapshot(import.meta.path)
12
+ })