@tscircuit/schematic-trace-solver 0.0.100 → 0.0.102

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 (34) hide show
  1. package/dist/index.d.ts +13 -6
  2. package/dist/index.js +219 -67
  3. package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/SchematicTraceSingleLineSolver2.ts +26 -7
  4. package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/generateEndpointCollisionDetours.ts +5 -2
  5. package/lib/solvers/TraceOverlapShiftSolver/TraceOverlapIssueSolver/TraceOverlapIssueSolver.ts +168 -24
  6. package/lib/solvers/TraceOverlapShiftSolver/TraceOverlapShiftSolver.ts +128 -48
  7. package/package.json +1 -1
  8. package/site/bug-reports/bug-report-20260716T144856Z.page.tsx +4 -0
  9. package/site/bug-reports/bug-report-20260717T022934Z.page.tsx +4 -0
  10. package/site/bug-reports/bug-report-20260717T031704Z.page.tsx +4 -0
  11. package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +3 -3
  12. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +3 -3
  13. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +5 -5
  14. package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +3 -3
  15. package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +149 -0
  16. package/tests/bug-reports/bug-report-20260716T144856Z/bug-report-20260716T144856Z.json +693 -0
  17. package/tests/bug-reports/bug-report-20260716T144856Z/bug-report-20260716T144856Z.test.ts +12 -0
  18. package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +130 -0
  19. package/tests/bug-reports/bug-report-20260717T022934Z/bug-report-20260717T022934Z.json +543 -0
  20. package/tests/bug-reports/bug-report-20260717T022934Z/bug-report-20260717T022934Z.test.ts +12 -0
  21. package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +48 -0
  22. package/tests/bug-reports/bug-report-20260717T031704Z/bug-report-20260717T031704Z.json +77 -0
  23. package/tests/bug-reports/bug-report-20260717T031704Z/bug-report-20260717T031704Z.test.ts +12 -0
  24. package/tests/examples/__snapshots__/example11.snap.svg +19 -23
  25. package/tests/examples/__snapshots__/example19.snap.svg +3 -5
  26. package/tests/examples/__snapshots__/example29.snap.svg +13 -13
  27. package/tests/examples/__snapshots__/example37.snap.svg +4 -2
  28. package/tests/examples/example16.test.ts +22 -0
  29. package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +2 -8
  30. package/tests/repros/__snapshots__/repro47-endpoint-obstacle-detour.snap.svg +19 -23
  31. package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +10 -10
  32. package/tests/repros/repro47-endpoint-obstacle-detour.test.ts +32 -2
  33. package/tests/solvers/SchematicTraceSingleLineSolver2/generate-endpoint-collision-detours.test.ts +37 -0
  34. package/tests/solvers/TraceOverlapShiftSolver/TraceOverlapShiftSolver.test.ts +174 -0
