@tscircuit/schematic-trace-solver 0.0.180 → 0.0.181

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 (132) hide show
  1. package/dist/index.js +24 -9
  2. package/lib/solvers/SameNetJunctionAlignmentSolver/alignSameNetJunctions.ts +29 -11
  3. package/package.json +1 -1
  4. package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +2 -114
  5. package/tests/bug-reports/bug-report-20260706T213649Z/bug-report-20260706T213649Z.json +1 -0
  6. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +3 -94
  7. package/tests/bug-reports/bug-report-20260706T220324Z/bug-report-20260706T220324Z.json +1 -0
  8. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +533 -578
  9. package/tests/bug-reports/bug-report-20260707T092615Z/bug-report-20260707T092615Z.json +1 -0
  10. package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +2 -37
  11. package/tests/bug-reports/bug-report-20260707T134549Z/bug-report-20260707T134549Z.json +1 -0
  12. package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +4 -25
  13. package/tests/bug-reports/bug-report-20260707T134722Z/bug-report-20260707T134722Z.json +1 -0
  14. package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +1 -50
  15. package/tests/bug-reports/bug-report-20260707T140410Z/bug-report-20260707T140410Z.json +1 -0
  16. package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +1 -15
  17. package/tests/bug-reports/bug-report-20260707T141025Z/bug-report-20260707T141025Z.json +1 -0
  18. package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +5 -33
  19. package/tests/bug-reports/bug-report-20260707T141421Z/bug-report-20260707T141421Z.json +1 -0
  20. package/tests/bug-reports/bug-report-20260707T230831Z/__snapshots__/bug-report-20260707T230831Z.snap.svg +1 -15
  21. package/tests/bug-reports/bug-report-20260707T230831Z/bug-report-20260707T230831Z.json +1 -0
  22. package/tests/bug-reports/bug-report-20260708T055430Z/__snapshots__/bug-report-20260708T055430Z.snap.svg +65 -79
  23. package/tests/bug-reports/bug-report-20260708T055430Z/bug-report-20260708T055430Z.json +1 -0
  24. package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +1 -15
  25. package/tests/bug-reports/bug-report-20260708T095725Z/bug-report-20260708T095725Z.json +1 -0
  26. package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +1 -43
  27. package/tests/bug-reports/bug-report-20260716T144856Z/bug-report-20260716T144856Z.json +1 -0
  28. package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +2 -30
  29. package/tests/bug-reports/bug-report-20260717T022934Z/bug-report-20260717T022934Z.json +1 -0
  30. package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +1 -8
  31. package/tests/bug-reports/bug-report-20260717T031704Z/bug-report-20260717T031704Z.json +1 -0
  32. package/tests/bug-reports/bug-report-20260721T221026Z/__snapshots__/bug-report-20260721T221026Z.snap.svg +1 -92
  33. package/tests/bug-reports/bug-report-20260721T221026Z/bug-report-20260721T221026Z.json +1 -0
  34. package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +1 -29
  35. package/tests/bug-reports/bug-report-20260728T144234Z/bug-report-20260728T144234Z.json +1 -0
  36. package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +1 -22
  37. package/tests/bug-reports/bug-report-20260728T225606Z/bug-report-20260728T225606Z.json +1 -0
  38. package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +1 -8
  39. package/tests/bug-reports/bug-report-20260730T061837Z/bug-report-20260730T061837Z.json +1 -0
  40. package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +1 -36
  41. package/tests/bug-reports/bug-report-20260804T095800Z/bug-report-20260804T095800Z.json +1 -0
  42. package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +2 -121
  43. package/tests/bug-reports/bug-report-20260804T171919Z/bug-report-20260804T171919Z.json +1 -0
  44. package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +1 -8
  45. package/tests/bug-reports/bug-report-20260804T225912Z/bug-report-20260804T225912Z.json +1 -0
  46. package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +1 -15
  47. package/tests/bug-reports/bug-report-20260805T061316Z/bug-report-20260805T061316Z.json +1 -0
  48. package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +1 -15
  49. package/tests/bug-reports/bug-report-20260806T061548Z/bug-report-20260806T061548Z.json +1 -0
  50. package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +1 -22
  51. package/tests/bug-reports/bug-report-20260806T093501Z/bug-report-20260806T093501Z.json +1 -0
  52. package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +1 -8
  53. package/tests/bug-reports/bug-report-20260811T075142Z/bug-report-20260811T075142Z.json +1 -0
  54. package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +1 -22
  55. package/tests/bug-reports/bug-report-20260815T073240Z/bug-report-20260815T073240Z.json +1 -0
  56. package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +1 -15
  57. package/tests/bug-reports/bug-report-20260819T091818Z/bug-report-20260819T091818Z.json +1 -0
  58. package/tests/bug-reports/bug-report-20260825T103621Z/__snapshots__/bug-report-20260825T103621Z.snap.svg +1 -29
  59. package/tests/bug-reports/bug-report-20260825T103621Z/bug-report-20260825T103621Z.json +1 -0
  60. package/tests/bug-reports/bug-report-20260826T072956Z/__snapshots__/bug-report-20260826T072956Z.snap.svg +31 -95
  61. package/tests/bug-reports/bug-report-20260826T072956Z/bug-report-20260826T072956Z.json +1 -0
  62. package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +1 -113
  63. package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +1 -29
  64. package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +64 -56
  65. package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +1 -15
  66. package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +1 -22
  67. package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +185 -186
  68. package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +1 -15
  69. package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +1 -15
  70. package/tests/repros/__snapshots__/repro-board-8090-power-section.snap.svg +126 -0
  71. package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +1 -29
  72. package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +1 -8
  73. package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +1 -15
  74. package/tests/repros/__snapshots__/repro-example35-minimize-trace-crossing.snap.svg +1 -8
  75. package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +1 -22
  76. package/tests/repros/__snapshots__/repro-isolated-rs485-isow7841.snap.svg +2 -2
  77. package/tests/repros/__snapshots__/repro-mcp73831-charger-traces.snap.svg +131 -0
  78. package/tests/repros/__snapshots__/repro-missing-trace-netlabel.snap.svg +1 -15
  79. package/tests/repros/__snapshots__/repro-mouse-switch-ground-unnecessary-jog.snap.svg +83 -0
  80. package/tests/repros/__snapshots__/repro-mspm0l1306-capacitor-symmetry.snap.svg +1 -29
  81. package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +1 -8
  82. package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +1 -29
  83. package/tests/repros/__snapshots__/repro-pmp11282-isolated-dcdc.snap.svg +2 -2
  84. package/tests/repros/__snapshots__/repro-powerbank-3v-system-power.snap.svg +1 -29
  85. package/tests/repros/__snapshots__/repro-rf1-unnecessary-dogleg.snap.svg +72 -0
  86. package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +1 -8
  87. package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +1 -8
  88. package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +1 -8
  89. package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +991 -1091
  90. package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +2 -2
  91. package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +1 -15
  92. package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +1 -22
  93. package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +1 -15
  94. package/tests/repros/__snapshots__/small-variant-resistor-facing-direction.snap.svg +65 -79
  95. package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +1 -8
  96. package/tests/repros/assets/board-1273-trace-overlap-cycle.input.json +1 -0
  97. package/tests/repros/assets/board-15984-schematic-trace-input.json +1 -0
  98. package/tests/repros/assets/bugreport-001-gnd-overlap.input.json +1 -0
  99. package/tests/repros/assets/repro-atmega328p-fault-pullup.input.json +1 -0
  100. package/tests/repros/assets/repro-atmega328p-missing-gnd-netlabel.input.json +1 -0
  101. package/tests/repros/assets/repro-board-589-regulator-section.input.json +1 -0
  102. package/tests/repros/assets/repro-board-648-esp12f-section.input.json +1 -0
  103. package/tests/repros/assets/repro-board-8090-power-section.input.json +322 -0
  104. package/tests/repros/assets/repro-bq24074-battery-charger.input.json +1 -0
  105. package/tests/repros/assets/repro-bq25895-cross-net-trace-overlap.input.json +1 -0
  106. package/tests/repros/assets/repro-cc2340r5.input.json +1 -0
  107. package/tests/repros/assets/repro-example35-minimize-trace-crossing.input.json +1 -0
  108. package/tests/repros/assets/repro-ina237-current-monitor.input.json +1 -0
  109. package/tests/repros/assets/repro-mcp73831-charger-traces.input.json +256 -0
  110. package/tests/repros/assets/repro-missing-trace-netlabel.input.json +1 -0
  111. package/tests/repros/assets/repro-mouse-switch-ground-unnecessary-jog.input.json +158 -0
  112. package/tests/repros/assets/repro-mspm0l1306-capacitor-symmetry.input.json +1 -0
  113. package/tests/repros/assets/repro-netlabel-connector-through-label.input.json +1 -0
  114. package/tests/repros/assets/repro-netlabel-overlap-trace.input.json +1 -0
  115. package/tests/repros/assets/repro-nrf52810-clock-routing.input.json +1 -0
  116. package/tests/repros/assets/repro-powerbank-3v-system-power.input.json +1 -0
  117. package/tests/repros/assets/repro-rf1-unnecessary-dogleg.input.json +90 -0
  118. package/tests/repros/assets/repro-rp2040-gamepad-trace-alignment.input.json +1 -0
  119. package/tests/repros/assets/repro-rp2040-usb-cc2-ground-overlap.input.json +1 -0
  120. package/tests/repros/assets/repro-tps61222-trace-intersection.input.json +1 -0
  121. package/tests/repros/assets/repro-usb-power-vbus-label-detour.input.json +1 -0
  122. package/tests/repros/assets/repro126-trace-overlap-box-resistor.input.json +1 -0
  123. package/tests/repros/assets/repro161-power-section-autolayout.input.json +1 -0
  124. package/tests/repros/assets/repro48-555-timer-vcc-rail-label.input.json +1 -0
  125. package/tests/repros/assets/repro51-overlap-junction-crossing.input.json +1 -0
  126. package/tests/repros/assets/small-variant-resistor-facing-direction.input.json +1 -0
  127. package/tests/repros/board1096-usb-label-overlap-iteration.json +1 -0
  128. package/tests/repros/board1096-usb-label-overlap-iteration.test.ts +1 -1
  129. package/tests/repros/repro-board-8090-power-section.test.ts +18 -0
  130. package/tests/repros/repro-mcp73831-charger-traces.test.ts +16 -0
  131. package/tests/repros/repro-mouse-switch-ground-unnecessary-jog.test.ts +15 -0
  132. package/tests/repros/repro-rf1-unnecessary-dogleg.test.ts +15 -0
