@tscircuit/schematic-trace-solver 0.0.46 → 0.0.48

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 (21) hide show
  1. package/dist/index.d.ts +18 -16
  2. package/dist/index.js +228 -122
  3. package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +2 -0
  4. package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver_visualize.ts +12 -0
  5. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.ts +89 -61
  6. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/rerouteCollidingTrace.ts +16 -5
  7. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/OverlapAvoidanceStepSolver/OverlapAvoidanceStepSolver.ts +27 -16
  8. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/OverlapAvoidanceStepSolver/doesTraceStartOrEndInLabel.ts +58 -0
  9. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/SingleOverlapSolver/SingleOverlapSolver.ts +13 -1
  10. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/tryFourPointDetour.ts +110 -60
  11. package/package.json +1 -1
  12. package/site/examples/example27.page.tsx +4 -0
  13. package/site/examples/example28.page.tsx +61 -0
  14. package/tests/assets/example27.json +168 -0
  15. package/tests/examples/__snapshots__/example03.snap.svg +67 -67
  16. package/tests/examples/__snapshots__/example16.snap.svg +3 -3
  17. package/tests/examples/__snapshots__/example28.snap.svg +23 -189
  18. package/tests/examples/__snapshots__/example30.snap.svg +258 -0
  19. package/tests/examples/example28.test.ts +2 -3
  20. package/tests/examples/example30.test.ts +12 -0
  21. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +9 -6
@@ -1,217 +1,51 @@
1
1
  <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg">
2
2
  <rect width="100%" height="100%" fill="white" />
3
3
  <g>
4
- <circle data-type="point" data-label="V1.1
5
- y+" data-x="-5.005" data-y="2.54" cx="55.35329792453959" cy="253.89930298391727" r="3" fill="hsl(230, 100%, 50%, 0.8)" />
4
+ <circle data-type="point" data-label="IN
5
+ x-" data-x="-0.3" data-y="0.1" cx="208.14913448735018" cy="347.96271637816244" r="3" fill="hsl(181, 100%, 50%, 0.8)" />
6
6
  </g>
7
7
  <g>
8
- <circle data-type="point" data-label="V1.2
9
- y-" data-x="-4.995" data-y="1.46" cx="55.841125946798485" cy="306.58472938787986" r="3" fill="hsl(231, 100%, 50%, 0.8)" />
8
+ <circle data-type="point" data-label="GND
9
+ x-" data-x="-0.3" data-y="0" cx="208.14913448735018" cy="385.2463382157124" r="3" fill="hsl(157, 100%, 50%, 0.8)" />
10
10
  </g>
11
11
  <g>
12
- <circle data-type="point" data-label="L1.1
13
- x-" data-x="-0.58" data-y="2.98" cx="271.2171977741087" cy="232.4348700045251" r="3" fill="hsl(40, 100%, 50%, 0.8)" />
12
+ <circle data-type="point" data-label="EN
13
+ x-" data-x="-0.3" data-y="-0.1" cx="208.14913448735018" cy="422.52996005326236" r="3" fill="hsl(57, 100%, 50%, 0.8)" />
14
14
  </g>
15
15
  <g>
16
- <circle data-type="point" data-label="L1.2
17
- x+" data-x="0.58" data-y="2.97" cx="327.8052483561426" cy="232.922698026784" r="3" fill="hsl(41, 100%, 50%, 0.8)" />
16
+ <circle data-type="point" data-label="OUT
17
+ x+" data-x="0.3" data-y="0.1" cx="431.8508655126498" cy="347.96271637816244" r="3" fill="hsl(158, 100%, 50%, 0.8)" />
18
18
  </g>
19
19
  <g>
20
- <circle data-type="point" data-label="D1.1
21
- x-" data-x="2.48" data-y="3" cx="420.4925725853361" cy="231.45921396000725" r="3" fill="hsl(32, 100%, 50%, 0.8)" />
20
+ <circle data-type="point" data-label="NC
21
+ x+" data-x="0.3" data-y="0" cx="431.8508655126498" cy="385.2463382157124" r="3" fill="hsl(325, 100%, 50%, 0.8)" />
22
22
  </g>
23
23
  <g>
24
- <circle data-type="point" data-label="D1.2
25
- x+" data-x="3.52" data-y="3" cx="471.2266869002631" cy="231.45921396000725" r="3" fill="hsl(33, 100%, 50%, 0.8)" />
24
+ <circle data-type="point" data-label="" data-x="-0.4" data-y="0.1" cx="170.86551264980025" cy="347.96271637816244" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
26
25
  </g>
27
26
  <g>
28
- <circle data-type="point" data-label="C1.2
29
- y-" data-x="3" data-y="-0.49500000000000005" cx="445.8596297427996" cy="401.9551077394974" r="3" fill="hsl(122, 100%, 50%, 0.8)" />
27
+ <circle data-type="point" data-label="" data-x="-0.3" data-y="0" cx="208.14913448735018" cy="385.2463382157124" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
30
28
  </g>
31
29
  <g>
32
- <circle data-type="point" data-label="C1.1
33
- y+" data-x="3" data-y="0.49500000000000005" cx="445.8596297427996" cy="353.66013353586504" r="3" fill="hsl(121, 100%, 50%, 0.8)" />
30
+ <circle data-type="point" data-label="" data-x="0.3" data-y="0.1" cx="431.8508655126498" cy="347.96271637816244" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
34
31
  </g>
35
32
  <g>
36
- <circle data-type="point" data-label="R1.1
37
- y+" data-x="6" data-y="0.55" cx="592.2080364204736" cy="350.977079413441" r="3" fill="hsl(226, 100%, 50%, 0.8)" />
33
+ <polyline data-points="-0.3,0.1 -0.3,-0.1" data-type="line" data-label="" points="208.14913448735018,347.96271637816244 208.14913448735018,422.52996005326236" fill="none" stroke="hsl(325, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
38
34
  </g>
39
35
  <g>
