@tscircuit/schematic-trace-solver 0.0.52 → 0.0.53
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.
- package/dist/index.d.ts +0 -3
- package/dist/index.js +135 -156
- package/lib/solvers/AvailableNetOrientationSolver/AvailableNetOrientationSolver.ts +3 -39
- package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +2 -0
- package/lib/solvers/SchematicTracePipelineSolver/colorAvailableNetOrientationLabels.ts +54 -0
- package/lib/solvers/TraceAnchoredNetLabelOverlapSolver/TraceAnchoredNetLabelOverlapSolver.ts +6 -6
- package/lib/solvers/TraceAnchoredNetLabelOverlapSolver/candidates.ts +63 -105
- package/lib/solvers/TraceAnchoredNetLabelOverlapSolver/geometry.ts +4 -0
- package/lib/solvers/TraceAnchoredNetLabelOverlapSolver/visualize.ts +38 -4
- package/package.json +1 -1
- package/tests/assets/example30.json +4 -1
- package/tests/examples/__snapshots__/example01.snap.svg +6 -3
- package/tests/examples/__snapshots__/example02.snap.svg +8 -4
- package/tests/examples/__snapshots__/example04.snap.svg +4 -2
- package/tests/examples/__snapshots__/example07.snap.svg +10 -5
- package/tests/examples/__snapshots__/example12.snap.svg +8 -4
- package/tests/examples/__snapshots__/example13.snap.svg +16 -8
- package/tests/examples/__snapshots__/example14.snap.svg +16 -8
- package/tests/examples/__snapshots__/example15.snap.svg +18 -9
- package/tests/examples/__snapshots__/example16.snap.svg +8 -4
- package/tests/examples/__snapshots__/example17.snap.svg +9 -5
- package/tests/examples/__snapshots__/example18.snap.svg +10 -5
- package/tests/examples/__snapshots__/example20.snap.svg +6 -3
- package/tests/examples/__snapshots__/example21.snap.svg +17 -12
- package/tests/examples/__snapshots__/example22.snap.svg +8 -4
- package/tests/examples/__snapshots__/example25.snap.svg +18 -9
- package/tests/examples/__snapshots__/example30.snap.svg +74 -62
- package/tests/examples/__snapshots__/example31.snap.svg +2 -1
- package/tests/fixtures/matcher.ts +21 -0
|
@@ -2,225 +2,237 @@
|
|
|
2
2
|
<rect width="100%" height="100%" fill="white" />
|
|
3
3
|
<g>
|
|
4
4
|
<circle data-type="point" data-label="P.1
|
|
5
|
-
x-" data-x="-0.6000000000000001" data-y="1.0999999999999999" cx="
|
|
5
|
+
x-" data-x="-0.6000000000000001" data-y="1.0999999999999999" cx="222" cy="158.99999999999997" r="3" fill="hsl(235, 100%, 50%, 0.8)" />
|
|
6
6
|
</g>
|
|
7
7
|
<g>
|
|
8
8
|
<circle data-type="point" data-label="P.2
|
|
9
|
-
x-" data-x="-0.6000000000000001" data-y="0.8999999999999999" cx="
|
|
9
|
+
x-" data-x="-0.6000000000000001" data-y="0.8999999999999999" cx="222" cy="186.99999999999994" r="3" fill="hsl(236, 100%, 50%, 0.8)" />
|
|
10
10
|
</g>
|
|
11
11
|
<g>
|
|
12
12
|
<circle data-type="point" data-label="P.3
|
|
13
|
-
x-" data-x="-0.6000000000000001" data-y="0.6999999999999998" cx="
|
|
13
|
+
x-" data-x="-0.6000000000000001" data-y="0.6999999999999998" cx="222" cy="214.99999999999997" r="3" fill="hsl(237, 100%, 50%, 0.8)" />
|
|
14
14
|
</g>
|
|
15
15
|
<g>
|
|
16
16
|
<circle data-type="point" data-label="P.4
|
|
17
|
-
x-" data-x="-0.6000000000000001" data-y="0.4999999999999998" cx="
|
|
17
|
+
x-" data-x="-0.6000000000000001" data-y="0.4999999999999998" cx="222" cy="242.99999999999997" r="3" fill="hsl(238, 100%, 50%, 0.8)" />
|
|
18
18
|
</g>
|
|
19
19
|
<g>
|
|
20
20
|
<circle data-type="point" data-label="P.5
|
|
21
|
-
x-" data-x="-0.6000000000000001" data-y="0.2999999999999998" cx="
|
|
21
|
+
x-" data-x="-0.6000000000000001" data-y="0.2999999999999998" cx="222" cy="271" r="3" fill="hsl(239, 100%, 50%, 0.8)" />
|
|
22
22
|
</g>
|
|
23
23
|
<g>
|
|
24
24
|
<circle data-type="point" data-label="P.6
|
|
25
|
-
x-" data-x="-0.6000000000000001" data-y="0.09999999999999987" cx="
|
|
25
|
+
x-" data-x="-0.6000000000000001" data-y="0.09999999999999987" cx="222" cy="298.99999999999994" r="3" fill="hsl(240, 100%, 50%, 0.8)" />
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
28
|
<circle data-type="point" data-label="P.7
|
|
29
|
-
x-" data-x="-0.6000000000000001" data-y="-0.10000000000000009" cx="
|
|
29
|
+
x-" data-x="-0.6000000000000001" data-y="-0.10000000000000009" cx="222" cy="326.99999999999994" r="3" fill="hsl(241, 100%, 50%, 0.8)" />
|
|
30
30
|
</g>
|
|
31
31
|
<g>
|
|
32
32
|
<circle data-type="point" data-label="P.8
|
|
33
|
-
x-" data-x="-0.6000000000000001" data-y="-0.30000000000000004" cx="
|
|
33
|
+
x-" data-x="-0.6000000000000001" data-y="-0.30000000000000004" cx="222" cy="354.99999999999994" r="3" fill="hsl(242, 100%, 50%, 0.8)" />
|
|
34
34
|
</g>
|
|
35
35
|
<g>
|
|
36
36
|
<circle data-type="point" data-label="P.9
|
|
37
|
-
x-" data-x="-0.6000000000000001" data-y="-0.5" cx="
|
|
37
|
+
x-" data-x="-0.6000000000000001" data-y="-0.5" cx="222" cy="382.99999999999994" r="3" fill="hsl(243, 100%, 50%, 0.8)" />
|
|
38
38
|
</g>
|
|
39
39
|
<g>
|
|
40
40
|
<circle data-type="point" data-label="P.10
|
|
41
|
-
x-" data-x="-0.6000000000000001" data-y="-0.7" cx="
|
|
41
|
+
x-" data-x="-0.6000000000000001" data-y="-0.7" cx="222" cy="410.99999999999994" r="3" fill="hsl(133, 100%, 50%, 0.8)" />
|
|
42
42
|
</g>
|
|
43
43
|
<g>
|
|
44
44
|
<circle data-type="point" data-label="P.11
|
|
45
|
-
x-" data-x="-0.6000000000000001" data-y="-0.8999999999999999" cx="
|
|
45
|
+
x-" data-x="-0.6000000000000001" data-y="-0.8999999999999999" cx="222" cy="438.99999999999994" r="3" fill="hsl(134, 100%, 50%, 0.8)" />
|
|
46
46
|
</g>
|
|
47
47
|
<g>
|
|
48
48
|
<circle data-type="point" data-label="P.12
|
|
49
|
-
x-" data-x="-0.6000000000000001" data-y="-1.0999999999999999" cx="
|
|
49
|
+
x-" data-x="-0.6000000000000001" data-y="-1.0999999999999999" cx="222" cy="466.9999999999999" r="3" fill="hsl(135, 100%, 50%, 0.8)" />
|
|
50
50
|
</g>
|
|
51
51
|
<g>
|
|
52
52
|
<circle data-type="point" data-label="P.13
|
|
53
|
-
x+" data-x="0.6000000000000001" data-y="-1.0999999999999999" cx="
|
|
53
|
+
x+" data-x="0.6000000000000001" data-y="-1.0999999999999999" cx="390" cy="466.9999999999999" r="3" fill="hsl(136, 100%, 50%, 0.8)" />
|
|
54
54
|
</g>
|
|
55
55
|
<g>
|
|
56
56
|
<circle data-type="point" data-label="P.14
|
|
57
|
-
x+" data-x="0.6000000000000001" data-y="-0.8999999999999999" cx="
|
|
57
|
+
x+" data-x="0.6000000000000001" data-y="-0.8999999999999999" cx="390" cy="438.99999999999994" r="3" fill="hsl(137, 100%, 50%, 0.8)" />
|
|
58
58
|
</g>
|
|
59
59
|
<g>
|
|
60
60
|
<circle data-type="point" data-label="P.15
|
|
61
|
-
x+" data-x="0.6000000000000001" data-y="-0.6999999999999998" cx="
|
|
61
|
+
x+" data-x="0.6000000000000001" data-y="-0.6999999999999998" cx="390" cy="410.9999999999999" r="3" fill="hsl(138, 100%, 50%, 0.8)" />
|
|
62
62
|
</g>
|
|
63
63
|
<g>
|
|
64
64
|
<circle data-type="point" data-label="P.16
|
|
65
|
-
x+" data-x="0.6000000000000001" data-y="-0.4999999999999998" cx="
|
|
65
|
+
x+" data-x="0.6000000000000001" data-y="-0.4999999999999998" cx="390" cy="382.9999999999999" r="3" fill="hsl(139, 100%, 50%, 0.8)" />
|
|
66
66
|
</g>
|
|
67
67
|
<g>
|
|
68
68
|
<circle data-type="point" data-label="P.17
|
|
69
|
-
x+" data-x="0.6000000000000001" data-y="-0.2999999999999998" cx="
|
|
69
|
+
x+" data-x="0.6000000000000001" data-y="-0.2999999999999998" cx="390" cy="354.9999999999999" r="3" fill="hsl(140, 100%, 50%, 0.8)" />
|
|
70
70
|
</g>
|
|
71
71
|
<g>
|
|
72
72
|
<circle data-type="point" data-label="P.18
|
|
73
|
-
x+" data-x="0.6000000000000001" data-y="-0.09999999999999987" cx="
|
|
73
|
+
x+" data-x="0.6000000000000001" data-y="-0.09999999999999987" cx="390" cy="326.99999999999994" r="3" fill="hsl(141, 100%, 50%, 0.8)" />
|
|
74
74
|
</g>
|
|
75
75
|
<g>
|
|
76
76
|
<circle data-type="point" data-label="P.19
|
|
77
|
-
x+" data-x="0.6000000000000001" data-y="0.10000000000000009" cx="
|
|
77
|
+
x+" data-x="0.6000000000000001" data-y="0.10000000000000009" cx="390" cy="298.99999999999994" r="3" fill="hsl(142, 100%, 50%, 0.8)" />
|
|
78
78
|
</g>
|
|
79
79
|
<g>
|
|
80
80
|
<circle data-type="point" data-label="P.20
|
|
81
|
-
x+" data-x="0.6000000000000001" data-y="0.30000000000000004" cx="
|
|
81
|
+
x+" data-x="0.6000000000000001" data-y="0.30000000000000004" cx="390" cy="270.99999999999994" r="3" fill="hsl(164, 100%, 50%, 0.8)" />
|
|
82
82
|
</g>
|
|
83
83
|
<g>
|
|
84
84
|
<circle data-type="point" data-label="P.21
|
|
85
|
-
x+" data-x="0.6000000000000001" data-y="0.5" cx="
|
|
85
|
+
x+" data-x="0.6000000000000001" data-y="0.5" cx="390" cy="242.99999999999994" r="3" fill="hsl(165, 100%, 50%, 0.8)" />
|
|
86
86
|
</g>
|
|
87
87
|
<g>
|
|
88
88
|
<circle data-type="point" data-label="P.22
|
|
89
|
-
x+" data-x="0.6000000000000001" data-y="0.7" cx="
|
|
89
|
+
x+" data-x="0.6000000000000001" data-y="0.7" cx="390" cy="214.99999999999994" r="3" fill="hsl(166, 100%, 50%, 0.8)" />
|
|
90
90
|
</g>
|
|
91
91
|
<g>
|
|
92
92
|
<circle data-type="point" data-label="P.23
|
|
93
|
-
x+" data-x="0.6000000000000001" data-y="0.8999999999999999" cx="
|
|
93
|
+
x+" data-x="0.6000000000000001" data-y="0.8999999999999999" cx="390" cy="186.99999999999994" r="3" fill="hsl(167, 100%, 50%, 0.8)" />
|
|
94
94
|
</g>
|
|
95
95
|
<g>
|
|
96
96
|
<circle data-type="point" data-label="P.24
|
|
97
|
-
x+" data-x="0.6000000000000001" data-y="1.0999999999999999" cx="
|
|
97
|
+
x+" data-x="0.6000000000000001" data-y="1.0999999999999999" cx="390" cy="158.99999999999997" r="3" fill="hsl(168, 100%, 50%, 0.8)" />
|
|
98
98
|
</g>
|
|
99
99
|
<g>
|
|
100
100
|
<circle data-type="point" data-label="anchorPoint
|
|
101
|
-
orientation:
|
|
101
|
+
orientation: y+" data-x="-0.8" data-y="1.4999999999999998" cx="194" cy="102.99999999999997" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
102
102
|
</g>
|
|
103
103
|
<g>
|
|
104
104
|
<circle data-type="point" data-label="anchorPoint
|
|
105
|
-
orientation: x-" data-x="-0.6000000000000001" data-y="0.8999999999999999" cx="
|
|
105
|
+
orientation: x-" data-x="-0.6000000000000001" data-y="0.8999999999999999" cx="222" cy="186.99999999999994" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
106
106
|
</g>
|
|
107
107
|
<g>
|
|
108
108
|
<circle data-type="point" data-label="anchorPoint
|
|
109
|
-
orientation: x+" data-x="0.6000000000000001" data-y="-0.2999999999999998" cx="
|
|
109
|
+
orientation: x+" data-x="0.6000000000000001" data-y="-0.2999999999999998" cx="390" cy="354.9999999999999" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
110
110
|
</g>
|
|
111
111
|
<g>
|
|
112
112
|
<circle data-type="point" data-label="anchorPoint
|
|
113
|
-
orientation: x-" data-x="-0.6000000000000001" data-y="0.6999999999999998" cx="
|
|
113
|
+
orientation: x-" data-x="-0.6000000000000001" data-y="0.6999999999999998" cx="222" cy="214.99999999999997" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
114
114
|
</g>
|
|
115
115
|
<g>
|
|
116
116
|
<circle data-type="point" data-label="anchorPoint
|
|
117
|
-
orientation: x+" data-x="0.6000000000000001" data-y="-0.4999999999999998" cx="
|
|
117
|
+
orientation: x+" data-x="0.6000000000000001" data-y="-0.4999999999999998" cx="390" cy="382.9999999999999" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
118
118
|
</g>
|
|
119
119
|
<g>
|
|
120
120
|
<circle data-type="point" data-label="anchorPoint
|
|
121
|
-
orientation: y
|
|
121
|
+
orientation: y-" data-x="-1.1510000000000002" data-y="-1.6" cx="144.85999999999996" cy="537" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
122
122
|
</g>
|
|
123
123
|
<g>
|
|
124
124
|
<circle data-type="point" data-label="anchorPoint
|
|
125
|
-
orientation: x-" data-x="-0.6000000000000001" data-y="0.2999999999999998" cx="
|
|
125
|
+
orientation: x-" data-x="-0.6000000000000001" data-y="0.2999999999999998" cx="222" cy="271" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
126
126
|
</g>
|
|
127
127
|
<g>
|
|
128
128
|
<circle data-type="point" data-label="anchorPoint
|
|
129
|
-
orientation: x+" data-x="0.6000000000000001" data-y="-0.8999999999999999" cx="
|
|
129
|
+
orientation: x+" data-x="0.6000000000000001" data-y="-0.8999999999999999" cx="390" cy="438.99999999999994" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
130
130
|
</g>
|
|
131
131
|
<g>
|
|
132
132
|
<circle data-type="point" data-label="anchorPoint
|
|
133
|
-
orientation: x-" data-x="-0.6000000000000001" data-y="0.09999999999999987" cx="
|
|
133
|
+
orientation: x-" data-x="-0.6000000000000001" data-y="0.09999999999999987" cx="222" cy="298.99999999999994" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
134
134
|
</g>
|
|
135
135
|
<g>
|
|
136
136
|
<circle data-type="point" data-label="anchorPoint
|
|
137
|
-
orientation: x+" data-x="0.6000000000000001" data-y="-1.0999999999999999" cx="
|
|
137
|
+
orientation: x+" data-x="0.6000000000000001" data-y="-1.0999999999999999" cx="390" cy="466.9999999999999" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
138
138
|
</g>
|
|
139
139
|
<g>
|
|
140
140
|
<circle data-type="point" data-label="anchorPoint
|
|
141
|
-
orientation: x-" data-x="-0.6000000000000001" data-y="-0.10000000000000009" cx="
|
|
141
|
+
orientation: x-" data-x="-0.6000000000000001" data-y="-0.10000000000000009" cx="222" cy="326.99999999999994" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
142
142
|
</g>
|
|
143
143
|
<g>
|
|
144
144
|
<circle data-type="point" data-label="anchorPoint
|
|
145
|
-
orientation: x+" data-x="0.6000000000000001" data-y="0.10000000000000009" cx="
|
|
145
|
+
orientation: x+" data-x="0.6000000000000001" data-y="0.10000000000000009" cx="390" cy="298.99999999999994" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
|
|
146
146
|
</g>
|
|
147
147
|
<g>
|
|
148
|
-
<polyline data-points="-0.6000000000000001,1.0999999999999999 0.6000000000000001,-0.09999999999999987" data-type="line" data-label="" points="
|
|
148
|
+
<polyline data-points="-0.6000000000000001,1.0999999999999999 0.6000000000000001,-0.09999999999999987" data-type="line" data-label="" points="222,158.99999999999997 390,326.99999999999994" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1" />
|
|
149
149
|
</g>
|
|
150
150
|
<g>
|
|
151
|
-
<polyline data-points="-0.6000000000000001,0.8999999999999999 0.6000000000000001,-0.2999999999999998" data-type="line" data-label="" points="
|
|
151
|
+
<polyline data-points="-0.6000000000000001,0.8999999999999999 0.6000000000000001,-0.2999999999999998" data-type="line" data-label="" points="222,186.99999999999994 390,354.9999999999999" fill="none" stroke="hsl(128, 100%, 50%, 0.8)" stroke-width="1" />
|
|
152
152
|
</g>
|
|
153
153
|
<g>
|
|
154
|
-
<polyline data-points="-0.6000000000000001,0.6999999999999998 0.6000000000000001,-0.4999999999999998" data-type="line" data-label="" points="
|
|
154
|
+
<polyline data-points="-0.6000000000000001,0.6999999999999998 0.6000000000000001,-0.4999999999999998" data-type="line" data-label="" points="222,214.99999999999997 390,382.9999999999999" fill="none" stroke="hsl(32, 100%, 50%, 0.8)" stroke-width="1" />
|
|
155
155
|
</g>
|
|
156
156
|
<g>
|
|
157
|
-
<polyline data-points="-0.6000000000000001,0.4999999999999998 0.6000000000000001,-0.6999999999999998" data-type="line" data-label="" points="
|
|
157
|
+
<polyline data-points="-0.6000000000000001,0.4999999999999998 0.6000000000000001,-0.6999999999999998" data-type="line" data-label="" points="222,242.99999999999997 390,410.9999999999999" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1" />
|
|
158
158
|
</g>
|
|
159
159
|
<g>
|
|
160
|
-
<polyline data-points="-0.6000000000000001,0.2999999999999998 0.6000000000000001,-0.8999999999999999" data-type="line" data-label="" points="
|
|
160
|
+
<polyline data-points="-0.6000000000000001,0.2999999999999998 0.6000000000000001,-0.8999999999999999" data-type="line" data-label="" points="222,271 390,438.99999999999994" fill="none" stroke="hsl(104, 100%, 50%, 0.8)" stroke-width="1" />
|
|
161
161
|
</g>
|
|
162
162
|
<g>
|
|
163
|
-
<polyline data-points="-0.6000000000000001,0.09999999999999987 0.6000000000000001,-1.0999999999999999" data-type="line" data-label="" points="
|
|
163
|
+
<polyline data-points="-0.6000000000000001,0.09999999999999987 0.6000000000000001,-1.0999999999999999" data-type="line" data-label="" points="222,298.99999999999994 390,466.9999999999999" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1" />
|
|
164
164
|
</g>
|
|
165
165
|
<g>
|
|
166
|
-
<polyline data-points="-0.6000000000000001,-0.10000000000000009 0.6000000000000001,0.10000000000000009" data-type="line" data-label="" points="
|
|
166
|
+
<polyline data-points="-0.6000000000000001,-0.10000000000000009 0.6000000000000001,0.10000000000000009" data-type="line" data-label="" points="222,326.99999999999994 390,298.99999999999994" fill="none" stroke="hsl(120, 100%, 50%, 0.8)" stroke-width="1" />
|
|
167
167
|
</g>
|
|
168
168
|
<g>
|
|
169
|
-
<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="
|
|
169
|
+
<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="222,158.99999999999997 194,158.99999999999997 194,102.99999999999997 467.14000000000004,102.99999999999997 467.14000000000004,326.99999999999994 390,326.99999999999994" fill="none" stroke="purple" stroke-width="1" />
|
|
170
170
|
</g>
|
|
171
171
|
<g>
|
|
172
|
-
<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="
|
|
172
|
+
<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="222,242.99999999999997 144.85999999999996,242.99999999999997 144.85999999999996,537 509.14,537 509.14,410.9999999999999 390,410.9999999999999" fill="none" stroke="purple" stroke-width="1" />
|
|
173
173
|
</g>
|
|
174
174
|
<g>
|
|
175
|
-
<rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="
|
|
175
|
+
<rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="222" y="130.99999999999997" width="168" height="363.9999999999999" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.007142857142857143" />
|
|
176
176
|
</g>
|
|
177
177
|
<g>
|
|
178
178
|
<rect data-type="rect" data-label="netId: P.pin1 to P.pin18
|
|
179
|
-
globalConnNetId: connectivity_net0
|
|
179
|
+
globalConnNetId: connectivity_net0
|
|
180
|
+
available orientations: y+" data-x="-0.8" data-y="1.7249999999999999" x="180" y="39.99999999999994" width="28" height="63.00000000000003" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.007142857142857143" />
|
|
180
181
|
</g>
|
|
181
182
|
<g>
|
|
182
183
|
<rect data-type="rect" data-label="netId: P.pin2 to P.pin17
|
|
183
|
-
globalConnNetId: connectivity_net1
|
|
184
|
+
globalConnNetId: connectivity_net1
|
|
185
|
+
available orientations: any" data-x="-0.8260000000000001" data-y="0.8999999999999999" x="158.85999999999999" y="172.99999999999997" width="63" height="27.99999999999997" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
184
186
|
</g>
|
|
185
187
|
<g>
|
|
186
188
|
<rect data-type="rect" data-label="netId: P.pin2 to P.pin17
|
|
187
|
-
globalConnNetId: connectivity_net1
|
|
189
|
+
globalConnNetId: connectivity_net1
|
|
190
|
+
available orientations: any" data-x="0.8260000000000001" data-y="-0.2999999999999998" x="390.14" y="340.99999999999994" width="63" height="27.999999999999943" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
188
191
|
</g>
|
|
189
192
|
<g>
|
|
190
193
|
<rect data-type="rect" data-label="netId: P.pin3 to P.pin16
|
|
191
|
-
globalConnNetId: connectivity_net2
|
|
194
|
+
globalConnNetId: connectivity_net2
|
|
195
|
+
available orientations: any" data-x="-0.8260000000000001" data-y="0.6999999999999998" x="158.85999999999999" y="200.99999999999997" width="63" height="27.99999999999997" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
192
196
|
</g>
|
|
193
197
|
<g>
|
|
194
198
|
<rect data-type="rect" data-label="netId: P.pin3 to P.pin16
|
|
195
|
-
globalConnNetId: connectivity_net2
|
|
199
|
+
globalConnNetId: connectivity_net2
|
|
200
|
+
available orientations: any" data-x="0.8260000000000001" data-y="-0.4999999999999998" x="390.14" y="368.9999999999999" width="63" height="28" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
196
201
|
</g>
|
|
197
202
|
<g>
|
|
198
203
|
<rect data-type="rect" data-label="netId: P.pin4 to P.pin15
|
|
199
|
-
globalConnNetId: connectivity_net3
|
|
204
|
+
globalConnNetId: connectivity_net3
|
|
205
|
+
available orientations: y-" data-x="-1.1510000000000002" data-y="-1.8250000000000002" x="130.85999999999996" y="537" width="28.00000000000003" height="63" fill="#fca5a566" stroke="#fca5a5" stroke-width="0.007142857142857143" />
|
|
200
206
|
</g>
|
|
201
207
|
<g>
|
|
202
208
|
<rect data-type="rect" data-label="netId: P.pin5 to P.pin14
|
|
203
|
-
globalConnNetId: connectivity_net4
|
|
209
|
+
globalConnNetId: connectivity_net4
|
|
210
|
+
available orientations: any" data-x="-0.8260000000000001" data-y="0.2999999999999998" x="158.85999999999999" y="257" width="63" height="27.999999999999943" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
204
211
|
</g>
|
|
205
212
|
<g>
|
|
206
213
|
<rect data-type="rect" data-label="netId: P.pin5 to P.pin14
|
|
207
|
-
globalConnNetId: connectivity_net4
|
|
214
|
+
globalConnNetId: connectivity_net4
|
|
215
|
+
available orientations: any" data-x="0.8260000000000001" data-y="-0.8999999999999999" x="390.14" y="424.99999999999994" width="63" height="27.999999999999943" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
208
216
|
</g>
|
|
209
217
|
<g>
|
|
210
218
|
<rect data-type="rect" data-label="netId: P.pin6 to P.pin13
|
|
211
|
-
globalConnNetId: connectivity_net5
|
|
219
|
+
globalConnNetId: connectivity_net5
|
|
220
|
+
available orientations: any" data-x="-0.8260000000000001" data-y="0.09999999999999987" x="158.85999999999999" y="284.99999999999994" width="63" height="28" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
212
221
|
</g>
|
|
213
222
|
<g>
|
|
214
223
|
<rect data-type="rect" data-label="netId: P.pin6 to P.pin13
|
|
215
|
-
globalConnNetId: connectivity_net5
|
|
224
|
+
globalConnNetId: connectivity_net5
|
|
225
|
+
available orientations: any" data-x="0.8260000000000001" data-y="-1.0999999999999999" x="390.14" y="452.9999999999999" width="63" height="28.000000000000057" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
216
226
|
</g>
|
|
217
227
|
<g>
|
|
218
228
|
<rect data-type="rect" data-label="netId: P.pin7 to P.pin19
|
|
219
|
-
globalConnNetId: connectivity_net6
|
|
229
|
+
globalConnNetId: connectivity_net6
|
|
230
|
+
available orientations: any" data-x="-0.8260000000000001" data-y="-0.10000000000000009" x="158.85999999999999" y="312.99999999999994" width="63" height="28" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
220
231
|
</g>
|
|
221
232
|
<g>
|
|
222
233
|
<rect data-type="rect" data-label="netId: P.pin7 to P.pin19
|
|
223
|
-
globalConnNetId: connectivity_net6
|
|
234
|
+
globalConnNetId: connectivity_net6
|
|
235
|
+
available orientations: any" data-x="0.8260000000000001" data-y="0.10000000000000009" x="390.14" y="284.99999999999994" width="63" height="28" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143" />
|
|
224
236
|
</g>
|
|
225
237
|
<g id="crosshair" style="display: none">
|
|
226
238
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -250,12 +262,12 @@ globalConnNetId: connectivity_net6" data-x="0.8260000000000001" data-y="0.100000
|
|
|
250
262
|
|
|
251
263
|
// Calculate real coordinates using inverse transformation
|
|
252
264
|
const matrix = {
|
|
253
|
-
"a":
|
|
265
|
+
"a": 140,
|
|
254
266
|
"c": 0,
|
|
255
|
-
"e":
|
|
267
|
+
"e": 306,
|
|
256
268
|
"b": 0,
|
|
257
|
-
"d": -
|
|
258
|
-
"f":
|
|
269
|
+
"d": -140,
|
|
270
|
+
"f": 312.99999999999994
|
|
259
271
|
};
|
|
260
272
|
// Manually invert and apply the affine transform
|
|
261
273
|
// Since we only use translate and scale, we can directly compute:
|
|
@@ -26,7 +26,8 @@ orientation: y+" data-x="3.2" data-y="0.30000000000000004" cx="587.5555555555557
|
|
|
26
26
|
</g>
|
|
27
27
|
<g>
|
|
28
28
|
<rect data-type="rect" data-label="netId: VCC
|
|
29
|
-
globalConnNetId: connectivity_net0
|
|
29
|
+
globalConnNetId: connectivity_net0
|
|
30
|
+
available orientations: y+" data-x="3.2" data-y="0.525" x="575.1111111111111" y="242.22222222222223" width="24.888888888888914" height="56" fill="#93c5fd66" stroke="#93c5fd" stroke-width="0.008035714285714287" />
|
|
30
31
|
</g>
|
|
31
32
|
<g id="crosshair" style="display: none">
|
|
32
33
|
<line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { getSvgFromGraphicsObject, type GraphicsObject } from "graphics-debug"
|
|
2
2
|
import { expect, type MatcherResult } from "bun:test"
|
|
3
3
|
import type { BaseSolver } from "lib/solvers/BaseSolver/BaseSolver"
|
|
4
|
+
import { colorAvailableNetOrientationLabels } from "lib/solvers/SchematicTracePipelineSolver/colorAvailableNetOrientationLabels"
|
|
5
|
+
import type { InputProblem } from "lib/types/InputProblem"
|
|
4
6
|
|
|
5
7
|
const getAllElms = (graphicsObject: GraphicsObject) => {
|
|
6
8
|
return [
|
|
@@ -43,6 +45,11 @@ async function toMatchSolverSnapshot(
|
|
|
43
45
|
)
|
|
44
46
|
}
|
|
45
47
|
|
|
48
|
+
const inputProblem = getInputProblem(received)
|
|
49
|
+
if (received.solved && inputProblem) {
|
|
50
|
+
colorAvailableNetOrientationLabels(graphicsObject, inputProblem)
|
|
51
|
+
}
|
|
52
|
+
|
|
46
53
|
const svg = getSvgFromGraphicsObject(graphicsObject, {
|
|
47
54
|
backgroundColor: "white",
|
|
48
55
|
})
|
|
@@ -50,6 +57,20 @@ async function toMatchSolverSnapshot(
|
|
|
50
57
|
return expect(svg).toMatchSvgSnapshot(testPathOriginal, svgName)
|
|
51
58
|
}
|
|
52
59
|
|
|
60
|
+
const getInputProblem = (solver: BaseSolver): InputProblem | undefined => {
|
|
61
|
+
const maybeSolver = solver as BaseSolver & {
|
|
62
|
+
inputProblem?: InputProblem
|
|
63
|
+
input?: { inputProblem?: InputProblem }
|
|
64
|
+
params?: { inputProblem?: InputProblem }
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
maybeSolver.inputProblem ??
|
|
69
|
+
maybeSolver.input?.inputProblem ??
|
|
70
|
+
maybeSolver.params?.inputProblem
|
|
71
|
+
)
|
|
72
|
+
}
|
|
73
|
+
|
|
53
74
|
expect.extend({
|
|
54
75
|
toMatchSolverSnapshot: toMatchSolverSnapshot as any,
|
|
55
76
|
})
|