@@ -0,0 +1,256 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_0",
5
+ "center": {
6
+ "x": -39,
7
+ "y": 0
8
+ },
9
+ "width": 2.760000000000005,
10
+ "height": 0.6,
11
+ "pins": [
12
+ {
13
+ "pinId": "schematic_port_0",
14
+ "displayName": "STAT",
15
+ "x": -37.62,
16
+ "y": -0.1
17
+ },
18
+ {
19
+ "pinId": "schematic_port_1",
20
+ "displayName": "VSS",
21
+ "x": -40.38,
22
+ "y": 0
23
+ },
24
+ {
25
+ "pinId": "schematic_port_2",
26
+ "displayName": "VBAT",
27
+ "x": -37.62,
28
+ "y": 0.1
29
+ },
30
+ {
31
+ "pinId": "schematic_port_3",
32
+ "displayName": "VDD",
33
+ "x": -40.38,
34
+ "y": 0.2
35
+ },
36
+ {
37
+ "pinId": "schematic_port_4",
38
+ "displayName": "PROG",
39
+ "x": -40.38,
40
+ "y": -0.2
41
+ }
42
+ ],
43
+ "sectionId": "UsbCharging"
44
+ },
45
+ {
46
+ "chipId": "schematic_component_1",
47
+ "center": {
48
+ "x": -39,
49
+ "y": -4
50
+ },
51
+ "width": 1.5600000000000023,
52
+ "height": 0.6800000000000002,
53
+ "pins": [
54
+ {
55
+ "pinId": "schematic_port_5",
56
+ "displayName": "anode",
57
+ "x": -39.78,
58
+ "y": -4,
59
+ "_facingDirection": "x-"
60
+ },
61
+ {
62
+ "pinId": "schematic_port_6",
63
+ "displayName": "cathode",
64
+ "x": -38.22,
65
+ "y": -4,
66
+ "_facingDirection": "x+"
67
+ }
68
+ ],
69
+ "sectionId": "UsbCharging"
70
+ },
71
+ {
72
+ "chipId": "schematic_component_2",
73
+ "center": {
74
+ "x": -33.447500000000005,
75
+ "y": -3
76
+ },
77
+ "width": 2.0050000000000026,
78
+ "height": 0.7600000000000007,
79
+ "pins": [
80
+ {
81
+ "pinId": "schematic_port_7",
82
+ "displayName": "anode",
83
+ "x": -34,
84
+ "y": -2.6199999999999997,
85
+ "_facingDirection": "y+"
86
+ },
87
+ {
88
+ "pinId": "schematic_port_8",
89
+ "displayName": "cathode",
90
+ "x": -34,
91
+ "y": -3.3800000000000003,
92
+ "_facingDirection": "y-"
93
+ }
94
+ ],
95
+ "sectionId": "UsbCharging"
96
+ },
97
+ {
98
+ "chipId": "schematic_component_3",
99
+ "center": {
100
+ "x": -35.04,
101
+ "y": 3
102
+ },
103
+ "width": 1.4399999999999977,
104
+ "height": 0.6800000000000006,
105
+ "pins": [
106
+ {
107
+ "pinId": "schematic_port_9",
108
+ "displayName": "anode",
109
+ "x": -35.76,
110
+ "y": 3,
111
+ "_facingDirection": "x-"
112
+ },
113
+ {
114
+ "pinId": "schematic_port_10",
115
+ "displayName": "cathode",
116
+ "x": -34.32,
117
+ "y": 3,
118
+ "_facingDirection": "x+"
119
+ }
120
+ ],
121
+ "sectionId": "UsbCharging"
122
+ },
123
+ {
124
+ "chipId": "schematic_component_4",
125
+ "center": {
126
+ "x": -30,
127
+ "y": 3
128
+ },
129
+ "width": 1.2000000000000028,
130
+ "height": 1.1800000000000006,
131
+ "pins": [
132
+ {
133
+ "pinId": "schematic_port_11",
134
+ "displayName": "anode",
135
+ "x": -30.6,
136
+ "y": 3,
137
+ "_facingDirection": "x-"
138
+ },
139
+ {
140
+ "pinId": "schematic_port_12",
141
+ "displayName": "cathode",
142
+ "x": -29.4,
143
+ "y": 3,
144
+ "_facingDirection": "x+"
145
+ }
146
+ ],
147
+ "sectionId": "UsbCharging"
148
+ }
149
+ ],
150
+ "directConnections": [
151
+ {
152
+ "netId": "CHG_PROG",
153
+ "netLabelWidth": 1.08,
154
+ "anchoredNetLabelWidth": 1.08,
155
+ "allowInlineNetLabel": true,
156
+ "inlineNetLabelHeight": 0.12,
157
+ "inlineNetLabelWidth": 0.72,
158
+ "pinIds": [
159
+ "schematic_port_4",
160
+ "schematic_port_5"
161
+ ]
162
+ },
163
+ {
164
+ "netId": "CHG_LED",
165
+ "netLabelWidth": 0.96,
166
+ "anchoredNetLabelWidth": 0.96,
167
+ "allowInlineNetLabel": true,
168
+ "inlineNetLabelHeight": 0.12,
169
+ "inlineNetLabelWidth": 0.64,
170
+ "pinIds": [
171
+ "schematic_port_10",
172
+ "schematic_port_11"
173
+ ]
174
+ },
175
+ {
176
+ "netId": "CHG_STAT",
177
+ "netLabelWidth": 1.08,
178
+ "anchoredNetLabelWidth": 1.08,
179
+ "allowInlineNetLabel": true,
180
+ "inlineNetLabelHeight": 0.12,
181
+ "inlineNetLabelWidth": 0.72,
182
+ "pinIds": [
183
+ "schematic_port_12",
184
+ "schematic_port_0"
185
+ ]
186
+ }
187
+ ],
188
+ "netConnections": [
189
+ {
190
+ "netId": "GND",
191
+ "isGround": true,
192
+ "netLabelWidth": 0.42,
193
+ "netLabelHeight": 0.48,
194
+ "pinIds": [
195
+ "schematic_port_1",
196
+ "schematic_port_6",
197
+ "schematic_port_8"
198
+ ]
199
+ },
200
+ {
201
+ "netId": "VBAT",
202
+ "isGround": false,
203
+ "netLabelWidth": 0.42,
204
+ "netLabelHeight": 0.6,
205
+ "pinIds": [
206
+ "schematic_port_2",
207
+ "schematic_port_7"
208
+ ]
209
+ },
210
+ {
211
+ "netId": "VBUS",
212
+ "isGround": false,
213
+ "netLabelWidth": 0.42,
214
+ "netLabelHeight": 0.6,
215
+ "pinIds": [
216
+ "schematic_port_3",
217
+ "schematic_port_9"
218
+ ]
219
+ }
220
+ ],
221
+ "textBoxes": [
222
+ {
223
+ "chipId": "schematic_component_0",
224
+ "center": {
225
+ "x": -38.959999999999994,
226
+ "y": -0.43
227
+ },
228
+ "width": 2.039999999999999,
229
+ "height": 0.18000000000000005,
230
+ "text": "MCP73831T-2ACI/OT"
231
+ },
232
+ {
233
+ "chipId": "schematic_component_0",
234
+ "center": {
235
+ "x": -39.44,
236
+ "y": 0.41500000000000004
237
+ },
238
+ "width": 1.2000000000000028,
239
+ "height": 0.25000000000000006,
240
+ "text": "U_CHARGER"
241
+ }
242
+ ],
243
+ "availableNetLabelOrientations": {
244
+ "VBUS": [
245
+ "y+"
246
+ ],
247
+ "GND": [
248
+ "y-"
249
+ ],
250
+ "VBAT": [
251
+ "y+"
252
+ ]
253
+ },
254
+ "maxMspPairDistance": 2.4,
255
+ "_hideRatsNet": false
256
+ }
@@ -126,6 +126,7 @@
126
126
  },