40
- <circle data-type="point" data-label="R1.2
41
- y-" data-x="6" data-y="-0.55" cx="592.2080364204736" cy="404.63816186192145" r="3" fill="hsl(227, 100%, 50%, 0.8)" />
36
+ <polyline data-points="-0.3,0.1 -0.5,0.1 -0.5,-0.1 -0.3,-0.1" data-type="line" data-label="" points="208.14913448735018,347.96271637816244 133.58189081225032,347.96271637816244 133.58189081225032,422.52996005326236 208.14913448735018,422.52996005326236" fill="none" stroke="purple" stroke-width="1" />
42
37
  </g>
43
38
  <g>
44
- <circle data-type="point" data-label="V2.1
45
- y+" data-x="-2.9999378" data-y="0.4458008" cx="153.16585067775011" cy="356.06020837913707" r="3" fill="hsl(111, 100%, 50%, 0.8)" />
39
+ <rect data-type="rect" data-label="1" data-x="0" data-y="0" x="208.14913448735018" y="310.67909454061254" width="223.70173102529964" height="149.13448735019972" fill="hsl(49, 100%, 50%, 0.8)" stroke="black" stroke-width="0.002682142857142857" />
46
40
  </g>
47
41
  <g>
48
- <circle data-type="point" data-label="V2.2
49
- y-" data-x="-3.0000622" data-y="-0.4458008" cx="153.15978209715323" cy="399.5550328962254" r="3" fill="hsl(112, 100%, 50%, 0.8)" />
42
+ <rect data-type="rect" data-label="" data-x="-0.4" data-y="0.325" x="133.58189081225032" y="180.18641810918774" width="74.56724367509986" height="167.7762982689747" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.002682142857142857" />
50
43
  </g>
51
44
  <g>
52
- <circle data-type="point" data-label="M1.1
53
- y+" data-x="0.3" data-y="0.58" cx="314.146063732893" cy="349.51359534666426" r="3" fill="hsl(311, 100%, 50%, 0.8)" />
45
+ <rect data-type="rect" data-label="" data-x="-0.526" data-y="0" x="40" y="347.96271637816244" width="167.77629826897467" height="74.56724367509992" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.002682142857142857" />
54
46
  </g>
55
47
  <g>
