@@ -25,5 +25,256 @@ TEST_F(EntityTest, CanDrawRect) {
25
25
ASSERT_TRUE (OpenPlaygroundHere (entity));
26
26
}
27
27
28
+ TEST_F (EntityTest, DISABLED_BadCubicCurveTest) {
29
+ // Compare with https://fiddle.skia.org/c/b3625f26122c9de7afe7794fcf25ead3
30
+ Path path =
31
+ PathBuilder{}
32
+ .MoveTo ({237.164 , 125.003 })
33
+ .CubicCurveTo ({236.709 , 125.184 }, {236.262 , 125.358 },
34
+ {235.81 , 125.538 })
35
+ .CubicCurveTo ({235.413 , 125.68 }, {234.994 , 125.832 },
36
+ {234.592 , 125.977 })
37
+ .CubicCurveTo ({234.592 , 125.977 }, {234.591 , 125.977 },
38
+ {234.59 , 125.977 })
39
+ .CubicCurveTo ({222.206 , 130.435 }, {207.708 , 135.753 },
40
+ {192.381 , 141.429 })
41
+ .CubicCurveTo ({162.77 , 151.336 }, {122.17 , 156.894 }, {84.1123 , 160 })
42
+ .Close ()
43
+ .TakePath ();
44
+ Entity entity;
45
+ entity.SetPath (path);
46
+ entity.SetContents (SolidColorContents::Make (Color::Red ()));
47
+ ASSERT_TRUE (OpenPlaygroundHere (entity));
48
+
49
+ }
50
+
51
+ TEST_F (EntityTest, DISABLED_BadCubicCurveAndOverlapTest) {
52
+ // Compare with https://fiddle.skia.org/c/7a05a3e186c65a8dfb732f68020aae06
53
+ Path path =
54
+ PathBuilder{}
55
+ .MoveTo ({359.934 , 96.6335 })
56
+ .CubicCurveTo ({358.189 , 96.7055 }, {356.436 , 96.7908 },
57
+ {354.673 , 96.8895 })
58
+ .CubicCurveTo ({354.571 , 96.8953 }, {354.469 , 96.9016 },
59
+ {354.367 , 96.9075 })
60
+ .CubicCurveTo ({352.672 , 97.0038 }, {350.969 , 97.113 },
61
+ {349.259 , 97.2355 })
62
+ .CubicCurveTo ({349.048 , 97.2506 }, {348.836 , 97.2678 },
63
+ {348.625 , 97.2834 })
64
+ .CubicCurveTo ({347.019 , 97.4014 }, {345.407 , 97.5299 },
65
+ {343.789 , 97.6722 })
66
+ .CubicCurveTo ({343.428 , 97.704 }, {343.065 , 97.7402 },
67
+ {342.703 , 97.7734 })
68
+ .CubicCurveTo ({341.221 , 97.9086 }, {339.736 , 98.0505 },
69
+ {338.246 , 98.207 })
70
+ .CubicCurveTo ({337.702 , 98.2642 }, {337.156 , 98.3292 },
71
+ {336.612 , 98.3894 })
72
+ .CubicCurveTo ({335.284 , 98.5356 }, {333.956 , 98.6837 },
73
+ {332.623 , 98.8476 })
74
+ .CubicCurveTo ({332.495 , 98.8635 }, {332.366 , 98.8818 },
75
+ {332.237 , 98.8982 })
76
+ .LineTo ({332.237 , 102.601 })
77
+ .LineTo ({321.778 , 102.601 })
78
+ .LineTo ({321.778 , 100.382 })
79
+ .CubicCurveTo ({321.572 , 100.413 }, {321.367 , 100.442 },
80
+ {321.161 , 100.476 })
81
+ .CubicCurveTo ({319.22 , 100.79 }, {317.277 , 101.123 },
82
+ {315.332 , 101.479 })
83
+ .CubicCurveTo ({315.322 , 101.481 }, {315.311 , 101.482 },
84
+ {315.301 , 101.484 })
85
+ .LineTo ({310.017 , 105.94 })
86
+ .LineTo ({309.779 , 105.427 })
87
+ .LineTo ({314.403 , 101.651 })
88
+ .CubicCurveTo ({314.391 , 101.653 }, {314.379 , 101.656 },
89
+ {314.368 , 101.658 })
90
+ .CubicCurveTo ({312.528 , 102.001 }, {310.687 , 102.366 },
91
+ {308.846 , 102.748 })
92
+ .CubicCurveTo ({307.85 , 102.955 }, {306.855 , 103.182 }, {305.859 , 103.4 })
93
+ .CubicCurveTo ({305.048 , 103.579 }, {304.236 , 103.75 },
94
+ {303.425 , 103.936 })
95
+ .LineTo ({299.105 , 107.578 })
96
+ .LineTo ({298.867 , 107.065 })
97
+ .LineTo ({302.394 , 104.185 })
98
+ .LineTo ({302.412 , 104.171 })
99
+ .CubicCurveTo ({301.388 , 104.409 }, {300.366 , 104.67 },
100
+ {299.344 , 104.921 })
101
+ .CubicCurveTo ({298.618 , 105.1 }, {297.89 , 105.269 }, {297.165 , 105.455 })
102
+ .CubicCurveTo ({295.262 , 105.94 }, {293.36 , 106.445 },
103
+ {291.462 , 106.979 })
104
+ .CubicCurveTo ({291.132 , 107.072 }, {290.802 , 107.163 },
105
+ {290.471 , 107.257 })
106
+ .CubicCurveTo ({289.463 , 107.544 }, {288.455 , 107.839 },
107
+ {287.449 , 108.139 })
108
+ .CubicCurveTo ({286.476 , 108.431 }, {285.506 , 108.73 },
109
+ {284.536 , 109.035 })
110
+ .CubicCurveTo ({283.674 , 109.304 }, {282.812 , 109.579 },
111
+ {281.952 , 109.859 })
112
+ .CubicCurveTo ({281.177 , 110.112 }, {280.406 , 110.377 },
113
+ {279.633 , 110.638 })
114
+ .CubicCurveTo ({278.458 , 111.037 }, {277.256 , 111.449 },
115
+ {276.803 , 111.607 })
116
+ .CubicCurveTo ({276.76 , 111.622 }, {276.716 , 111.637 },
117
+ {276.672 , 111.653 })
118
+ .CubicCurveTo ({275.017 , 112.239 }, {273.365 , 112.836 },
119
+ {271.721 , 113.463 })
120
+ .LineTo ({271.717 , 113.449 })
121
+ .CubicCurveTo ({271.496 , 113.496 }, {271.238 , 113.559 },
122
+ {270.963 , 113.628 })
123
+ .CubicCurveTo ({270.893 , 113.645 }, {270.822 , 113.663 },
124
+ {270.748 , 113.682 })
125
+ .CubicCurveTo ({270.468 , 113.755 }, {270.169 , 113.834 },
126
+ {269.839 , 113.926 })
127
+ .CubicCurveTo ({269.789 , 113.94 }, {269.732 , 113.957 },
128
+ {269.681 , 113.972 })
129
+ .CubicCurveTo ({269.391 , 114.053 }, {269.081 , 114.143 },
130
+ {268.756 , 114.239 })
131
+ .CubicCurveTo ({268.628 , 114.276 }, {268.5 , 114.314 },
132
+ {268.367 , 114.354 })
133
+ .CubicCurveTo ({268.172 , 114.412 }, {267.959 , 114.478 },
134
+ {267.752 , 114.54 })
135
+ .CubicCurveTo ({263.349 , 115.964 }, {258.058 , 117.695 },
136
+ {253.564 , 119.252 })
137
+ .CubicCurveTo ({253.556 , 119.255 }, {253.547 , 119.258 },
138
+ {253.538 , 119.261 })
139
+ .CubicCurveTo ({251.844 , 119.849 }, {250.056 , 120.474 },
140
+ {248.189 , 121.131 })
141
+ .CubicCurveTo ({248 , 121.197 }, {247.812 , 121.264 }, {247.621 , 121.331 })
142
+ .CubicCurveTo ({247.079 , 121.522 }, {246.531 , 121.715 },
143
+ {245.975 , 121.912 })
144
+ .CubicCurveTo ({245.554 , 122.06 }, {245.126 , 122.212 },
145
+ {244.698 , 122.364 })
146
+ .CubicCurveTo ({244.071 , 122.586 }, {243.437 , 122.811 },
147
+ {242.794 , 123.04 })
148
+ .CubicCurveTo ({242.189 , 123.255 }, {241.58 , 123.472 },
149
+ {240.961 , 123.693 })
150
+ .CubicCurveTo ({240.659 , 123.801 }, {240.357 , 123.909 },
151
+ {240.052 , 124.018 })
152
+ .CubicCurveTo ({239.12 , 124.351 }, {238.18 , 124.687 }, {237.22 , 125.032 })
153
+ .LineTo ({237.164 , 125.003 })
154
+ .CubicCurveTo ({236.709 , 125.184 }, {236.262 , 125.358 },
155
+ {235.81 , 125.538 })
156
+ .CubicCurveTo ({235.413 , 125.68 }, {234.994 , 125.832 },
157
+ {234.592 , 125.977 })
158
+ .CubicCurveTo ({234.592 , 125.977 }, {234.591 , 125.977 },
159
+ {234.59 , 125.977 })
160
+ .CubicCurveTo ({222.206 , 130.435 }, {207.708 , 135.753 },
161
+ {192.381 , 141.429 })
162
+ .CubicCurveTo ({162.77 , 151.336 }, {122.17 , 156.894 }, {84.1123 , 160 })
163
+ .LineTo ({360 , 160 })
164
+ .LineTo ({360 , 119.256 })
165
+ .LineTo ({360 , 106.332 })
166
+ .LineTo ({360 , 96.6307 })
167
+ .CubicCurveTo ({359.978 , 96.6317 }, {359.956 , 96.6326 },
168
+ {359.934 , 96.6335 })
169
+ .Close ()
170
+ .MoveTo ({337.336 , 124.143 })
171
+ .CubicCurveTo ({337.274 , 122.359 }, {338.903 , 121.511 },
172
+ {338.903 , 121.511 })
173
+ .CubicCurveTo ({338.903 , 121.511 }, {338.96 , 123.303 },
174
+ {337.336 , 124.143 })
175
+ .Close ()
176
+ .MoveTo ({340.082 , 121.849 })
177
+ .CubicCurveTo ({340.074 , 121.917 }, {340.062 , 121.992 },
178
+ {340.046 , 122.075 })
179
+ .CubicCurveTo ({340.039 , 122.109 }, {340.031 , 122.142 },
180
+ {340.023 , 122.177 })
181
+ .CubicCurveTo ({340.005 , 122.26 }, {339.98 , 122.346 },
182
+ {339.952 , 122.437 })
183
+ .CubicCurveTo ({339.941 , 122.473 }, {339.931 , 122.507 },
184
+ {339.918 , 122.544 })
185
+ .CubicCurveTo ({339.873 , 122.672 }, {339.819 , 122.804 },
186
+ {339.75 , 122.938 })
187
+ .CubicCurveTo ({339.747 , 122.944 }, {339.743 , 122.949 },
188
+ {339.74 , 122.955 })
189
+ .CubicCurveTo ({339.674 , 123.08 }, {339.593 , 123.205 },
190
+ {339.501 , 123.328 })
191
+ .CubicCurveTo ({339.473 , 123.366 }, {339.441 , 123.401 },
192
+ {339.41 , 123.438 })
193
+ .CubicCurveTo ({339.332 , 123.534 }, {339.243 , 123.625 },
194
+ {339.145 , 123.714 })
195
+ .CubicCurveTo ({339.105 , 123.75 }, {339.068 , 123.786 },
196
+ {339.025 , 123.821 })
197
+ .CubicCurveTo ({338.881 , 123.937 }, {338.724 , 124.048 },
198
+ {338.539 , 124.143 })
199
+ .CubicCurveTo ({338.532 , 123.959 }, {338.554 , 123.79 },
200
+ {338.58 , 123.626 })
201
+ .CubicCurveTo ({338.58 , 123.625 }, {338.58 , 123.625 }, {338.58 , 123.625 })
202
+ .CubicCurveTo ({338.607 , 123.455 }, {338.65 , 123.299 },
203
+ {338.704 , 123.151 })
204
+ .CubicCurveTo ({338.708 , 123.14 }, {338.71 , 123.127 },
205
+ {338.714 , 123.117 })
206
+ .CubicCurveTo ({338.769 , 122.971 }, {338.833 , 122.838 },
207
+ {338.905 , 122.712 })
208
+ .CubicCurveTo ({338.911 , 122.702 }, {338.916 , 122.69200000000001 },
209
+ {338.922 , 122.682 })
210
+ .CubicCurveTo ({338.996 , 122.557 }, {339.072 , 122.444 },
211
+ {339.155 , 122.34 })
212
+ .CubicCurveTo ({339.161 , 122.333 }, {339.166 , 122.326 },
213
+ {339.172 , 122.319 })
214
+ .CubicCurveTo ({339.256 , 122.215 }, {339.339 , 122.12 },
215
+ {339.425 , 122.037 })
216
+ .CubicCurveTo ({339.428 , 122.033 }, {339.431 , 122.03 },
217
+ {339.435 , 122.027 })
218
+ .CubicCurveTo ({339.785 , 121.687 }, {340.106 , 121.511 },
219
+ {340.106 , 121.511 })
220
+ .CubicCurveTo ({340.106 , 121.511 }, {340.107 , 121.645 },
221
+ {340.082 , 121.849 })
222
+ .Close ()
223
+ .MoveTo ({340.678 , 113.245 })
224
+ .CubicCurveTo ({340.594 , 113.488 }, {340.356 , 113.655 },
225
+ {340.135 , 113.775 })
226
+ .CubicCurveTo ({339.817 , 113.948 }, {339.465 , 114.059 },
227
+ {339.115 , 114.151 })
228
+ .CubicCurveTo ({338.251 , 114.379 }, {337.34 , 114.516 },
229
+ {336.448 , 114.516 })
230
+ .CubicCurveTo ({335.761 , 114.516 }, {335.072 , 114.527 },
231
+ {334.384 , 114.513 })
232
+ .CubicCurveTo ({334.125 , 114.508 }, {333.862 , 114.462 },
233
+ {333.605 , 114.424 })
234
+ .CubicCurveTo ({332.865 , 114.318 }, {332.096 , 114.184 },
235
+ {331.41 , 113.883 })
236
+ .CubicCurveTo ({330.979 , 113.695 }, {330.442 , 113.34 },
237
+ {330.672 , 112.813 })
238
+ .CubicCurveTo ({331.135 , 111.755 }, {333.219 , 112.946 },
239
+ {334.526 , 113.833 })
240
+ .CubicCurveTo ({334.54 , 113.816 }, {334.554 , 113.8 }, {334.569 , 113.784 })
241
+ .CubicCurveTo ({333.38 , 112.708 }, {331.749 , 110.985 },
242
+ {332.76 , 110.402 })
243
+ .CubicCurveTo ({333.769 , 109.82 }, {334.713 , 111.93 },
244
+ {335.228 , 113.395 })
245
+ .CubicCurveTo ({334.915 , 111.889 }, {334.59 , 109.636 },
246
+ {335.661 , 109.592 })
247
+ .CubicCurveTo ({336.733 , 109.636 }, {336.408 , 111.889 },
248
+ {336.07 , 113.389 })
249
+ .CubicCurveTo ({336.609 , 111.93 }, {337.553 , 109.82 },
250
+ {338.563 , 110.402 })
251
+ .CubicCurveTo ({339.574 , 110.984 }, {337.942 , 112.708 },
252
+ {336.753 , 113.784 })
253
+ .CubicCurveTo ({336.768 , 113.8 }, {336.782 , 113.816 },
254
+ {336.796 , 113.833 })
255
+ .CubicCurveTo ({338.104 , 112.946 }, {340.187 , 111.755 },
256
+ {340.65 , 112.813 })
257
+ .CubicCurveTo ({340.71 , 112.95 }, {340.728 , 113.102 },
258
+ {340.678 , 113.245 })
259
+ .Close ()
260
+ .MoveTo ({346.357 , 106.771 })
261
+ .CubicCurveTo ({346.295 , 104.987 }, {347.924 , 104.139 },
262
+ {347.924 , 104.139 })
263
+ .CubicCurveTo ({347.924 , 104.139 }, {347.982 , 105.931 },
264
+ {346.357 , 106.771 })
265
+ .Close ()
266
+ .MoveTo ({347.56 , 106.771 })
267
+ .CubicCurveTo ({347.498 , 104.987 }, {349.127 , 104.139 },
268
+ {349.127 , 104.139 })
269
+ .CubicCurveTo ({349.127 , 104.139 }, {349.185 , 105.931 },
270
+ {347.56 , 106.771 })
271
+ .Close ()
272
+ .TakePath ();
273
+ Entity entity;
274
+ entity.SetPath (path);
275
+ entity.SetContents (SolidColorContents::Make (Color::Red ()));
276
+ ASSERT_TRUE (OpenPlaygroundHere (entity));
277
+ }
278
+
28
279
} // namespace testing
29
280
} // namespace impeller
0 commit comments