127
127
  {
128
128
  "netId": "GND",
129
+ "isGround": true,
129
130
  "pinIds": [
130
131
  "SW3.2",
131
132
  "SW2.2"
@@ -0,0 +1,158 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_0",
5
+ "center": {
6
+ "x": -7.690000000000001,
7
+ "y": 4
8
+ },
9
+ "width": 2.0000000000000018,
10
+ "height": 0.40000000000000036,
11
+ "pins": [
12
+ {
13
+ "pinId": "schematic_port_0",
14
+ "displayName": "1",
15
+ "x": -8.690000000000001,
16
+ "y": 4.1
17
+ },
18
+ {
19
+ "pinId": "schematic_port_1",
20
+ "displayName": "2",
21
+ "x": -8.690000000000001,
22
+ "y": 3.9
23
+ },
24
+ {
25
+ "pinId": "schematic_port_2",
26
+ "displayName": "3",
27
+ "x": -6.69,
28
+ "y": 4
29
+ }
30
+ ],
31
+ "sectionId": "MouseInputs"
32
+ },
33
+ {
34
+ "chipId": "schematic_component_1",
35
+ "center": {
36
+ "x": -8.35,
37
+ "y": -4
38
+ },
39
+ "width": 2,
40
+ "height": 0.40000000000000036,
41
+ "pins": [
42
+ {
43
+ "pinId": "schematic_port_3",
44
+ "displayName": "1",
45
+ "x": -9.35,
46
+ "y": -3.9
47
+ },
48
+ {
49
+ "pinId": "schematic_port_4",
50
+ "displayName": "2",
51
+ "x": -9.35,
52
+ "y": -4.1
53
+ },
54
+ {
55
+ "pinId": "schematic_port_5",
56
+ "displayName": "3",
57
+ "x": -7.35,
58
+ "y": -4
59
+ }
60
+ ],
61
+ "sectionId": "MouseInputs"
62
+ }
63
+ ],
64
+ "directConnections": [],
65
+ "netConnections": [
66
+ {
67
+ "netId": "GND",
68
+ "isGround": true,
69
+ "netLabelWidth": 0.42,
70
+ "netLabelHeight": 0.48,
71
+ "pinIds": [
72
+ "schematic_port_0",
73
+ "schematic_port_3"
74
+ ]
75
+ },
76
+ {
77
+ "netId": "LEFT_SW",
78
+ "isGround": false,
79
+ "netLabelWidth": 0.96,
80
+ "anchoredNetLabelWidth": 0.96,
81
+ "allowInlineNetLabel": true,
82
+ "inlineNetLabelHeight": 0.12,
83
+ "inlineNetLabelWidth": 0.64,
84
+ "pinIds": [
85
+ "schematic_port_1"
86
+ ]
87
+ },
88
+ {
89
+ "netId": "RIGHT",
90
+ "isGround": false,
91
+ "netLabelWidth": 0.72,
92
+ "anchoredNetLabelWidth": 0.72,
93
+ "allowInlineNetLabel": true,
94
+ "inlineNetLabelHeight": 0.12,
95
+ "inlineNetLabelWidth": 0.48,
96
+ "pinIds": [
97
+ "schematic_port_4"
98
+ ]
99
+ }
100
+ ],
101
+ "textBoxes": [
102
+ {
103
+ "chipId": "schematic_component_0",
104
+ "center": {
105
+ "x": -7.450000000000001,
106
+ "y": 3.67
107
+ },
108
+ "width": 1.6799999999999997,
109
+ "height": 0.17999999999999972,
110
+ "text": "D2FC-F-7N(20M)"
111
+ },
112
+ {
113
+ "chipId": "schematic_component_0",
114
+ "center": {
115
+ "x": -7.870000000000001,
116
+ "y": 4.3149999999999995
117
+ },
118
+ "width": 0.96,
119
+ "height": 0.2499999999999991,
120
+ "text": "SW_LEFT"
121
+ },
122
+ {
123
+ "chipId": "schematic_component_1",
124
+ "center": {
125
+ "x": -8.11,
126
+ "y": -4.33
127
+ },
128
+ "width": 1.6799999999999997,
129
+ "height": 0.17999999999999972,
130
+ "text": "D2FC-F-7N(20M)"
131
+ },
132
+ {
133
+ "chipId": "schematic_component_1",
134
+ "center": {
135
+ "x": -8.469999999999999,
136
+ "y": -3.6849999999999996
137
+ },
138
+ "width": 1.08,
139
+ "height": 0.24999999999999956,
140
+ "text": "SW_RIGHT"
141
+ }
142
+ ],
143
+ "availableNetLabelOrientations": {
144
+ "GND": [
145
+ "y-"
146
+ ],
147
+ "LEFT_SW": [
148
+ "x-",
149
+ "x+"
150
+ ],
151
+ "RIGHT": [
152
+ "x-",
153
+ "x+"
154
+ ]
155
+ },
156
+ "maxMspPairDistance": 20,
157
+ "_hideRatsNet": false
158
+ }
@@ -454,6 +454,7 @@
454
454
  },