56
- <circle data-type="point" data-label="M1.2
57
- y-" data-x="0.31" data-y="-0.58" cx="314.633891755152" cy="406.1016459286982" r="3" fill="hsl(312, 100%, 50%, 0.8)" />
58
- </g>
59
- <g>
60
- <circle data-type="point" data-label="M1.3
61
- x-" data-x="-0.445" data-y="-0.1" cx="277.802876074604" cy="382.68590086027035" r="3" fill="hsl(313, 100%, 50%, 0.8)" />
62
- </g>
63
- <g>
64
- <circle data-type="point" data-label="" data-x="-5.005" data-y="2.7600000000000002" cx="55.35329792453959" cy="243.16708649422117" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
65
- </g>
66
- <g>
67
- <circle data-type="point" data-label="" data-x="3" data-y="-0.78" cx="445.8596297427996" cy="415.85820637387644" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
68
- </g>
69
- <g>
70
- <circle data-type="point" data-label="" data-x="6" data-y="-0.55" cx="592.2080364204736" cy="404.63816186192145" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
71
- </g>
72
- <g>
73
- <circle data-type="point" data-label="" data-x="-4.995" data-y="-0.6458008" cx="55.841125946798485" cy="409.31159334140364" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
74
- </g>
75
- <g>
76
- <circle data-type="point" data-label="" data-x="1.055" data-y="2.97" cx="350.977079413441" cy="232.922698026784" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
77
- </g>
78
- <g>
79
- <circle data-type="point" data-label="" data-x="0.3" data-y="0.58" cx="314.146063732893" cy="349.51359534666426" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
80
- </g>
81
- <g>
82
- <circle data-type="point" data-label="" data-x="3.7199999999999998" data-y="3" cx="480.9832473454413" cy="231.45921396000725" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
83
- </g>
84
- <g>
85
- <circle data-type="point" data-label="" data-x="6" data-y="0.55" cx="592.2080364204736" cy="350.977079413441" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
86
- </g>
87
- <g>
88
- <circle data-type="point" data-label="" data-x="-1.08373445" data-y="-0.09999999999999987" cx="246.64361972539055" cy="382.68590086027035" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
89
- </g>
90
- <g>
91
- <polyline data-points="-5.005,2.54 -0.58,2.98" data-type="line" data-label="" points="55.35329792453959,253.89930298391727 271.2171977741087,232.4348700045251" fill="none" stroke="hsl(136, 100%, 50%, 0.8)" stroke-width="1" />
92
- </g>
93
- <g>
94
- <polyline data-points="0.58,2.97 2.48,3" data-type="line" data-label="" points="327.8052483561426,232.922698026784 420.4925725853361,231.45921396000725" fill="none" stroke="hsl(112, 100%, 50%, 0.8)" stroke-width="1" />
95
- </g>
96
- <g>
97
- <polyline data-points="3.52,3 3,0.49500000000000005" data-type="line" data-label="" points="471.2266869002631,231.45921396000725 445.8596297427996,353.66013353586504" fill="none" stroke="hsl(128, 100%, 50%, 0.8)" stroke-width="1" />
98
- </g>
99
- <g>
100
- <polyline data-points="3.52,3 6,0.55" data-type="line" data-label="" points="471.2266869002631,231.45921396000725 592.2080364204736,350.977079413441" fill="none" stroke="hsl(128, 100%, 50%, 0.8)" stroke-width="1" />
101
- </g>
102
- <g>
103
- <polyline data-points="3,-0.49500000000000005 6,-0.55" data-type="line" data-label="" points="445.8596297427996,401.9551077394974 592.2080364204736,404.63816186192145" fill="none" stroke="hsl(136, 100%, 50%, 0.8)" stroke-width="1" />
104
- </g>
105
- <g>
106
- <polyline data-points="6,-0.55 -4.995,1.46" data-type="line" data-label="" points="592.2080364204736,404.63816186192145 55.841125946798485,306.58472938787986" fill="none" stroke="hsl(72, 100%, 50%, 0.8)" stroke-width="1" />
107
- </g>
108
- <g>
109
- <polyline data-points="0.58,2.97 0.3,0.58" data-type="line" data-label="" points="327.8052483561426,232.922698026784 314.146063732893,349.51359534666426" fill="none" stroke="hsl(112, 100%, 50%, 0.8)" stroke-width="1" />
110
- </g>
111
- <g>
112
- <polyline data-points="0.31,-0.58 -4.995,1.46" data-type="line" data-label="" points="314.633891755152,406.1016459286982 55.841125946798485,306.58472938787986" fill="none" stroke="hsl(184, 100%, 50%, 0.8)" stroke-width="1" />
113
- </g>
114
- <g>
115
- <polyline data-points="-0.445,-0.1 -2.9999378,0.4458008" data-type="line" data-label="" points="277.802876074604,382.68590086027035 153.16585067775011,356.06020837913707" fill="none" stroke="hsl(232, 100%, 50%, 0.8)" stroke-width="1" />
116
- </g>
117
- <g>
118
- <polyline data-points="-3.0000622,-0.4458008 -4.995,1.46" data-type="line" data-label="" points="153.15978209715323,399.5550328962254 55.841125946798485,306.58472938787986" fill="none" stroke="hsl(224, 100%, 50%, 0.8)" stroke-width="1" />
119
- </g>
120
- <g>
121
- <polyline data-points="-4.995,1.46 3,-0.49500000000000005" data-type="line" data-label="" points="55.841125946798485,306.58472938787986 445.8596297427996,401.9551077394974" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
122
- </g>
123
- <g>
124
- <polyline data-points="-4.995,1.46 6,-0.55" data-type="line" data-label="" points="55.841125946798485,306.58472938787986 592.2080364204736,404.63816186192145" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
125
- </g>
126
- <g>
127
- <polyline data-points="-4.995,1.46 -3.0000622,-0.4458008" data-type="line" data-label="" points="55.841125946798485,306.58472938787986 153.15978209715323,399.5550328962254" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
128
- </g>
129
- <g>
130
- <polyline data-points="-4.995,1.46 0.31,-0.58" data-type="line" data-label="" points="55.841125946798485,306.58472938787986 314.633891755152,406.1016459286982" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
131
- </g>
132
- <g>
133
- <polyline data-points="3,-0.49500000000000005 6,-0.55" data-type="line" data-label="" points="445.8596297427996,401.9551077394974 592.2080364204736,404.63816186192145" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
134
- </g>
135
- <g>
136
- <polyline data-points="3,-0.49500000000000005 -3.0000622,-0.4458008" data-type="line" data-label="" points="445.8596297427996,401.9551077394974 153.15978209715323,399.5550328962254" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
137
- </g>
138
- <g>
139
- <polyline data-points="3,-0.49500000000000005 0.31,-0.58" data-type="line" data-label="" points="445.8596297427996,401.9551077394974 314.633891755152,406.1016459286982" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
140
- </g>
141
- <g>
142
- <polyline data-points="6,-0.55 -3.0000622,-0.4458008" data-type="line" data-label="" points="592.2080364204736,404.63816186192145 153.15978209715323,399.5550328962254" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
143
- </g>
144
- <g>
145
- <polyline data-points="6,-0.55 0.31,-0.58" data-type="line" data-label="" points="592.2080364204736,404.63816186192145 314.633891755152,406.1016459286982" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
146
- </g>
147
- <g>
148
- <polyline data-points="-3.0000622,-0.4458008 0.31,-0.58" data-type="line" data-label="" points="153.15978209715323,399.5550328962254 314.633891755152,406.1016459286982" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
149
- </g>
150
- <g>
151
- <polyline data-points="0.58,2.97 1.53,2.97 1.53,3 2.48,3" data-type="line" data-label="" points="327.8052483561426,232.922698026784 374.1489104707394,232.922698026784 374.1489104707394,231.45921396000725 420.4925725853361,231.45921396000725" fill="none" stroke="purple" stroke-width="1" />
152
- </g>
153
- <g>
154
- <polyline data-points="-5.005,2.54 -5.005,2.9800000000000004 -0.5800000000000001,2.9800000000000004" data-type="line" data-label="" points="55.35329792453959,253.89930298391727 55.35329792453959,232.43487000452507 271.2171977741087,232.43487000452507" fill="none" stroke="purple" stroke-width="1" />
155
- </g>
156
- <g>
157
- <polyline data-points="3.52,3 3.7199999999999998,3 3.7199999999999998,1.7474999999999996 3,1.7474999999999996 3,0.49500000000000005" data-type="line" data-label="" points="471.2266869002631,231.45921396000725 480.9832473454413,231.45921396000725 480.9832473454413,292.55967374793613 445.8596297427996,292.55967374793613 445.8596297427996,353.66013353586504" fill="none" stroke="purple" stroke-width="1" />
158
- </g>
159
- <g>
160
- <polyline data-points="3,-0.4950000000000001 3,-0.78 0.31,-0.78 0.31,-0.58" data-type="line" data-label="" points="445.8596297427996,401.9551077394974 445.8596297427996,415.85820637387644 314.633891755152,415.85820637387644 314.633891755152,406.1016459286982" fill="none" stroke="purple" stroke-width="1" />
161
- </g>
162
- <g>
163
- <polyline data-points="-4.995,1.46 -4.995,-0.6458008 -3.0000622,-0.6458008 -3.0000622,-0.4458007999999998" data-type="line" data-label="" points="55.841125946798485,306.58472938787986 55.841125946798485,409.31159334140364 153.15978209715323,409.31159334140364 153.15978209715323,399.5550328962253" fill="none" stroke="purple" stroke-width="1" />
164
- </g>
165
- <g>
166
- <polyline data-points="-0.44499999999999984,-0.09999999999999987 -1.7224689,-0.09999999999999987 -1.7224689,0.6458008000000002 -2.9999378,0.6458008000000002 -2.9999378,0.4458008" data-type="line" data-label="" points="277.802876074604,382.68590086027035 215.48436337617707,382.68590086027035 215.48436337617707,346.3036479339588 153.16585067775011,346.3036479339588 153.16585067775011,356.06020837913707" fill="none" stroke="purple" stroke-width="1" />
167
- </g>
168
- <g>
169
- <rect data-type="rect" data-label="schematic_component_0" data-x="-5" data-y="2" x="40" y="253.89930298391727" width="31.194423871338046" height="52.685426403962595" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020499027410714285" />
170
- </g>
171
- <g>
172
- <rect data-type="rect" data-label="schematic_component_1" data-x="0" data-y="3" x="271.2171977741087" y="220.23916944805225" width="56.58805058203393" height="22.44008902391002" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020499027410714285" />
173
- </g>
174
- <g>
175
- <rect data-type="rect" data-label="schematic_component_2" data-x="3" data-y="3" x="420.4925725853361" y="218.28785735901658" width="50.734114314926956" height="26.342713201981326" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020499027410714285" />
176
- </g>
177
- <g>
178
- <rect data-type="rect" data-label="schematic_component_3" data-x="3" data-y="0" x="431.95653110842056" y="353.66013353586504" width="27.80619726875807" height="48.294974203632364" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020499027410714285" />
179
- </g>
180
- <g>
181
- <rect data-type="rect" data-label="schematic_component_4" data-x="6" data-y="0" x="584.4160728409472" y="350.977079413441" width="15.583927159052791" height="53.66108244848044" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020499027410714285" />
182
- </g>
183
- <g>
184
- <rect data-type="rect" data-label="schematic_component_5" data-x="-3" data-y="0" x="143.49775540526844" y="356.06020837913707" width="19.330121964366498" height="43.49482451708832" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020499027410714285" />
185
- </g>
186
- <g>
187
- <rect data-type="rect" data-label="schematic_component_6" data-x="0" data-y="0" x="277.802876074604" y="349.51359534666426" width="43.416693981043295" height="56.58805058203393" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020499027410714285" />
188
- </g>
189
- <g>
190
- <rect data-type="rect" data-label="" data-x="-4.78" data-y="2.7600000000000002" x="55.35329792453959" y="238.288806271632" width="21.95226100165104" height="9.75656044517828" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020499027410714285" />
191
- </g>
192
- <g>
193
- <rect data-type="rect" data-label="" data-x="3" data-y="-0.93" x="440.9813495202105" y="415.85820637387644" width="9.756560445178309" height="14.634840667767435" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020499027410714285" />
194
- </g>
195
- <g>
196
- <rect data-type="rect" data-label="" data-x="6" data-y="-0.7010000000000001" x="587.3297561978845" y="404.68694466414735" width="9.756560445178138" height="14.634840667767378" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020499027410714285" />
197
- </g>
198
- <g>
199
- <rect data-type="rect" data-label="" data-x="-4.995" data-y="-0.7958008" x="50.96284572420936" y="409.31159334140364" width="9.756560445178224" height="14.634840667767378" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020499027410714285" />
200
- </g>
201
- <g>
202
- <rect data-type="rect" data-label="" data-x="1.055" data-y="3.1950000000000003" x="346.0987991908519" y="210.97043702513287" width="9.756560445178252" height="21.952261001651124" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020499027410714285" />
203
- </g>
204
- <g>
205
- <rect data-type="rect" data-label="" data-x="0.3" data-y="0.8059999999999999" x="309.2677835103039" y="327.51255154278726" width="9.756560445178309" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020499027410714285" />
206
- </g>
207
- <g>
208
- <rect data-type="rect" data-label="" data-x="3.7199999999999998" data-y="3.225" x="476.10496712285226" y="209.50695295835615" width="9.756560445178252" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020499027410714285" />
209
- </g>
210
- <g>
211
- <rect data-type="rect" data-label="" data-x="6" data-y="0.776" x="587.3297561978845" y="328.976035609564" width="9.756560445178138" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020499027410714285" />
212
- </g>
213
- <g>
214
- <rect data-type="rect" data-label="" data-x="-1.08373445" data-y="0.12500000000000014" x="241.7653395028014" y="360.73363985861926" width="9.75656044517828" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.020499027410714285" />
48
+ <rect data-type="rect" data-label="" data-x="0.526" data-y="0.1" x="432.22370173102536" y="310.67909454061254" width="167.77629826897464" height="74.56724367509986" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.002682142857142857" />
215
49
  </g>