@@ -0,0 +1,693 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_0",
5
+ "center": {
6
+ "x": 0,
7
+ "y": 0
8
+ },
9
+ "width": 2.8,
10
+ "height": 1.2000000000000002,
11
+ "pins": [
12
+ {
13
+ "pinId": "U1.1",
14
+ "x": -1.4,
15
+ "y": 0.4
16
+ },
17
+ {
18
+ "pinId": "U1.2",
19
+ "x": -1.4,
20
+ "y": 0.2
21
+ },
22
+ {
23
+ "pinId": "U1.3",
24
+ "x": -1.4,
25
+ "y": 0
26
+ },
27
+ {
28
+ "pinId": "U1.4",
29
+ "x": -1.4,
30
+ "y": -0.20000000000000007
31
+ },
32
+ {
33
+ "pinId": "U1.5",
34
+ "x": -1.4,
35
+ "y": -0.4
36
+ },
37
+ {
38
+ "pinId": "U1.6",
39
+ "x": 1.4,
40
+ "y": -0.4
41
+ },
42
+ {
43
+ "pinId": "U1.7",
44
+ "x": 1.4,
45
+ "y": -0.2
46
+ },
47
+ {
48
+ "pinId": "U1.8",
49
+ "x": 1.4,
50
+ "y": 0
51
+ },
52
+ {
53
+ "pinId": "U1.9",
54
+ "x": 1.4,
55
+ "y": 0.20000000000000007
56
+ },
57
+ {
58
+ "pinId": "U1.10",
59
+ "x": 1.4,
60
+ "y": 0.4
61
+ }
62
+ ]
63
+ },
64
+ {
65
+ "chipId": "schematic_component_1",
66
+ "center": {
67
+ "x": -5.8675,
68
+ "y": -0.5
69
+ },
70
+ "width": 1.165,
71
+ "height": 0.7600000000000001,
72
+ "pins": [
73
+ {
74
+ "pinId": "C1.1",
75
+ "x": -6,
76
+ "y": -0.11999999999999994,
77
+ "_facingDirection": "y+"
78
+ },
79
+ {
80
+ "pinId": "C1.2",
81
+ "x": -6,
82
+ "y": -0.8800000000000001,
83
+ "_facingDirection": "y-"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "chipId": "schematic_component_2",
89
+ "center": {
90
+ "x": -2.8674999999999997,
91
+ "y": -0.5
92
+ },
93
+ "width": 1.1650000000000005,
94
+ "height": 0.7600000000000001,
95
+ "pins": [
96
+ {
97
+ "pinId": "C2.1",
98
+ "x": -3,
99
+ "y": -0.11999999999999994,
100
+ "_facingDirection": "y+"
101
+ },
102
+ {
103
+ "pinId": "C2.2",
104
+ "x": -3,
105
+ "y": -0.8800000000000001,
106
+ "_facingDirection": "y-"
107
+ }
108
+ ]
109
+ },
110
+ {
111
+ "chipId": "schematic_component_3",
112
+ "center": {
113
+ "x": 2.4325,
114
+ "y": -0.5
115
+ },
116
+ "width": 1.1650000000000003,
117
+ "height": 0.7600000000000001,
118
+ "pins": [
119
+ {
120
+ "pinId": "C3.1",
121
+ "x": 2.3,
122
+ "y": -0.11999999999999994,
123
+ "_facingDirection": "y+"
124
+ },
125
+ {
126
+ "pinId": "C3.2",
127
+ "x": 2.3,
128
+ "y": -0.8800000000000001,
129
+ "_facingDirection": "y-"
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "chipId": "schematic_component_4",
135
+ "center": {
136
+ "x": 3.0125,
137
+ "y": 0
138
+ },
139
+ "width": 0.9250000000000003,
140
+ "height": 0.76,
141
+ "pins": [
142
+ {
143
+ "pinId": "C4.1",
144
+ "x": 3,
145
+ "y": 0.38,
146
+ "_facingDirection": "y+"
147
+ },
148
+ {
149
+ "pinId": "C4.2",
150
+ "x": 3,
151
+ "y": -0.38,
152
+ "_facingDirection": "y-"
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ "chipId": "schematic_component_5",
158
+ "center": {
159
+ "x": 8.855,
160
+ "y": 1
161
+ },
162
+ "width": 1.209999999999999,
163
+ "height": 0.6000000000000001,
164
+ "pins": [
165
+ {
166
+ "pinId": "R3.1",
167
+ "x": 8.7,
168
+ "y": 0.7,
169
+ "_facingDirection": "y-"
170
+ },
171
+ {
172
+ "pinId": "R3.2",
173
+ "x": 8.7,
174
+ "y": 1.3,
175
+ "_facingDirection": "y+"
176
+ }
177
+ ]
178
+ },
179
+ {
180
+ "chipId": "schematic_component_6",
181
+ "center": {
182
+ "x": 7.455,
183
+ "y": 1
184
+ },
185
+ "width": 1.2100000000000009,
186
+ "height": 0.6000000000000001,
187
+ "pins": [
188
+ {
189
+ "pinId": "R4.1",
190
+ "x": 7.3,
191
+ "y": 0.7,
192
+ "_facingDirection": "y-"
193
+ },
194
+ {
195
+ "pinId": "R4.2",
196
+ "x": 7.3,
197
+ "y": 1.3,
198
+ "_facingDirection": "y+"
199
+ }
200
+ ]
201
+ },
202
+ {
203
+ "chipId": "schematic_component_7",
204
+ "center": {
205
+ "x": 5.535,
206
+ "y": -9.5
207
+ },
208
+ "width": 0.9700000000000006,
209
+ "height": 0.6000000000000014,
210
+ "pins": [
211
+ {
212
+ "pinId": "R5.1",
213
+ "x": 5.5,
214
+ "y": -9.2,
215
+ "_facingDirection": "y+"
216
+ },
217
+ {
218
+ "pinId": "R5.2",
219
+ "x": 5.5,
220
+ "y": -9.8,
221
+ "_facingDirection": "y-"
222
+ }
223
+ ]
224
+ },
225
+ {
226
+ "chipId": "schematic_component_8",
227
+ "center": {
228
+ "x": 5.625,
229
+ "y": -11
230
+ },
231
+ "width": 0.8700000000000001,
232
+ "height": 1.0799999999999983,
233
+ "pins": [
234
+ {
235
+ "pinId": "D2.1",
236
+ "x": 5.5,
237
+ "y": -10.46,
238
+ "_facingDirection": "y+"
239
+ },
240
+ {
241
+ "pinId": "D2.2",
242
+ "x": 5.5,
243
+ "y": -11.54,
244
+ "_facingDirection": "y-"
245
+ }
246
+ ]
247
+ },
248
+ {
249
+ "chipId": "schematic_component_9",
250
+ "center": {
251
+ "x": 8,
252
+ "y": 2
253
+ },
254
+ "width": 0.9000000000000004,
255
+ "height": 0.5549999999999999,
256
+ "pins": [
257
+ {
258
+ "pinId": "JP1.1",
259
+ "x": 8.45,
260
+ "y": 1.9000000000000001
261
+ },
262
+ {
263
+ "pinId": "JP1.2",
264
+ "x": 8,
265
+ "y": 2.2775
266
+ },
267
+ {
268
+ "pinId": "JP1.3",
269
+ "x": 7.55,
270
+ "y": 1.9
271
+ }
272
+ ]
273
+ },
274
+ {
275
+ "chipId": "schematic_component_10",
276
+ "center": {
277
+ "x": 5.5,
278
+ "y": -8
279
+ },
280
+ "width": 0.3041464999999999,
281
+ "height": 0.8999999999999995,
282
+ "pins": [
283
+ {
284
+ "pinId": "JP2.1",
285
+ "x": 5.4999378,
286
+ "y": -8.45,
287
+ "_facingDirection": "y-"
288
+ },
289
+ {
290
+ "pinId": "JP2.2",
291
+ "x": 5.5000622,
292
+ "y": -7.550000000000001,
293
+ "_facingDirection": "y+"
294
+ }
295
+ ]
296
+ },
297
+ {
298
+ "chipId": "schematic_component_11",
299
+ "center": {
300
+ "x": -3.1,
301
+ "y": 1.5
302
+ },
303
+ "width": 0.9000000000000004,
304
+ "height": 0.30414649999999943,
305
+ "pins": [
306
+ {
307
+ "pinId": "JP3.1",
308
+ "x": -3.5500000000000003,
309
+ "y": 1.5000622000000001,
310
+ "_facingDirection": "x-"
311
+ },
312
+ {
313
+ "pinId": "JP3.2",
314
+ "x": -2.65,
315
+ "y": 1.4999378,
316
+ "_facingDirection": "x+"
317
+ }
318
+ ]
319
+ },
320
+ {
321
+ "chipId": "schematic_component_12",
322
+ "center": {
323
+ "x": -1,
324
+ "y": -8
325
+ },
326
+ "width": 1.5,
327
+ "height": 1,
328
+ "pins": [
329
+ {
330
+ "pinId": "JP6.1",
331
+ "x": -1.75,
332
+ "y": -8.3
333
+ },
334
+ {
335
+ "pinId": "JP6.2",
336
+ "x": -1.75,
337
+ "y": -8.1
338
+ },
339
+ {
340
+ "pinId": "JP6.3",
341
+ "x": -1.75,
342
+ "y": -7.9
343
+ },
344
+ {
345
+ "pinId": "JP6.4",
346
+ "x": -1.75,
347
+ "y": -7.7
348
+ }
349
+ ]
350
+ },
351
+ {
352
+ "chipId": "schematic_component_13",
353
+ "center": {
354
+ "x": -4,
355
+ "y": -8
356
+ },
357
+ "width": 1.5,
358
+ "height": 1,
359
+ "pins": [
360
+ {
361
+ "pinId": "JP7.1",
362
+ "x": -4.75,
363
+ "y": -8.3
364
+ },
365
+ {
366
+ "pinId": "JP7.2",
367
+ "x": -4.75,
368
+ "y": -8.1
369
+ },
370
+ {
371
+ "pinId": "JP7.3",
372
+ "x": -4.75,
373
+ "y": -7.9
374
+ },
375
+ {
376
+ "pinId": "JP7.4",
377
+ "x": -4.75,
378
+ "y": -7.7
379
+ }
380
+ ]
381
+ },
382
+ {
383
+ "chipId": "schematic_component_14",
384
+ "center": {
385
+ "x": -4,
386
+ "y": -13
387
+ },
388
+ "width": 1.5,
389
+ "height": 0.6000000000000014,
390
+ "pins": [
391
+ {
392
+ "pinId": "JP4.1",
393
+ "x": -4.75,
394
+ "y": -12.9
395
+ },
396
+ {
397
+ "pinId": "JP4.2",
398
+ "x": -4.75,
399
+ "y": -13.1
400
+ }
401
+ ]
402
+ },
403
+ {
404
+ "chipId": "schematic_component_15",
405
+ "center": {
406
+ "x": -4,
407
+ "y": -11
408
+ },
409
+ "width": 1.5,
410
+ "height": 1,
411
+ "pins": [
412
+ {
413
+ "pinId": "JP5.1",
414
+ "x": -4.75,
415
+ "y": -11.3
416
+ },
417
+ {
418
+ "pinId": "JP5.2",
419
+ "x": -4.75,
420
+ "y": -11.1
421
+ },
422
+ {
423
+ "pinId": "JP5.3",
424
+ "x": -4.75,
425
+ "y": -10.9
426
+ },
427
+ {
428
+ "pinId": "JP5.4",
429
+ "x": -4.75,
430
+ "y": -10.7
431
+ }
432
+ ]
433
+ }
434
+ ],
435
+ "directConnections": [
436
+ {
437
+ "pinIds": [
438
+ "U1.1",
439
+ "JP3.2"
440
+ ],
441
+ "netId": ".U1 > .pin1 to .JP3 > .pin2"
442
+ },
443
+ {
444
+ "pinIds": [
445
+ "U1.1",
446
+ "C2.1"
447
+ ],
448
+ "netId": ".U1 > .pin1 to .C2 > .pin1"
449
+ },
450
+ {
451
+ "pinIds": [
452
+ "C1.1",
453
+ "JP3.1"
454
+ ],
455
+ "netId": ".C1 > .pin1 to .JP3 > .pin1"
456
+ },
457
+ {
458
+ "pinIds": [
459
+ "C3.1",
460
+ "U1.9"
461
+ ],
462
+ "netId": ".C3 > .pin1 to .U1 > .pin9"
463
+ },
464
+ {
465
+ "pinIds": [
466
+ "C3.2",
467
+ "U1.8"
468
+ ],
469
+ "netId": ".C3 > .pin2 to .U1 > .pin8"
470
+ },
471
+ {
472
+ "pinIds": [
473
+ "C4.1",
474
+ "U1.10"
475
+ ],
476
+ "netId": ".C4 > .pin1 to .U1 > .pin10"
477
+ },
478
+ {
479
+ "pinIds": [
480
+ "R5.2",
481
+ "D2.1"
482
+ ],
483
+ "netId": ".R5 > .pin2 to .D2 > .pin1"
484
+ },
485
+ {
486
+ "pinIds": [
487
+ "JP1.3",
488
+ "R4.2"
489
+ ],
490
+ "netId": ".JP1 > .pin3 to .R4 > .pin2"
491
+ },
492
+ {
493
+ "pinIds": [
494
+ "JP1.1",
495
+ "R3.2"
496
+ ],
497
+ "netId": ".JP1 > .pin1 to .R3 > .pin2"
498
+ },
499
+ {
500
+ "pinIds": [
501
+ "JP2.1",
502
+ "R5.1"
503
+ ],
504
+ "netId": ".JP2 > .pin1 to .R5 > .pin1"
505
+ },
506
+ {
507
+ "pinIds": [
508
+ "JP3.1",
509
+ "U1.2"
510
+ ],
511
+ "netId": ".JP3 > .pin1 to .U1 > .pin2"
512
+ }
513
+ ],
514
+ "netConnections": [
515
+ {
516
+ "netId": "ADC_REF",
517
+ "pinIds": [
518
+ "U1.1",
519
+ "C2.1",
520
+ "JP3.2",
521
+ "JP4.2"
522
+ ],
523
+ "netLabelWidth": 0.96
524
+ },
525
+ {
526
+ "netId": "V3_3",
527
+ "pinIds": [
528
+ "U1.2",
529
+ "C1.1",
530
+ "JP1.2",
531
+ "JP2.2",
532
+ "JP3.1",
533
+ "JP6.2",
534
+ "JP7.2",
535
+ "JP5.2"
536
+ ],
537
+ "netLabelWidth": 0.42,
538
+ "netLabelHeight": 0.6
539
+ },
540
+ {
541
+ "netId": "GND",
542
+ "pinIds": [
543
+ "U1.3",
544
+ "C1.2",
545
+ "C2.2",
546
+ "C4.2",
547
+ "D2.2",
548
+ "JP6.1",
549
+ "JP7.1",
550
+ "JP5.1"
551
+ ],
552
+ "netLabelWidth": 0.42,
553
+ "netLabelHeight": 0.48
554
+ },
555
+ {
556
+ "netId": "SDA",
557
+ "pinIds": [
558
+ "U1.6",
559
+ "R3.1",
560
+ "JP6.3",
561
+ "JP7.3",
562
+ "JP5.3"
563
+ ],
564
+ "netLabelWidth": 0.48
565
+ },
566
+ {
567
+ "netId": "SCL",
568
+ "pinIds": [
569
+ "U1.7",
570
+ "R4.1",
571
+ "JP6.4",
572
+ "JP7.4",
573
+ "JP5.4"
574
+ ],
575
+ "netLabelWidth": 0.48
576
+ },
577
+ {
578
+ "netId": "VCM",
579
+ "pinIds": [
580
+ "JP4.1"
581
+ ],
582
+ "netLabelWidth": 0.42,
583
+ "netLabelHeight": 0.48
584
+ }
585
+ ],
586
+ "textBoxes": [
587
+ {
588
+ "chipId": "schematic_component_0",
589
+ "center": {
590
+ "x": -0.3400000000000001,
591
+ "y": -0.7300000000000001
592
+ },
593
+ "width": 1.3199999999999998,
594
+ "height": 0.17999999999999994,
595
+ "text": "FS3000_1015"
596
+ },
597
+ {
598
+ "chipId": "schematic_component_0",
599
+ "center": {
600
+ "x": -0.88,
601
+ "y": 0.7150000000000001
602
+ },
603
+ "width": 0.3600000000000001,
604
+ "height": 0.25,
605
+ "text": "U1"
606
+ },
607
+ {
608
+ "chipId": "schematic_component_12",
609
+ "center": {
610
+ "x": -0.2100000000000002,
611
+ "y": -8.63
612
+ },
613
+ "width": 2.28,
614
+ "height": 0.17999999999999972,
615
+ "text": "SM04B_SRSS_TB_LF_SN"
616
+ },
617
+ {
618
+ "chipId": "schematic_component_12",
619
+ "center": {
620
+ "x": -1.1700000000000002,
621
+ "y": -7.385
622
+ },
623
+ "width": 0.48,
624
+ "height": 0.2499999999999991,
625
+ "text": "JP6"
626
+ },
627
+ {
628
+ "chipId": "schematic_component_13",
629
+ "center": {
630
+ "x": -3.21,
631
+ "y": -8.63
632
+ },
633
+ "width": 2.28,
634
+ "height": 0.17999999999999972,
635
+ "text": "SM04B_SRSS_TB_LF_SN"
636
+ },
637
+ {
638
+ "chipId": "schematic_component_13",
639
+ "center": {
640
+ "x": -4.17,
641
+ "y": -7.385
642
+ },
643
+ "width": 0.47999999999999954,
644
+ "height": 0.2499999999999991,
645
+ "text": "JP7"
646
+ },
647
+ {
648
+ "chipId": "schematic_component_14",
649
+ "center": {
650
+ "x": -4.17,
651
+ "y": -12.584999999999999
652
+ },
653
+ "width": 0.47999999999999954,
654
+ "height": 0.25,
655
+ "text": "JP4"
656
+ },
657
+ {
658
+ "chipId": "schematic_component_15",
659
+ "center": {
660
+ "x": -4.17,
661
+ "y": -10.385
662
+ },
663
+ "width": 0.47999999999999954,
664
+ "height": 0.25,
665
+ "text": "JP5"
666
+ }
667
+ ],
668
+ "availableNetLabelOrientations": {
669
+ "SCL": [
670
+ "x-",
671
+ "x+"
672
+ ],
673
+ "SDA": [
674
+ "x-",
675
+ "x+"
676
+ ],
677
+ "GND": [
678
+ "y-"
679
+ ],
680
+ "V3_3": [
681
+ "y+"
682
+ ],
683
+ "ADC_REF": [
684
+ "x-",
685
+ "x+"
686
+ ],
687
+ "VCM": [
688
+ "y+"
689
+ ]
690
+ },
691
+ "maxMspPairDistance": 2.4,
692
+ "_hideRatsNet": false
693
+ }
@@ -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-20260716T144856Z.json"
4
+ import "tests/fixtures/matcher"
5
+
6
+ test("bug-report-20260716T144856Z", () => {
7
+ const solver = new SchematicTracePipelineSolver(inputProblem as any)
8
+
9
+ solver.solve()
10
+
11
+ expect(solver).toMatchSolverSnapshot(import.meta.path)
12
+ })