455
455
  {
456
456
  "netId": "GND",
457
+ "isGround": true,
457
458
  "netLabelWidth": 0.42,
458
459
  "netLabelHeight": 0.48,
459
460
  "pinIds": [
@@ -121,6 +121,7 @@
121
121
  "netConnections": [
122
122
  {
123
123
  "netId": "GND",
124
+ "isGround": true,
124
125
  "pinIds": ["U1.3", "U1.13", "U1.18", "U1.29", "J2.3", "J3.3"],
125
126
  "netLabelWidth": 0.48
126
127
  },
@@ -85,6 +85,7 @@
85
85
  "netConnections": [
86
86
  {
87
87
  "netId": "GND",
88
+ "isGround": true,
88
89
  "pinIds": [
89
90
  "B1.2",
90
91
  "C3.2"
@@ -198,6 +198,7 @@
198
198
  "netConnections": [
199
199
  {
200
200
  "netId": "GND",
201
+ "isGround": true,
201
202
  "netLabelWidth": 0.42,
202
203
  "netLabelHeight": 0.48,
203
204
  "pinIds": [
@@ -822,6 +822,7 @@
822
822
  },
823
823
  {
824
824
  "netId": "GND",
825
+ "isGround": true,
825
826
  "netLabelWidth": 0.42,
826
827
  "netLabelHeight": 0.48,
827
828
  "pinIds": [
@@ -0,0 +1,90 @@
1
+ {
2
+ "chips": [
3
+ {
4
+ "chipId": "schematic_component_0",
5
+ "center": {
6
+ "x": 2.9979,
7
+ "y": -6.961574540324975
8
+ },
9
+ "width": 0.8041999999999998,
10
+ "height": 0.07685091935005062,
11
+ "pins": [
12
+ {
13
+ "pinId": "schematic_port_0",
14
+ "displayName": "2",
15
+ "x": 3.4,
16
+ "y": -7
17
+ },
18
+ {
19
+ "pinId": "schematic_port_1",
20
+ "displayName": "1",
21
+ "x": 2.6,
22
+ "y": -7
23
+ }
24
+ ],
25
+ "sectionId": "RadioFrontEnd"
26
+ },
27
+ {
28
+ "chipId": "schematic_component_1",
29
+ "center": {
30
+ "x": 6,
31
+ "y": -7
32
+ },
33
+ "width": 1.6840291999999977,
34
+ "height": 0.8677406999999988,
35
+ "pins": [
36
+ {
37
+ "pinId": "schematic_port_2",
38
+ "displayName": "anode",
39
+ "x": 5.157985400000001,
40
+ "y": -6.997375450000001,
41
+ "_facingDirection": "x-"
42
+ },
43
+ {
44
+ "pinId": "schematic_port_3",
45
+ "displayName": "cathode",
46
+ "x": 6.842014599999999,
47
+ "y": -7.00262455,
48
+ "_facingDirection": "x+"
49
+ }
50
+ ],
51
+ "sectionId": "RadioFrontEnd"
52
+ }
53
+ ],
54
+ "directConnections": [
55
+ {
56
+ "netId": "RF1",
57
+ "anchoredNetLabelWidth": 0.48,
58
+ "allowInlineNetLabel": true,
59
+ "inlineNetLabelHeight": 0.12,
60
+ "inlineNetLabelWidth": 0.32,
61
+ "pinIds": [
62
+ "schematic_port_0",
63
+ "schematic_port_2"
64
+ ]
65
+ }
66
+ ],
67
+ "netConnections": [
68
+ {
69
+ "netId": "RF_OUT",
70
+ "isGround": false,
71
+ "netLabelWidth": 0.84,
72
+ "anchoredNetLabelWidth": 0.84,
73
+ "allowInlineNetLabel": true,
74
+ "inlineNetLabelHeight": 0.12,
75
+ "inlineNetLabelWidth": 0.56,
76
+ "pinIds": [
77
+ "schematic_port_1"
78
+ ]
79
+ }
80
+ ],
81
+ "textBoxes": [],
82
+ "availableNetLabelOrientations": {
83
+ "RF_OUT": [
84
+ "x-",
85
+ "x+"
86
+ ]
87
+ },
88
+ "maxMspPairDistance": 2.4,
89
+ "_hideRatsNet": false
90
+ }
@@ -186,6 +186,7 @@
186
186
  },
187
187
  {
188
188
  "netId": "GND",
189
+ "isGround": true,
189
190
  "pinIds": [
190
191
  "J2.3",
191
192
  "J2.8",
@@ -105,6 +105,7 @@
105
105
  "netConnections": [
106
106
  {
107
107
  "netId": "GND",
108
+ "isGround": true,
108
109
  "netLabelWidth": 0.42,
109
110
  "netLabelHeight": 0.48,
110
111
  "pinIds": [
@@ -142,6 +142,7 @@
142
142
  },
143
143
  {
144
144
  "netId": "GND",
145
+ "isGround": true,
145
146
  "pinIds": [
146
147
  "U2.3",
147
148
  "C25.2",
@@ -2125,6 +2125,7 @@
2125
2125
  "netConnections": [
2126
2126
  {
2127
2127
  "netId": "GND",
2128
+ "isGround": true,
2128
2129
  "netLabelWidth": 0.42,
2129
2130
  "netLabelHeight": 0.48,
2130
2131
  "pinIds": [
@@ -63,6 +63,7 @@
63
63
  "netConnections": [
64
64
  {
65
65
  "netId": "GND",
66
+ "isGround": true,
66
67
  "pinIds": ["U1.3", "R2.2"],
67
68
  "netLabelWidth": 0.48
68
69
  }
@@ -442,6 +442,7 @@
442
442
  },
443
443
  {
444
444
  "netId": "GND",
445
+ "isGround": true,
445
446
  "netLabelWidth": 0.42,
446
447
  "netLabelHeight": 0.48,
447
448
  "pinIds": [
@@ -194,6 +194,7 @@
194
194
  "netConnections": [
195
195
  {
196
196
  "netId": "GND",
197
+ "isGround": true,
197
198
  "netLabelWidth": 0.42,
198
199
  "netLabelHeight": 0.48,
199
200
  "pinIds": [
@@ -82,6 +82,7 @@
82
82
  "netConnections": [
83
83
  {
84
84
  "netId": "GND",
85
+ "isGround": true,
85
86
  "pinIds": ["U1.1", "J1.3"],
86
87
  "netLabelWidth": 0.48,
87
88
  "netLabelHeight": 0.42
@@ -231,6 +231,7 @@
231
231
  "netConnections": [
232
232
  {
233
233
  "netId": "GND",
234
+ "isGround": true,
234
235
  "pinIds": [
235
236
  "U_MCU.3",
236
237
  "U_MCU.5",
@@ -550,6 +550,7 @@
550
550
  "netConnections": [
551
551
  {
552
552
  "netId": "GND",
553
+ "isGround": true,
553
554
  "netLabelWidth": 0.42,
554
555
  "netLabelHeight": 0.48,
555
556
  "pinIds": [
@@ -11,6 +11,6 @@ test("board1096 USB section stops retrying failed merged-label overlaps", () =>
11
11
  expect(solver.solved).toBe(true)
12
12
  expect(solver.failed).toBe(false)
13
13
  expect(solver.error).toBe(null)
14
- expect(solver.traceLabelOverlapAvoidanceSolver?.iterations).toBe(31)
14
+ expect(solver.traceLabelOverlapAvoidanceSolver?.iterations).toBe(30)
15
15
  expect(solver).toMatchSolverSnapshot(import.meta.path)
16
16
  })
@@ -0,0 +1,18 @@
1
+ import { expect, test } from "bun:test"
2
+ import { SchematicTracePipelineSolver } from "lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver"
3
+ import type { InputProblem } from "lib/types/InputProblem"
4
+ import "tests/fixtures/matcher"
5
+ import inputProblem from "./assets/repro-board-8090-power-section.input.json"
6
+
7
+ // Isolated from board 8090's power section: battery and solar inputs,
8
+ // BAT54S selection, MCP1700 regulation, and the three local support components.
9
+ test("board 8090 power section routing", () => {
10
+ const solver = new SchematicTracePipelineSolver(inputProblem as InputProblem)
11
+
12
+ solver.solve()
13
+
14
+ expect(
15
+ solver.sameNetJunctionAlignmentSolver?.stats.alignedJunctionCount,
16
+ ).toBe(1)
17
+ expect(solver).toMatchSolverSnapshot(import.meta.path)
18
+ })