216
50
  <g id="crosshair" style="display: none">
217
51
  <line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
@@ -241,12 +75,12 @@ x-" data-x="-0.445" data-y="-0.1" cx="277.802876074604" cy="382.68590086027035"
241
75
 
242
76
  // Calculate real coordinates using inverse transformation
243
77
  const matrix = {
244
- "a": 48.782802225891324,
78
+ "a": 372.83621837549936,
245
79
  "c": 0,
246
- "e": 299.51122306512565,
80
+ "e": 320,
247
81
  "b": 0,
248
- "d": -48.782802225891324,
249
- "f": 377.8076206376812
82
+ "d": -372.83621837549936,
83
+ "f": 385.2463382157124
250
84
  };
251
85
  // Manually invert and apply the affine transform
252
86
  // Since we only use translate and scale, we can directly compute:
@@ -0,0 +1,258 @@
1
+ <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="100%" height="100%" fill="white" />
3
+ <g>
4
+ <circle data-type="point" data-label="P.1
5
+ x-" data-x="-0.6000000000000001" data-y="1.0999999999999999" cx="184.51612903225808" cy="112.25806451612902" r="3" fill="hsl(235, 100%, 50%, 0.8)" />
6
+ </g>
7
+ <g>
8
+ <circle data-type="point" data-label="P.2
9
+ x-" data-x="-0.6000000000000001" data-y="0.8999999999999999" cx="184.51612903225808" cy="148.38709677419354" r="3" fill="hsl(236, 100%, 50%, 0.8)" />
10
+ </g>
11
+ <g>
12
+ <circle data-type="point" data-label="P.3
13
+ x-" data-x="-0.6000000000000001" data-y="0.6999999999999998" cx="184.51612903225808" cy="184.51612903225805" r="3" fill="hsl(237, 100%, 50%, 0.8)" />
14
+ </g>
15
+ <g>
16
+ <circle data-type="point" data-label="P.4
17
+ x-" data-x="-0.6000000000000001" data-y="0.4999999999999998" cx="184.51612903225808" cy="220.6451612903226" r="3" fill="hsl(238, 100%, 50%, 0.8)" />
18
+ </g>
19
+ <g>
20
+ <circle data-type="point" data-label="P.5
21
+ x-" data-x="-0.6000000000000001" data-y="0.2999999999999998" cx="184.51612903225808" cy="256.7741935483871" r="3" fill="hsl(239, 100%, 50%, 0.8)" />
22
+ </g>
23
+ <g>
24
+ <circle data-type="point" data-label="P.6
25
+ x-" data-x="-0.6000000000000001" data-y="0.09999999999999987" cx="184.51612903225808" cy="292.9032258064516" r="3" fill="hsl(240, 100%, 50%, 0.8)" />
26
+ </g>
27
+ <g>
28
+ <circle data-type="point" data-label="P.7
29
+ x-" data-x="-0.6000000000000001" data-y="-0.10000000000000009" cx="184.51612903225808" cy="329.0322580645161" r="3" fill="hsl(241, 100%, 50%, 0.8)" />
30
+ </g>
31
+ <g>
32
+ <circle data-type="point" data-label="P.8
33
+ x-" data-x="-0.6000000000000001" data-y="-0.30000000000000004" cx="184.51612903225808" cy="365.1612903225806" r="3" fill="hsl(242, 100%, 50%, 0.8)" />
34
+ </g>
35
+ <g>
36
+ <circle data-type="point" data-label="P.9
37
+ x-" data-x="-0.6000000000000001" data-y="-0.5" cx="184.51612903225808" cy="401.2903225806451" r="3" fill="hsl(243, 100%, 50%, 0.8)" />
38
+ </g>
39
+ <g>
40
+ <circle data-type="point" data-label="P.10
41
+ x-" data-x="-0.6000000000000001" data-y="-0.7" cx="184.51612903225808" cy="437.41935483870964" r="3" fill="hsl(133, 100%, 50%, 0.8)" />
42
+ </g>
43
+ <g>
44
+ <circle data-type="point" data-label="P.11
45
+ x-" data-x="-0.6000000000000001" data-y="-0.8999999999999999" cx="184.51612903225808" cy="473.54838709677415" r="3" fill="hsl(134, 100%, 50%, 0.8)" />
46
+ </g>
47
+ <g>
48
+ <circle data-type="point" data-label="P.12
49
+ x-" data-x="-0.6000000000000001" data-y="-1.0999999999999999" cx="184.51612903225808" cy="509.67741935483866" r="3" fill="hsl(135, 100%, 50%, 0.8)" />
50
+ </g>
51
+ <g>
52
+ <circle data-type="point" data-label="P.13
53
+ x+" data-x="0.6000000000000001" data-y="-1.0999999999999999" cx="401.29032258064524" cy="509.67741935483866" r="3" fill="hsl(136, 100%, 50%, 0.8)" />
54
+ </g>
55
+ <g>
56
+ <circle data-type="point" data-label="P.14
57
+ x+" data-x="0.6000000000000001" data-y="-0.8999999999999999" cx="401.29032258064524" cy="473.54838709677415" r="3" fill="hsl(137, 100%, 50%, 0.8)" />
58
+ </g>
59
+ <g>
60
+ <circle data-type="point" data-label="P.15
61
+ x+" data-x="0.6000000000000001" data-y="-0.6999999999999998" cx="401.29032258064524" cy="437.41935483870964" r="3" fill="hsl(138, 100%, 50%, 0.8)" />
62
+ </g>
63
+ <g>
64
+ <circle data-type="point" data-label="P.16
65
+ x+" data-x="0.6000000000000001" data-y="-0.4999999999999998" cx="401.29032258064524" cy="401.2903225806451" r="3" fill="hsl(139, 100%, 50%, 0.8)" />
66
+ </g>
67
+ <g>
68
+ <circle data-type="point" data-label="P.17
69
+ x+" data-x="0.6000000000000001" data-y="-0.2999999999999998" cx="401.29032258064524" cy="365.1612903225806" r="3" fill="hsl(140, 100%, 50%, 0.8)" />
70
+ </g>
71
+ <g>
72
+ <circle data-type="point" data-label="P.18
73
+ x+" data-x="0.6000000000000001" data-y="-0.09999999999999987" cx="401.29032258064524" cy="329.0322580645161" r="3" fill="hsl(141, 100%, 50%, 0.8)" />
74
+ </g>
75
+ <g>
76
+ <circle data-type="point" data-label="P.19
77
+ x+" data-x="0.6000000000000001" data-y="0.10000000000000009" cx="401.29032258064524" cy="292.9032258064516" r="3" fill="hsl(142, 100%, 50%, 0.8)" />
78
+ </g>
79
+ <g>
80
+ <circle data-type="point" data-label="P.20
81
+ x+" data-x="0.6000000000000001" data-y="0.30000000000000004" cx="401.29032258064524" cy="256.7741935483871" r="3" fill="hsl(164, 100%, 50%, 0.8)" />
82
+ </g>
83
+ <g>
84
+ <circle data-type="point" data-label="P.21
85
+ x+" data-x="0.6000000000000001" data-y="0.5" cx="401.29032258064524" cy="220.64516129032256" r="3" fill="hsl(165, 100%, 50%, 0.8)" />
86
+ </g>
87
+ <g>
88
+ <circle data-type="point" data-label="P.22
89
+ x+" data-x="0.6000000000000001" data-y="0.7" cx="401.29032258064524" cy="184.51612903225805" r="3" fill="hsl(166, 100%, 50%, 0.8)" />
90
+ </g>
91
+ <g>
92
+ <circle data-type="point" data-label="P.23
93
+ x+" data-x="0.6000000000000001" data-y="0.8999999999999999" cx="401.29032258064524" cy="148.38709677419354" r="3" fill="hsl(167, 100%, 50%, 0.8)" />
94
+ </g>
95
+ <g>
96
+ <circle data-type="point" data-label="P.24
97
+ x+" data-x="0.6000000000000001" data-y="1.0999999999999999" cx="401.29032258064524" cy="112.25806451612902" r="3" fill="hsl(168, 100%, 50%, 0.8)" />
98
+ </g>
99
+ <g>
100
+ <circle data-type="point" data-label="" data-x="-0.8" data-y="1.0999999999999999" cx="148.38709677419357" cy="112.25806451612902" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
101
+ </g>
102
+ <g>
103
+ <circle data-type="point" data-label="" data-x="-0.6000000000000001" data-y="0.8999999999999999" cx="184.51612903225808" cy="148.38709677419354" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
104
+ </g>
105
+ <g>
106
+ <circle data-type="point" data-label="" data-x="0.6000000000000001" data-y="-0.2999999999999998" cx="401.29032258064524" cy="365.1612903225806" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
107
+ </g>
108
+ <g>
109
+ <circle data-type="point" data-label="" data-x="-0.6000000000000001" data-y="0.6999999999999998" cx="184.51612903225808" cy="184.51612903225805" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
110
+ </g>
111
+ <g>
112
+ <circle data-type="point" data-label="" data-x="0.6000000000000001" data-y="-0.4999999999999998" cx="401.29032258064524" cy="401.2903225806451" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
113
+ </g>
114
+ <g>
115
+ <circle data-type="point" data-label="" data-x="-0.8755000000000002" data-y="0.4999999999999998" cx="134.7483870967742" cy="220.6451612903226" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
116
+ </g>
117
+ <g>
118
+ <circle data-type="point" data-label="" data-x="-0.6000000000000001" data-y="0.2999999999999998" cx="184.51612903225808" cy="256.7741935483871" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
119
+ </g>
120
+ <g>
121
+ <circle data-type="point" data-label="" data-x="0.6000000000000001" data-y="-0.8999999999999999" cx="401.29032258064524" cy="473.54838709677415" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
122
+ </g>
123
+ <g>
124
+ <circle data-type="point" data-label="" data-x="-0.6000000000000001" data-y="0.09999999999999987" cx="184.51612903225808" cy="292.9032258064516" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
125
+ </g>
126
+ <g>
127
+ <circle data-type="point" data-label="" data-x="0.6000000000000001" data-y="-1.0999999999999999" cx="401.29032258064524" cy="509.67741935483866" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
128
+ </g>
129
+ <g>
130
+ <circle data-type="point" data-label="" data-x="-0.6000000000000001" data-y="-0.10000000000000009" cx="184.51612903225808" cy="329.0322580645161" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
131
+ </g>
132
+ <g>
133
+ <circle data-type="point" data-label="" data-x="0.6000000000000001" data-y="0.10000000000000009" cx="401.29032258064524" cy="292.9032258064516" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
134
+ </g>
135
+ <g>
136
+ <polyline data-points="-0.6000000000000001,1.0999999999999999 0.6000000000000001,-0.09999999999999987" data-type="line" data-label="" points="184.51612903225808,112.25806451612902 401.29032258064524,329.0322580645161" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1" />
137
+ </g>
138
+ <g>
139
+ <polyline data-points="-0.6000000000000001,0.8999999999999999 0.6000000000000001,-0.2999999999999998" data-type="line" data-label="" points="184.51612903225808,148.38709677419354 401.29032258064524,365.1612903225806" fill="none" stroke="hsl(128, 100%, 50%, 0.8)" stroke-width="1" />
140
+ </g>
141
+ <g>
142
+ <polyline data-points="-0.6000000000000001,0.6999999999999998 0.6000000000000001,-0.4999999999999998" data-type="line" data-label="" points="184.51612903225808,184.51612903225805 401.29032258064524,401.2903225806451" fill="none" stroke="hsl(32, 100%, 50%, 0.8)" stroke-width="1" />
143
+ </g>
144
+ <g>
145
+ <polyline data-points="-0.6000000000000001,0.4999999999999998 0.6000000000000001,-0.6999999999999998" data-type="line" data-label="" points="184.51612903225808,220.6451612903226 401.29032258064524,437.41935483870964" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1" />
146
+ </g>
147
+ <g>
148
+ <polyline data-points="-0.6000000000000001,0.2999999999999998 0.6000000000000001,-0.8999999999999999" data-type="line" data-label="" points="184.51612903225808,256.7741935483871 401.29032258064524,473.54838709677415" fill="none" stroke="hsl(104, 100%, 50%, 0.8)" stroke-width="1" />
149
+ </g>
150
+ <g>
151
+ <polyline data-points="-0.6000000000000001,0.09999999999999987 0.6000000000000001,-1.0999999999999999" data-type="line" data-label="" points="184.51612903225808,292.9032258064516 401.29032258064524,509.67741935483866" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1" />
152
+ </g>
153
+ <g>
154
+ <polyline data-points="-0.6000000000000001,-0.10000000000000009 0.6000000000000001,0.10000000000000009" data-type="line" data-label="" points="184.51612903225808,329.0322580645161 401.29032258064524,292.9032258064516" fill="none" stroke="hsl(120, 100%, 50%, 0.8)" stroke-width="1" />
155
+ </g>
156
+ <g>
157
+ <polyline data-points="-0.6000000000000001,1.0999999999999999 -0.8,1.0999999999999999 -0.8,1.4999999999999998 1.1510000000000002,1.4999999999999998 1.1510000000000002,-0.09999999999999992 0.6000000000000001,-0.09999999999999987" data-type="line" data-label="" points="184.51612903225808,112.25806451612902 148.38709677419357,112.25806451612902 148.38709677419357,40 500.82580645161295,40 500.82580645161295,329.0322580645161 401.29032258064524,329.0322580645161" fill="none" stroke="purple" stroke-width="1" />
158
+ </g>
159
+ <g>
160
+ <polyline data-points="-0.6000000000000001,0.4999999999999998 -1.1510000000000002,0.4999999999999998 -1.1510000000000002,-1.6 1.451,-1.6 1.451,-0.6999999999999998 0.6000000000000001,-0.6999999999999998" data-type="line" data-label="" points="184.51612903225808,220.6451612903226 84.98064516129031,220.6451612903226 84.98064516129031,600 555.0193548387097,600 555.0193548387097,437.41935483870964 401.29032258064524,437.41935483870964" fill="none" stroke="purple" stroke-width="1" />
161
+ </g>
162
+ <g>
163
+ <rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="184.51612903225808" y="76.12903225806451" width="216.77419354838716" height="469.67741935483866" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.005535714285714285" />
164
+ </g>
165
+ <g>
166
+ <rect data-type="rect" data-label="" data-x="-0.8" data-y="0.8749999999999999" x="130.3225806451613" y="112.25806451612902" width="36.12903225806451" height="81.29032258064515" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
167
+ </g>
168
+ <g>
169
+ <rect data-type="rect" data-label="" data-x="-0.8260000000000001" data-y="0.8999999999999999" x="103.04516129032257" y="130.32258064516128" width="81.29032258064518" height="36.12903225806451" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
170
+ </g>
171
+ <g>
172
+ <rect data-type="rect" data-label="" data-x="0.8260000000000001" data-y="-0.2999999999999998" x="401.4709677419355" y="347.0967741935483" width="81.29032258064524" height="36.12903225806451" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
173
+ </g>
174
+ <g>
175
+ <rect data-type="rect" data-label="" data-x="-0.8260000000000001" data-y="0.6999999999999998" x="103.04516129032257" y="166.4516129032258" width="81.29032258064518" height="36.12903225806451" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
176
+ </g>
177
+ <g>
178
+ <rect data-type="rect" data-label="" data-x="0.8260000000000001" data-y="-0.4999999999999998" x="401.4709677419355" y="383.2258064516128" width="81.29032258064524" height="36.12903225806451" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
179
+ </g>
180
+ <g>
181
+ <rect data-type="rect" data-label="" data-x="-0.8755000000000002" data-y="0.7249999999999998" x="116.68387096774194" y="139.35483870967744" width="36.12903225806451" height="81.29032258064515" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
182
+ </g>
183
+ <g>
184
+ <rect data-type="rect" data-label="" data-x="-0.8260000000000001" data-y="0.2999999999999998" x="103.04516129032257" y="238.70967741935485" width="81.29032258064518" height="36.12903225806454" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
185
+ </g>
186
+ <g>
187
+ <rect data-type="rect" data-label="" data-x="0.8260000000000001" data-y="-0.8999999999999999" x="401.4709677419355" y="455.4838709677419" width="81.29032258064524" height="36.12903225806451" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
188
+ </g>
189
+ <g>
190
+ <rect data-type="rect" data-label="" data-x="-0.8260000000000001" data-y="0.09999999999999987" x="103.04516129032257" y="274.83870967741933" width="81.29032258064518" height="36.12903225806451" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
191
+ </g>
192
+ <g>
193
+ <rect data-type="rect" data-label="" data-x="0.8260000000000001" data-y="-1.0999999999999999" x="401.4709677419355" y="491.6129032258064" width="81.29032258064524" height="36.12903225806457" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
194
+ </g>
195
+ <g>
196
+ <rect data-type="rect" data-label="" data-x="-0.8260000000000001" data-y="-0.10000000000000009" x="103.04516129032257" y="310.96774193548384" width="81.29032258064518" height="36.12903225806451" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
197
+ </g>
198
+ <g>
199
+ <rect data-type="rect" data-label="" data-x="0.8260000000000001" data-y="0.10000000000000009" x="401.4709677419355" y="274.83870967741933" width="81.29032258064524" height="36.12903225806451" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.005535714285714285" />
200
+ </g>
201
+ <g id="crosshair" style="display: none">
202
+ <line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
203
+ <line id="crosshair-v" x1="0" x2="640" stroke="#666" stroke-width="0.5" /><text id="coordinates" font-family="monospace" font-size="12" fill="#666"></text>
204
+ </g>
205
+ <script>
206
+ <![CDATA[
207
+ document.currentScript.parentElement.addEventListener('mousemove', (e) => {
208
+ const svg = e.currentTarget;
209
+ const rect = svg.getBoundingClientRect();
210
+ const x = e.clientX - rect.left;
211
+ const y = e.clientY - rect.top;
212
+ const crosshair = svg.getElementById('crosshair');
213
+ const h = svg.getElementById('crosshair-h');
214
+ const v = svg.getElementById('crosshair-v');
215
+ const coords = svg.getElementById('coordinates');
216
+
217
+ crosshair.style.display = 'block';
218
+ h.setAttribute('x1', '0');
219
+ h.setAttribute('x2', '640');
220
+ h.setAttribute('y1', y);
221
+ h.setAttribute('y2', y);
222
+ v.setAttribute('x1', x);
223
+ v.setAttribute('x2', x);
224
+ v.setAttribute('y1', '0');
225
+ v.setAttribute('y2', '640');
226
+
227
+ // Calculate real coordinates using inverse transformation
228
+ const matrix = {
229
+ "a": 180.6451612903226,
230
+ "c": 0,
231
+ "e": 292.90322580645164,
232
+ "b": 0,
233
+ "d": -180.6451612903226,
234
+ "f": 310.96774193548384
235
+ };
236
+ // Manually invert and apply the affine transform
237
+ // Since we only use translate and scale, we can directly compute:
238
+ // x' = (x - tx) / sx
239
+ // y' = (y - ty) / sy
240
+ const sx = matrix.a;
241
+ const sy = matrix.d;
242
+ const tx = matrix.e;
243
+ const ty = matrix.f;
244
+ const realPoint = {
245
+ x: (x - tx) / sx,
246
+ y: (y - ty) / sy // Flip y back since we used negative scale
247
+ }
248
+
249
+ coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
250
+ coords.setAttribute('x', (x + 5).toString());
251
+ coords.setAttribute('y', (y - 5).toString());
252
+ });
253
+ document.currentScript.parentElement.addEventListener('mouseleave', () => {
254
+ document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
255
+ });
256
+ ]]>
257
+ </script>
258
+ </svg>
@@ -1,11 +1,10 @@
1
1
  import { test, expect } from "bun:test"
2
- import type { InputProblem } from "lib/index"
3
2
  import { SchematicTracePipelineSolver } from "lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver"
3
+ import { inputProblem } from "site/examples/example28.page"
4
4
  import "tests/fixtures/matcher"
5
- import inputProblem from "../../tests/assets/example25.json"
6
5
 
7
6
  test("example28", () => {
8
- const solver = new SchematicTracePipelineSolver(inputProblem as any)
7
+ const solver = new SchematicTracePipelineSolver(inputProblem)
9
8
 
10
9
  solver.solve()
11
10
 
@@ -0,0 +1,12 @@
1
+ import { test, expect } from "bun:test"
2
+ import { SchematicTracePipelineSolver } from "lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver"
3
+ import "tests/fixtures/matcher"
4
+ import inputProblem from "../assets/example27.json"
5
+
6
+ test("example29", () => {
7
+ const solver = new SchematicTracePipelineSolver(inputProblem as any)
8
+
9
+ solver.solve()
10
+
11
+ expect(solver).toMatchSolverSnapshot(import.meta.path)
12
+ })
@@ -160,25 +160,28 @@ x-" data-x="-0.42" data-y="-0.1" cx="279.0224461302513" cy="382.68590086027035"
160
160
  <rect data-type="rect" data-label="schematic_component_6" data-x="0" data-y="0" x="277.802876074604" y="349.51359534666426" width="43.416693981043295" height="56.58805058203393" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.020499027410714285" />
161
161
  </g>
162
162
  <g>
163
- <rect data-type="rect" data-label="connectivity_net2" data-x="6" data-y="0.776" x="587.3297561978845" y="328.976035609564" width="9.756560445178138" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
163
+ <rect data-type="rect" data-label="connectivity_net0" data-x="-4.78" data-y="2.7600000000000002" x="55.35329792453959" y="238.288806271632" width="21.95226100165104" height="9.75656044517828" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
164
164
  </g>
165
165
  <g>
166
- <rect data-type="rect" data-label="connectivity_net2" data-x="3.7199999999999998" data-y="3.225" x="476.10496712285226" y="209.50695295835615" width="9.756560445178252" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
166
+ <rect data-type="rect" data-label="connectivity_net3" data-x="3" data-y="-0.93" x="440.9813495202105" y="415.85820637387644" width="9.756560445178309" height="14.634840667767435" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
167
167
  </g>
168
168
  <g>
169
- <rect data-type="rect" data-label="connectivity_net1" data-x="0.3" data-y="0.8059999999999999" x="309.2677835103039" y="327.51255154278726" width="9.756560445178309" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
169
+ <rect data-type="rect" data-label="connectivity_net3" data-x="6" data-y="-0.7010000000000001" x="587.3297561978845" y="404.68694466414735" width="9.756560445178138" height="14.634840667767378" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
170
+ </g>
171
+ <g>
172
+ <rect data-type="rect" data-label="connectivity_net3" data-x="-4.995" data-y="-0.7958008" x="50.96284572420936" y="409.31159334140364" width="9.756560445178224" height="14.634840667767378" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
170
173
  </g>
171
174
  <g>
172
175
  <rect data-type="rect" data-label="connectivity_net1" data-x="0.78" data-y="3.1950000000000003" x="332.68352857873174" y="210.97043702513287" width="9.756560445178252" height="21.952261001651124" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
173
176
  </g>
174
177
  <g>
175
- <rect data-type="rect" data-label="connectivity_net3" data-x="6" data-y="-0.7010000000000001" x="587.3297561978845" y="404.68694466414735" width="9.756560445178138" height="14.634840667767378" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
178
+ <rect data-type="rect" data-label="connectivity_net1" data-x="0.3" data-y="0.8059999999999999" x="309.2677835103039" y="327.51255154278726" width="9.756560445178309" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
176
179
  </g>
177
180
  <g>
178
- <rect data-type="rect" data-label="connectivity_net3" data-x="3" data-y="-0.93" x="440.9813495202105" y="415.85820637387644" width="9.756560445178309" height="14.634840667767435" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
181
+ <rect data-type="rect" data-label="connectivity_net2" data-x="3.7199999999999998" data-y="3.225" x="476.10496712285226" y="209.50695295835615" width="9.756560445178252" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
179
182
  </g>
180
183
  <g>
181
- <rect data-type="rect" data-label="connectivity_net0" data-x="-4.78" data-y="2.7600000000000002" x="55.35329792453959" y="238.288806271632" width="21.95226100165104" height="9.75656044517828" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
184
+ <rect data-type="rect" data-label="connectivity_net2" data-x="6" data-y="0.776" x="587.3297561978845" y="328.976035609564" width="9.756560445178138" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />
182
185
  </g>
183
186
  <g>
184
187
  <rect data-type="rect" data-label="connectivity_net4" data-x="-1.08373445" data-y="0.12500000000000014" x="241.7653395028014" y="360.73363985861926" width="9.75656044517828" height="21.952261001651095" fill="hsl(40, 100%, 50%, 0.3)" stroke="hsl(40, 100%, 50%, 1)" stroke-width="0.020499027410714285" />