blob: 290b19ac39a6b5b5f3e1367a9849ed80717ad567 [file] [log] [blame]
caryclark@google.com7eaa53d2013-10-02 14:49:34 +00001/*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7#include "PathOpsExtendedTest.h"
8
9#define TEST(name) { name, #name }
10
commit-bot@chromium.org8cb1daa2014-04-25 12:59:11 +000011#define TRY_NEW_TESTS 0
12#define TRY_NEW_TESTS_IS_CLOSED 0
13
commit-bot@chromium.org4431e772014-04-14 17:08:59 +000014static void skpcheeseandburger_com225(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +000015 SkPath path;
16 path.setFillType(SkPath::kEvenOdd_FillType);
17 path.moveTo(555, 468);
18 path.lineTo(555, 362);
19 path.lineTo(872, 362);
20 path.lineTo(872, 468);
21 path.lineTo(555, 468);
22 path.close();
23 SkPath pathB;
24 pathB.setFillType(SkPath::kWinding_FillType);
25 pathB.moveTo(859.11792f, 397.320343f);
26 pathB.cubicTo(855.523071f, 399.691284f, 853.721191f, 402.40863f, 853.721191f, 405.552216f);
27 pathB.cubicTo(853.721191f, 407.911163f, 854.727478f, 410.115387f, 857.043518f, 412.252716f);
28 pathB.cubicTo(859.920532f, 414.916138f, 862.704773f, 417.086426f, 864.679382f, 418.852386f);
29 pathB.cubicTo(866.382446f, 420.371765f, 867.19104f, 422.108795f, 867.19104f, 423.506378f);
30 pathB.cubicTo(867.19104f, 424.551605f, 866.741821f, 425.539886f, 865.935242f, 426.281616f);
31 pathB.cubicTo(865.250366f, 426.910553f, 864.662415f, 427.339813f, 864.139282f, 427.4646f);
32 pathB.cubicTo(863.536377f, 427.605347f, 862.259521f, 426.491272f, 860.366821f, 424.208191f);
33 pathB.cubicTo(858.345276f, 421.770355f, 857.317017f, 419.733856f, 857.317017f, 417.98587f);
34 pathB.cubicTo(857.317017f, 417.198212f, 857.942993f, 415.930389f, 857.942993f, 415.930389f);
35 pathB.cubicTo(857.942993f, 415.930389f, 852.106018f, 421.296173f, 852.279663f, 422.549042f);
36 pathB.cubicTo(852.462402f, 423.890747f, 853.669312f, 425.703613f, 855.876465f, 428.252258f);
37 pathB.cubicTo(858.038818f, 430.754944f, 859.4953f, 431.840088f, 860.190125f, 431.594513f);
38 pathB.cubicTo(862.571045f, 430.754944f, 865.48999f, 429.237549f, 868.44397f, 427.018372f);
39 pathB.cubicTo(870.505371f, 425.470032f, 871.582581f, 423.534332f, 871.582581f, 421.001678f);
40 pathB.cubicTo(871.582581f, 417.945923f, 870.056213f, 415.171692f, 867.015381f, 412.640045f);
41 pathB.cubicTo(863.683105f, 409.872803f, 861.445923f, 408.027954f, 860.551514f, 407.140503f);
42 pathB.cubicTo(858.660767f, 405.264709f, 857.765259f, 403.50174f, 857.765259f, 402.187988f);
43 pathB.cubicTo(857.765259f, 401.141785f, 858.339355f, 400.394073f, 859.476318f, 399.925873f);
44 pathB.cubicTo(860.004395f, 399.704254f, 861.270264f, 400.515869f, 863.156006f, 402.36969f);
45 pathB.cubicTo(865.094727f, 404.28241f, 866.203796f, 405.565186f, 866.383484f, 406.130219f);
46 pathB.cubicTo(868.250244f, 404.305359f, 869.179688f, 403.397919f, 871.046509f, 401.58902f);
47 pathB.cubicTo(868.26825f, 399.296967f, 864.431824f, 394.705841f, 863.156006f, 394.600037f);
48 pathB.cubicTo(863.145996f, 394.600037f, 863.136108f, 394.59903f, 863.126099f, 394.59903f);
49 pathB.cubicTo(862.352417f, 394.598022f, 859.909607f, 396.79425f, 859.11792f, 397.320343f);
50 pathB.moveTo(832.164246f, 394.307526f);
51 pathB.cubicTo(832.451721f, 394.425323f, 832.598511f, 394.486206f, 832.886963f, 394.605011f);
52 pathB.cubicTo(834.078979f, 395.474518f, 834.674927f, 395.90979f, 835.867859f, 396.781281f);
53 pathB.cubicTo(836.502808f, 397.325348f, 836.863159f, 398.000183f, 836.863159f, 398.964539f);
54 pathB.lineTo(836.863159f, 419.740845f);
55 pathB.cubicTo(836.863159f, 420.876923f, 836.319092f, 422.17868f, 835.055298f, 423.617188f);
56 pathB.cubicTo(836.39502f, 424.512665f, 837.063843f, 424.961884f, 838.39856f, 425.864349f);
57 pathB.cubicTo(839.477661f, 426.578125f, 841.37439f, 427.27594f, 842.275879f, 427.443634f);
58 pathB.cubicTo(842.999634f, 427.574402f, 843.82019f, 427.513519f, 844.354309f, 427.216034f);
59 pathB.cubicTo(846.956787f, 425.765503f, 848.689819f, 423.588257f, 848.58606f, 423.483429f);
60 pathB.cubicTo(848.58606f, 423.483429f, 846.877991f, 423.327698f, 845.971558f, 422.807587f);
61 pathB.cubicTo(845.253784f, 422.284485f, 844.892395f, 422.022949f, 844.171631f, 421.502838f);
62 pathB.cubicTo(843.361023f, 420.915833f, 842.907837f, 420.308899f, 842.907837f, 419.350525f);
63 pathB.lineTo(842.907837f, 399.445709f);
64 pathB.cubicTo(842.907837f, 398.053101f, 843.272217f, 397.417175f, 843.812256f, 397.518005f);
65 pathB.cubicTo(844.170654f, 397.583893f, 844.711731f, 398.122986f, 845.432495f, 398.782837f);
66 pathB.cubicTo(846.116333f, 399.402771f, 846.459717f, 399.709259f, 847.14856f, 400.3302f);
67 pathB.cubicTo(844.986206f, 402.099152f, 843.988892f, 403.926025f, 843.988892f, 405.932556f);
68 pathB.cubicTo(843.988892f, 410.209229f, 848.272583f, 410.951935f, 849.576355f, 408.394348f);
69 pathB.cubicTo(849.871826f, 407.816345f, 850.421875f, 406.214081f, 850.387939f, 406.196106f);
70 pathB.cubicTo(850.387939f, 406.196106f, 849.305786f, 406.771118f, 848.495239f, 406.615387f);
71 pathB.cubicTo(846.96582f, 406.316895f, 846.153198f, 405.46637f, 846.153198f, 403.89505f);
72 pathB.cubicTo(846.153198f, 401.796661f, 848.50116f, 399.09729f, 852.279663f, 396.270142f);
73 pathB.cubicTo(851.014893f, 395.315796f, 847.723511f, 391.546265f, 846.875f, 391.546265f);
74 pathB.cubicTo(846.330933f, 391.546265f, 843.988892f, 394.403351f, 843.273193f, 394.972382f);
75 pathB.cubicTo(840.889282f, 392.886963f, 839.700317f, 391.850739f, 837.312378f, 389.786285f);
76 pathB.cubicTo(835.257935f, 391.589203f, 834.225708f, 392.491638f, 832.164246f, 394.307526f);
77 pathB.moveTo(818.860107f, 392.707275f);
78 pathB.cubicTo(819.857361f, 393.382111f, 822.302124f, 395.764038f, 824.387573f, 397.051819f);
79 pathB.cubicTo(822.57666f, 398.249756f, 820.582092f, 399.687286f, 818.860107f, 400.827332f);
80 pathB.lineTo(818.860107f, 392.707275f);
81 pathB.close();
82 pathB.moveTo(810.69812f, 391.096039f);
83 pathB.cubicTo(810.69812f, 391.096039f, 812.786499f, 394.093903f, 812.786499f, 394.965393f);
84 pathB.lineTo(812.786499f, 415.743713f);
85 pathB.cubicTo(812.786499f, 417.753265f, 811.881042f, 418.497986f, 810.974609f, 419.769806f);
86 pathB.cubicTo(813.948486f, 421.160431f, 815.437988f, 421.864197f, 818.404846f, 423.283783f);
87 pathB.cubicTo(819.948181f, 423.95462f, 822.417969f, 424.592529f, 823.937317f, 423.782928f);
88 pathB.cubicTo(827.905518f, 421.663544f, 831.53125f, 417.600525f, 832.255005f, 415.191681f);
89 pathB.cubicTo(833.882263f, 409.877808f, 823.095825f, 411.495026f, 823.119751f, 411.518982f);
90 pathB.cubicTo(823.119751f, 411.518982f, 832.000488f, 411.874359f, 830.537964f, 416.29776f);
91 pathB.cubicTo(829.888123f, 418.253418f, 827.278564f, 420.292908f, 825.385864f, 419.55719f);
92 pathB.cubicTo(821.14209f, 417.915985f, 818.861023f, 417.414856f, 818.861023f, 414.970032f);
93 pathB.lineTo(818.861023f, 403.096436f);
94 pathB.cubicTo(822.126404f, 399.132233f, 831.289673f, 395.897797f, 831.356567f, 395.657227f);
95 pathB.cubicTo(831.356567f, 395.657227f, 823.022888f, 387.594055f, 821.763062f, 387.476257f);
96 pathB.cubicTo(821.755066f, 387.47525f, 821.746094f, 387.47525f, 821.737061f, 387.47525f);
97 pathB.cubicTo(820.793701f, 387.47525f, 810.72406f, 390.967255f, 810.69812f, 391.096039f);
98 pathB.moveTo(624.254211f, 390.498077f);
99 pathB.cubicTo(625.252502f, 390.893402f, 627.708252f, 392.592468f, 629.796692f, 393.307251f);
100 pathB.cubicTo(627.978821f, 395.006317f, 625.980225f, 397.000916f, 624.254211f, 398.618134f);
101 pathB.lineTo(624.254211f, 390.498077f);
102 pathB.close();
103 pathB.moveTo(627.160217f, 384.460449f);
104 pathB.cubicTo(626.286743f, 384.51535f, 616.076233f, 390.993225f, 616.086243f, 391.141968f);
105 pathB.cubicTo(616.086243f, 391.141968f, 618.173645f, 393.561798f, 618.173645f, 394.437317f);
106 pathB.lineTo(618.173645f, 415.216614f);
107 pathB.cubicTo(618.173645f, 417.222168f, 617.265198f, 418.219482f, 616.355774f, 419.742859f);
108 pathB.cubicTo(619.331665f, 420.307892f, 620.824097f, 420.599396f, 623.802979f, 421.198364f);
109 pathB.cubicTo(625.346313f, 421.437958f, 627.818115f, 421.39801f, 629.342468f, 420.166138f);
110 pathB.cubicTo(633.340576f, 416.939667f, 636.982361f, 411.871368f, 637.714111f, 409.263855f);
111 pathB.cubicTo(639.348267f, 403.500732f, 628.508911f, 408.111816f, 628.52887f, 408.126801f);
112 pathB.cubicTo(628.52887f, 408.126801f, 637.468506f, 405.998444f, 635.985046f, 410.844147f);
113 pathB.cubicTo(635.332153f, 412.984467f, 632.705688f, 415.748718f, 630.801941f, 415.541077f);
114 pathB.cubicTo(626.537292f, 415.072876f, 624.257202f, 415.202667f, 624.257202f, 412.755859f);
115 pathB.cubicTo(624.257202f, 408.007019f, 624.255188f, 405.636078f, 624.255188f, 400.884247f);
116 pathB.cubicTo(627.525574f, 396.016602f, 636.801636f, 390.283447f, 636.801636f, 389.97995f);
117 pathB.cubicTo(636.801636f, 389.97995f, 628.360168f, 384.458435f, 627.18219f, 384.458435f);
118 pathB.cubicTo(627.174194f, 384.460449f, 627.167236f, 384.460449f, 627.160217f, 384.460449f);
119 pathB.moveTo(796.530396f, 416.438538f);
120 pathB.cubicTo(795.892517f, 416.365662f, 794.527832f, 415.589996f, 792.348572f, 414.036652f);
121 pathB.lineTo(792.348572f, 391.425476f);
122 pathB.cubicTo(792.348572f, 390.465118f, 792.530273f, 390.047852f, 792.89563f, 390.088776f);
123 pathB.cubicTo(793.075317f, 390.109741f, 793.3479f, 390.317383f, 793.804077f, 390.629852f);
124 pathB.cubicTo(795.113831f, 391.585205f, 795.768738f, 392.059387f, 797.077515f, 393.018738f);
125 pathB.cubicTo(797.983948f, 393.648651f, 798.348267f, 394.219666f, 798.348267f, 394.742767f);
126 pathB.lineTo(798.348267f, 413.253998f);
127 pathB.cubicTo(798.348267f, 415.391327f, 797.783264f, 416.451508f, 796.728088f, 416.451508f);
128 pathB.cubicTo(796.664185f, 416.4505f, 796.598267f, 416.446533f, 796.530396f, 416.438538f);
129 pathB.moveTo(795.165771f, 383.714722f);
130 pathB.cubicTo(794.022705f, 383.851471f, 783.959961f, 388.652252f, 783.880127f, 388.873871f);
131 pathB.cubicTo(783.880127f, 388.873871f, 785.054077f, 389.871155f, 785.522339f, 390.606873f);
132 pathB.cubicTo(786.000488f, 391.361603f, 786.246094f, 391.9935f, 786.246094f, 392.427765f);
133 pathB.lineTo(786.246094f, 411.987183f);
134 pathB.cubicTo(786.246094f, 413.733185f, 784.160645f, 416.428558f, 784.246521f, 416.759979f);
135 pathB.cubicTo(784.258484f, 416.79892f, 785.432495f, 417.14032f, 785.793823f, 417.350952f);
136 pathB.cubicTo(786.739258f, 417.937958f, 787.213379f, 418.228455f, 788.161804f, 418.821442f);
137 pathB.cubicTo(789.342773f, 419.554199f, 790.619568f, 419.956482f, 791.892395f, 420.098236f);
138 pathB.cubicTo(794.533813f, 420.390747f, 796.717102f, 419.337555f, 798.349304f, 416.999573f);
139 pathB.lineTo(798.349304f, 425.212463f);
140 pathB.cubicTo(797.94696f, 425.47702f, 797.750305f, 425.609772f, 797.356018f, 425.874329f);
141 pathB.cubicTo(795.259583f, 423.619202f, 792.806824f, 422.286499f, 789.985657f, 421.984009f);
142 pathB.cubicTo(785.157959f, 421.463898f, 780.409119f, 428.344086f, 780.423096f, 428.346069f);
143 pathB.cubicTo(780.423096f, 428.346069f, 783.340088f, 424.960907f, 785.889709f, 425.218445f);
144 pathB.cubicTo(789.25592f, 425.565857f, 793.166199f, 430.745972f, 793.805115f, 430.790894f);
145 pathB.cubicTo(793.940857f, 430.798889f, 795.918457f, 429.091797f, 798.454102f, 427.383728f);
146 pathB.cubicTo(801.049683f, 425.635742f, 804.230225f, 423.886749f, 806.619141f, 423.980591f);
147 pathB.cubicTo(805.621826f, 423.586243f, 805.048828f, 423.074127f, 804.804199f, 422.609924f);
148 pathB.cubicTo(804.616577f, 422.25354f, 804.616577f, 421.539764f, 804.616577f, 420.31488f);
149 pathB.cubicTo(804.623535f, 411.732605f, 804.623535f, 403.147339f, 804.623535f, 394.562073f);
150 pathB.cubicTo(804.623535f, 392.464691f, 805.970215f, 391.000183f, 805.984192f, 390.896362f);
151 pathB.cubicTo(805.984192f, 390.896362f, 796.785034f, 383.7117f, 795.219666f, 383.7117f);
152 pathB.cubicTo(795.19873f, 383.712708f, 795.181763f, 383.712708f, 795.165771f, 383.714722f);
153 pathB.moveTo(648.092285f, 387.883545f);
154 pathB.cubicTo(649.095581f, 388.312805f, 651.55835f, 390.099762f, 653.655701f, 390.884399f);
155 pathB.cubicTo(651.831848f, 392.522583f, 649.82428f, 394.447296f, 648.092285f, 396.003601f);
156 pathB.lineTo(648.092285f, 387.883545f);
157 pathB.close();
158 pathB.moveTo(651.009277f, 381.943756f);
159 pathB.cubicTo(650.147766f, 381.983704f, 639.893372f, 388.105164f, 639.899353f, 388.254913f);
160 pathB.cubicTo(639.899353f, 388.254913f, 641.987793f, 390.744659f, 641.987793f, 391.617157f);
161 pathB.lineTo(641.987793f, 412.399475f);
162 pathB.cubicTo(641.987793f, 414.409027f, 641.082336f, 415.369354f, 640.169861f, 416.864807f);
163 pathB.cubicTo(643.155762f, 417.53064f, 644.650208f, 417.87207f, 647.638062f, 418.573853f);
164 pathB.cubicTo(649.188416f, 418.865356f, 651.666138f, 418.908295f, 653.19751f, 417.725311f);
165 pathB.cubicTo(657.204651f, 414.633636f, 660.859375f, 409.690125f, 661.590088f, 407.106567f);
166 pathB.cubicTo(663.231262f, 401.397339f, 652.356934f, 405.644073f, 652.375916f, 405.663025f);
167 pathB.cubicTo(652.375916f, 405.663025f, 661.338562f, 403.835175f, 659.857056f, 408.632935f);
168 pathB.cubicTo(659.199219f, 410.748291f, 656.568726f, 413.424713f, 654.656982f, 413.151184f);
169 pathB.cubicTo(650.381348f, 412.536224f, 648.092285f, 412.591125f, 648.092285f, 410.146332f);
170 pathB.lineTo(648.092285f, 398.270721f);
171 pathB.cubicTo(651.374634f, 393.5159f, 660.66571f, 388.09021f, 660.674683f, 387.791718f);
172 pathB.cubicTo(660.674683f, 387.791718f, 652.188232f, 381.941772f, 651.022278f, 381.942749f);
173 pathB.cubicTo(651.01825f, 381.942749f, 651.013245f, 381.942749f, 651.009277f, 381.943756f);
174 pathB.moveTo(761.636353f, 385.965851f);
175 pathB.cubicTo(761.927856f, 386.056702f, 762.071594f, 386.098633f, 762.363098f, 386.189453f);
176 pathB.cubicTo(763.570007f, 386.938171f, 764.175964f, 387.311554f, 765.376892f, 388.066254f);
177 pathB.cubicTo(766.019775f, 388.546417f, 766.384155f, 389.184326f, 766.384155f, 390.147675f);
178 pathB.lineTo(766.384155f, 410.924011f);
179 pathB.cubicTo(766.384155f, 412.057037f, 765.836121f, 413.410736f, 764.559326f, 414.979034f);
180 pathB.cubicTo(765.911987f, 415.738739f, 766.579834f, 416.12207f, 767.934509f, 416.887756f);
181 pathB.cubicTo(769.029602f, 417.495728f, 770.944336f, 418.000854f, 771.85675f, 418.075714f);
182 pathB.cubicTo(772.58551f, 418.134613f, 773.413086f, 417.987854f, 773.950195f, 417.638458f);
183 pathB.cubicTo(776.583618f, 415.917419f, 778.332642f, 413.564453f, 778.237793f, 413.473633f);
184 pathB.cubicTo(778.237793f, 413.473633f, 776.507812f, 413.497559f, 775.596313f, 413.066315f);
185 pathB.cubicTo(774.866577f, 412.61908f, 774.497253f, 412.39447f, 773.771484f, 411.951233f);
186 pathB.cubicTo(772.947876f, 411.444092f, 772.493652f, 410.877075f, 772.493652f, 409.919708f);
187 pathB.lineTo(772.493652f, 390.013885f);
188 pathB.cubicTo(772.493652f, 388.618286f, 772.860046f, 387.949432f, 773.407104f, 387.995361f);
189 pathB.cubicTo(773.771484f, 388.026306f, 774.318542f, 388.509491f, 775.049316f, 389.09848f);
190 pathB.cubicTo(775.742065f, 389.646515f, 776.088501f, 389.923065f, 776.77533f, 390.470123f);
191 pathB.cubicTo(774.590088f, 392.45871f, 773.589783f, 394.385376f, 773.589783f, 396.395935f);
192 pathB.cubicTo(773.589783f, 400.673584f, 777.907349f, 401.008026f, 779.237122f, 398.292694f);
193 pathB.cubicTo(779.539551f, 397.684723f, 780.089661f, 396.027557f, 780.058716f, 396.01358f);
194 pathB.cubicTo(780.058716f, 396.01358f, 778.970581f, 396.694427f, 778.149963f, 396.618561f);
195 pathB.cubicTo(776.598633f, 396.4758f, 775.775024f, 395.709106f, 775.775024f, 394.13681f);
196 pathB.cubicTo(775.775024f, 392.042419f, 778.149963f, 389.103455f, 781.973389f, 385.892975f);
197 pathB.cubicTo(780.697571f, 385.06839f, 777.326416f, 381.676208f, 776.506775f, 381.719147f);
198 pathB.cubicTo(775.908813f, 381.747101f, 773.588806f, 384.868744f, 772.860046f, 385.506622f);
199 pathB.cubicTo(770.451172f, 383.664795f, 769.248291f, 382.749359f, 766.843384f, 380.929504f);
200 pathB.cubicTo(764.758972f, 382.934052f, 763.716736f, 383.940338f, 761.636353f, 385.965851f);
201 pathB.moveTo(672.996521f, 379.821411f);
202 pathB.cubicTo(672.123047f, 379.891266f, 669.7052f, 382.898132f, 668.887573f, 383.64682f);
203 pathB.cubicTo(665.239868f, 386.999084f, 663.41095f, 390.213562f, 663.41095f, 393.356171f);
204 pathB.cubicTo(663.41095f, 395.715118f, 664.439209f, 397.642792f, 666.785156f, 399.150208f);
205 pathB.cubicTo(669.702148f, 401.02002f, 672.547302f, 402.439575f, 674.545837f, 403.655487f);
206 pathB.cubicTo(676.261902f, 404.697693f, 677.105469f, 406.231049f, 677.105469f, 407.625671f);
207 pathB.cubicTo(677.105469f, 408.671875f, 676.651245f, 409.777954f, 675.825684f, 410.7453f);
208 pathB.cubicTo(675.12384f, 411.569885f, 674.538879f, 412.145905f, 673.997803f, 412.417419f);
209 pathB.cubicTo(673.38385f, 412.724915f, 672.080078f, 411.958221f, 670.166382f, 410.198242f);
210 pathB.cubicTo(668.113892f, 408.319458f, 667.062683f, 406.55249f, 667.062683f, 404.808502f);
211 pathB.cubicTo(667.062683f, 404.020844f, 667.701599f, 402.580322f, 667.701599f, 402.580322f);
212 pathB.cubicTo(667.701599f, 402.580322f, 661.773804f, 409.542358f, 661.951477f, 410.7453f);
213 pathB.cubicTo(662.13916f, 412.037079f, 663.368042f, 413.524536f, 665.60321f, 415.469208f);
214 pathB.cubicTo(667.791443f, 417.368927f, 669.261963f, 418.074738f, 669.983704f, 417.630493f);
215 pathB.cubicTo(672.412537f, 416.138062f, 675.369446f, 413.822021f, 678.385254f, 410.790222f);
216 pathB.cubicTo(680.485657f, 408.677856f, 681.587769f, 406.446686f, 681.587769f, 403.917023f);
217 pathB.cubicTo(681.587769f, 400.859283f, 680.007446f, 398.490356f, 676.923767f, 396.806244f);
218 pathB.cubicTo(673.540588f, 394.957428f, 671.257507f, 393.71756f, 670.351074f, 393.075653f);
219 pathB.cubicTo(668.434326f, 391.71698f, 667.518921f, 390.193604f, 667.518921f, 388.88385f);
220 pathB.cubicTo(667.518921f, 387.837646f, 668.101929f, 386.934204f, 669.25592f, 386.156525f);
221 pathB.cubicTo(669.796997f, 385.788147f, 671.085815f, 386.257355f, 672.997498f, 387.592072f);
222 pathB.cubicTo(674.966125f, 388.968689f, 676.104187f, 389.951019f, 676.284851f, 390.465118f);
223 pathB.cubicTo(678.186584f, 388.130127f, 679.136963f, 386.966125f, 681.035706f, 384.646118f);
224 pathB.cubicTo(678.244507f, 383.133728f, 674.247375f, 379.819397f, 673.044434f, 379.819397f);
225 pathB.cubicTo(673.027466f, 379.819397f, 673.011475f, 379.820404f, 672.996521f, 379.821411f);
226 pathB.moveTo(732.95459f, 384.60318f);
227 pathB.cubicTo(733.246094f, 384.680054f, 733.391846f, 384.720001f, 733.689331f, 384.794861f);
228 pathB.cubicTo(735.072937f, 385.500641f, 735.769714f, 385.856049f, 737.162354f, 386.563812f);
229 pathB.cubicTo(737.891113f, 386.938171f, 738.164612f, 387.642975f, 738.164612f, 388.6073f);
230 pathB.lineTo(738.164612f, 408.510132f);
231 pathB.cubicTo(738.164612f, 410.257141f, 737.709412f, 411.893341f, 736.064209f, 413.416718f);
232 pathB.cubicTo(737.635498f, 414.235321f, 738.419189f, 414.651611f, 739.991455f, 415.475189f);
233 pathB.cubicTo(740.997742f, 416.034241f, 742.186707f, 416.344696f, 743.098145f, 416.379639f);
234 pathB.cubicTo(743.830872f, 416.410583f, 744.476807f, 416.175964f, 745.019836f, 415.851532f);
235 pathB.cubicTo(746.476318f, 414.977051f, 748.58075f, 413.571442f, 749.225647f, 413.079285f);
236 pathB.cubicTo(751.012573f, 414.253296f, 751.907043f, 414.845276f, 753.69696f, 416.028229f);
237 pathB.cubicTo(754.703247f, 416.610229f, 755.706543f, 416.84082f, 756.528076f, 416.892761f);
238 pathB.cubicTo(757.259827f, 416.93866f, 757.996582f, 416.807892f, 758.537659f, 416.494446f);
239 pathB.cubicTo(760.814758f, 415.174713f, 762.185425f, 413.509552f, 762.552734f, 412.830719f);
240 pathB.cubicTo(761.637329f, 412.681976f, 759.633789f, 411.58786f, 759.263428f, 411.387207f);
241 pathB.cubicTo(758.607544f, 410.994873f, 758.279114f, 410.803223f, 757.621216f, 410.413879f);
242 pathB.cubicTo(756.983276f, 410.020538f, 756.616943f, 409.301788f, 756.616943f, 408.343445f);
243 pathB.lineTo(756.616943f, 388.351746f);
244 pathB.cubicTo(756.616943f, 387.387421f, 757.164978f, 386.548859f, 758.627502f, 385.067383f);
245 pathB.cubicTo(755.523804f, 383.05484f, 753.97052f, 382.057556f, 750.862854f, 380.078949f);
246 pathB.cubicTo(749.001038f, 382.112457f, 748.069641f, 383.130707f, 746.207825f, 385.174194f);
247 pathB.cubicTo(746.501343f, 385.292999f, 746.647095f, 385.353912f, 746.939575f, 385.472687f);
248 pathB.cubicTo(747.996765f, 386.183472f, 748.525879f, 386.538879f, 749.587036f, 387.257629f);
249 pathB.cubicTo(750.224915f, 387.724823f, 750.498474f, 388.351746f, 750.498474f, 389.223267f);
250 pathB.lineTo(750.498474f, 407.822327f);
251 pathB.cubicTo(750.498474f, 408.694824f, 750.339722f, 409.955658f, 749.951416f, 410.847137f);
252 pathB.cubicTo(749.550049f, 411.761566f, 749.039978f, 411.585876f, 748.487915f, 411.560913f);
253 pathB.cubicTo(747.393799f, 411.503998f, 746.385498f, 410.53067f, 745.473083f, 410.022552f);
254 pathB.cubicTo(744.760254f, 409.627228f, 744.380981f, 409.013275f, 744.380981f, 407.965088f);
255 pathB.lineTo(744.380981f, 386.840363f);
256 pathB.cubicTo(744.380981f, 385.791138f, 744.833191f, 384.763916f, 745.657776f, 383.839508f);
257 pathB.cubicTo(742.656921f, 382.101501f, 741.161499f, 381.234985f, 738.162659f, 379.525909f);
258 pathB.cubicTo(736.083191f, 381.548431f, 735.039978f, 382.562683f, 732.95459f, 384.60318f);
259 pathB.moveTo(692.546936f, 385.171204f);
260 pathB.cubicTo(693.552246f, 385.667358f, 696.018005f, 387.607025f, 698.122375f, 388.521454f);
261 pathB.cubicTo(696.293518f, 390.043854f, 694.281982f, 391.844757f, 692.546936f, 393.294281f);
262 pathB.lineTo(692.546936f, 385.171204f);
263 pathB.close();
264 pathB.moveTo(695.4729f, 379.417084f);
265 pathB.cubicTo(694.635376f, 379.426086f, 684.32605f, 384.880707f, 684.322083f, 385.025452f);
266 pathB.cubicTo(684.322083f, 385.025452f, 686.422485f, 387.645966f, 686.422485f, 388.521454f);
267 pathB.lineTo(686.422485f, 409.300781f);
268 pathB.cubicTo(686.422485f, 411.312347f, 685.51001f, 412.21579f, 684.595581f, 413.65033f);
269 pathB.cubicTo(687.592468f, 414.504852f, 689.089905f, 414.945099f, 692.088745f, 415.833557f);
270 pathB.cubicTo(693.645081f, 416.221893f, 696.128784f, 416.420563f, 697.667114f, 415.334412f);
271 pathB.cubicTo(701.67926f, 412.494293f, 705.344971f, 407.783386f, 706.077698f, 405.240753f);
272 pathB.cubicTo(707.721924f, 399.638367f, 696.822632f, 403.198273f, 696.845581f, 403.216248f);
273 pathB.cubicTo(696.845581f, 403.216248f, 705.825134f, 401.960388f, 704.337708f, 406.658325f);
274 pathB.cubicTo(703.683838f, 408.733765f, 701.044373f, 411.241455f, 699.129639f, 410.847137f);
275 pathB.cubicTo(694.843018f, 409.968628f, 692.545959f, 409.876801f, 692.545959f, 407.432983f);
276 pathB.lineTo(692.545959f, 395.563354f);
277 pathB.cubicTo(695.838318f, 391.012177f, 705.134338f, 386.160522f, 705.162292f, 385.873993f);
278 pathB.cubicTo(705.162292f, 385.873993f, 696.635925f, 379.416107f, 695.473938f, 379.417084f);
279 pathB.cubicTo(695.474915f, 379.417084f, 695.473938f, 379.417084f, 695.4729f, 379.417084f);
280 pathB.moveTo(570.463562f, 420.81601f);
281 pathB.lineTo(570.463562f, 402.922729f);
282 pathB.cubicTo(571.039551f, 402.800934f, 571.327087f, 402.743042f, 571.901123f, 402.625244f);
283 pathB.lineTo(571.901123f, 423.142029f);
284 pathB.cubicTo(570.911804f, 422.823578f, 570.463562f, 422.123779f, 570.463562f, 420.81601f);
285 pathB.moveTo(570.463562f, 384.062134f);
286 pathB.cubicTo(571.039551f, 384.149963f, 571.327087f, 384.198883f, 571.901123f, 384.290741f);
287 pathB.lineTo(571.901123f, 401.580048f);
288 pathB.cubicTo(571.327087f, 401.695862f, 571.039551f, 401.756744f, 570.463562f, 401.874542f);
289 pathB.lineTo(570.463562f, 384.062134f);
290 pathB.close();
291 pathB.moveTo(573.880676f, 376.556f);
292 pathB.cubicTo(572.483093f, 376.996246f, 561.476013f, 385.624451f, 561.482971f, 385.70929f);
293 pathB.cubicTo(561.482971f, 385.70929f, 563.637268f, 388.554413f, 563.637268f, 389.688446f);
294 pathB.lineTo(563.637268f, 398.423462f);
295 pathB.cubicTo(556.411682f, 399.838043f, 555.429382f, 404.307373f, 555.418396f, 405.679993f);
296 pathB.lineTo(555.418396f, 405.724915f);
297 pathB.cubicTo(555.42041f, 405.94455f, 555.448364f, 406.073334f, 555.477295f, 406.083313f);
298 pathB.cubicTo(555.477295f, 406.083313f, 558.070862f, 404.250458f, 563.637268f, 403.222229f);
299 pathB.lineTo(563.637268f, 404.797516f);
300 pathB.cubicTo(556.993713f, 406.233063f, 555.191772f, 412.494293f, 555.569153f, 412.614105f);
301 pathB.cubicTo(555.569153f, 412.614105f, 561.572815f, 410.21521f, 563.637268f, 409.598267f);
302 pathB.lineTo(563.637268f, 424.00354f);
303 pathB.cubicTo(563.637268f, 426.357483f, 563.36676f, 427.901855f, 562.291565f, 429.70874f);
304 pathB.cubicTo(565.448181f, 430.067139f, 567.028442f, 430.256805f, 570.192017f, 430.653137f);
305 pathB.cubicTo(571.99292f, 430.893707f, 574.782166f, 430.669098f, 576.403381f, 429.136719f);
306 pathB.cubicTo(580.960571f, 424.828125f, 586.135681f, 419.346527f, 586.135681f, 416.115082f);
307 pathB.lineTo(586.135681f, 406.511566f);
308 pathB.cubicTo(586.135681f, 405.377533f, 586.047791f, 404.608856f, 586.678711f, 403.271149f);
309 pathB.cubicTo(584.151062f, 404.98819f, 582.888245f, 405.851715f, 580.362549f, 407.587738f);
310 pathB.cubicTo(579.281433f, 408.320465f, 579.192566f, 409.2948f, 579.192566f, 410.955933f);
311 pathB.lineTo(579.192566f, 421.869202f);
312 pathB.cubicTo(579.192566f, 423.180969f, 577.746033f, 423.273804f, 577.392639f, 423.266815f);
313 pathB.cubicTo(575.636658f, 423.228882f, 574.153259f, 423.295776f, 573.071106f, 423.077148f);
314 pathB.lineTo(573.071106f, 384.663086f);
315 pathB.cubicTo(575.230408f, 385.379852f, 576.309509f, 385.742249f, 578.473816f, 386.473999f);
316 pathB.cubicTo(579.373291f, 386.996094f, 579.553955f, 387.490234f, 579.553955f, 388.013336f);
317 pathB.cubicTo(581.861023f, 384.848785f, 583.015991f, 383.267487f, 585.325073f, 380.114899f);
318 pathB.cubicTo(581.680298f, 379.229431f, 575.865295f, 376.520081f, 574.157227f, 376.521057f);
319 pathB.cubicTo(574.047424f, 376.522064f, 573.955566f, 376.533051f, 573.880676f, 376.556f);
320 pathB.moveTo(593.447083f, 375.096527f);
321 pathB.cubicTo(592.363953f, 375.804291f, 591.821899f, 376.772644f, 591.821899f, 377.908691f);
322 pathB.lineTo(591.821899f, 419.46933f);
323 pathB.cubicTo(591.821899f, 420.517517f, 591.187012f, 422.018951f, 589.921143f, 423.991577f);
324 pathB.cubicTo(591.2948f, 424.412842f, 591.982605f, 424.622467f, 593.354248f, 425.050751f);
325 pathB.cubicTo(594.53125f, 425.462036f, 595.525513f, 425.555878f, 596.427979f, 425.404144f);
326 pathB.cubicTo(597.150757f, 425.279358f, 597.785645f, 424.914978f, 598.326721f, 424.475739f);
327 pathB.cubicTo(600.935242f, 422.385315f, 602.846985f, 419.809753f, 602.759094f, 419.749847f);
328 pathB.cubicTo(602.759094f, 419.749847f, 601.582153f, 419.935516f, 600.59082f, 419.831696f);
329 pathB.cubicTo(600.0448f, 419.74585f, 599.774231f, 419.700928f, 599.233154f, 419.615082f);
330 pathB.cubicTo(598.416565f, 419.484314f, 597.965332f, 418.860382f, 597.965332f, 417.988861f);
331 pathB.lineTo(597.965332f, 396.857147f);
332 pathB.cubicTo(597.965332f, 395.376678f, 598.326721f, 394.617004f, 598.867798f, 394.528137f);
333 pathB.cubicTo(599.232178f, 394.466248f, 599.773254f, 394.731812f, 600.59082f, 395.124115f);
334 pathB.cubicTo(601.601074f, 395.589325f, 602.111206f, 395.819946f, 603.123474f, 396.288116f);
335 pathB.cubicTo(603.93811f, 396.686432f, 603.93512f, 397.38324f, 603.93512f, 398.169891f);
336 pathB.cubicTo(603.93512f, 405.971497f, 603.93512f, 413.768127f, 603.93811f, 421.569702f);
337 pathB.cubicTo(603.93811f, 425.325256f, 601.109924f, 430.634155f, 601.133911f, 430.656128f);
338 pathB.cubicTo(601.133911f, 430.656128f, 605.184937f, 427.222015f, 607.017822f, 424.414825f);
339 pathB.cubicTo(609.118164f, 421.201355f, 610.280212f, 417.987854f, 610.280212f, 415.109802f);
340 pathB.lineTo(610.280212f, 394.593048f);
341 pathB.cubicTo(610.280212f, 393.890228f, 610.823242f, 393.112579f, 611.728699f, 392.020447f);
342 pathB.cubicTo(608.827698f, 390.960266f, 604.000977f, 387.703857f, 602.759094f, 387.967407f);
343 pathB.cubicTo(602.120239f, 388.104187f, 599.957947f, 391.29071f, 597.965332f, 393.27829f);
344 pathB.lineTo(597.965332f, 374.422668f);
345 pathB.cubicTo(597.965332f, 373.461334f, 598.326721f, 372.440063f, 598.867798f, 371.567566f);
346 pathB.cubicTo(596.701538f, 372.96817f, 595.616394f, 373.677948f, 593.447083f, 375.096527f);
347 pathB.moveTo(718.054138f, 409.318756f);
348 pathB.cubicTo(717.461182f, 408.789673f, 716.867188f, 408.178711f, 716.867188f, 407.218353f);
349 pathB.lineTo(716.867188f, 387.053986f);
350 pathB.cubicTo(716.867188f, 385.305969f, 717.323425f, 385.566528f, 718.328674f, 386.013763f);
351 pathB.cubicTo(719.645386f, 386.859314f, 720.307251f, 387.284576f, 721.622009f, 388.135132f);
352 pathB.cubicTo(722.266907f, 388.4935f, 722.903809f, 388.934753f, 722.903809f, 389.721405f);
353 pathB.lineTo(722.903809f, 407.794373f);
354 pathB.cubicTo(722.903809f, 408.66687f, 722.746094f, 410.490753f, 722.259888f, 410.758301f);
355 pathB.cubicTo(722.125122f, 410.83017f, 721.950439f, 410.862122f, 721.746826f, 410.862122f);
356 pathB.cubicTo(720.655701f, 410.864105f, 718.747925f, 409.936707f, 718.054138f, 409.318756f);
357 pathB.moveTo(711.928711f, 364.782227f);
358 pathB.cubicTo(711.195923f, 365.134613f, 710.648865f, 365.834412f, 710.648865f, 366.794769f);
359 pathB.lineTo(710.648865f, 407.392059f);
360 pathB.cubicTo(710.648865f, 409.397614f, 708.519531f, 411.37323f, 708.547485f, 411.684692f);
361 pathB.cubicTo(708.550476f, 411.745605f, 711.838867f, 413.067322f, 713.849365f, 414.368073f);
362 pathB.cubicTo(717.766663f, 416.906738f, 720.162537f, 415.845551f, 722.354797f, 414.073608f);
363 pathB.cubicTo(724.059875f, 412.69397f, 726.55957f, 410.981903f, 730.675537f, 410.124359f);
364 pathB.cubicTo(729.75708f, 409.143066f, 729.213013f, 407.993042f, 729.213013f, 406.683289f);
365 pathB.cubicTo(729.213013f, 399.630402f, 729.209045f, 396.103455f, 729.209045f, 389.047546f);
366 pathB.cubicTo(729.209045f, 387.648956f, 730.577698f, 385.292023f, 730.583679f, 385.149261f);
367 pathB.cubicTo(730.583679f, 385.149261f, 720.888306f, 378.762207f, 719.609497f, 378.947906f);
368 pathB.cubicTo(719.275085f, 378.996826f, 717.872498f, 381.118164f, 716.868225f, 381.896851f);
369 pathB.lineTo(716.868225f, 365.046783f);
370 pathB.cubicTo(716.868225f, 363.740021f, 716.960083f, 363.043213f, 717.597961f, 362);
371 pathB.cubicTo(715.331848f, 363.104095f, 714.19873f, 363.657166f, 711.928711f, 364.782227f);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000372 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000373}
374
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000375static void skpeverytechpro_blogspot_com100(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000376 SkPath path;
377 path.setFillType(SkPath::kEvenOdd_FillType);
378 path.moveTo(1074.29285f, 627.292786f);
379 path.quadTo(1074.58582f, 627, 1075, 627);
380 path.lineTo(1117, 627);
381 path.quadTo(1124.04163f, 627, 1129.02246f, 631.9776f);
382 path.quadTo(1134, 636.958374f, 1134, 644);
383 path.lineTo(1134, 645);
384 path.quadTo(1134, 652.041626f, 1129.02246f, 657.0224f);
385 path.quadTo(1124.04163f, 662, 1117, 662);
386 path.lineTo(1075, 662);
387 path.quadTo(1074.58582f, 662, 1074.29285f, 661.707214f);
388 path.quadTo(1074, 661.414185f, 1074, 661);
389 path.lineTo(1074, 628);
390 path.quadTo(1074, 627.585815f, 1074.29285f, 627.292786f);
391 path.close();
392 path.moveTo(1076, 629);
393 path.lineTo(1117, 629);
394 path.cubicTo(1125.2843f, 629, 1132, 635.715698f, 1132, 644);
395 path.lineTo(1132, 645);
396 path.cubicTo(1132, 653.284302f, 1125.2843f, 660, 1117, 660);
397 path.lineTo(1076, 660);
398 path.lineTo(1076, 629);
399 path.close();
400 SkPath pathB;
401 pathB.setFillType(SkPath::kWinding_FillType);
402 pathB.moveTo(1074, 627);
403 pathB.lineTo(1075, 628);
404 pathB.lineTo(1116.5f, 644.5f);
405 pathB.lineTo(1134, 627);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000406 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000407}
408
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000409static void skpflite_com41(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000410 SkPath path;
411 path.setFillType(SkPath::kEvenOdd_FillType);
412 path.moveTo(301.464081f, 424);
413 path.lineTo(296, 433.46405f);
414 path.lineTo(296, 433.810822f);
415 path.lineTo(303.25589f, 438);
416 path.lineTo(304.729736f, 438);
417 path.lineTo(311, 427.139557f);
418 path.lineTo(311, 426.305237f);
419 path.lineTo(307.007202f, 424);
420 path.lineTo(301.464081f, 424);
421 path.close();
422 SkPath pathB;
423 pathB.setFillType(SkPath::kWinding_FillType);
424 pathB.moveTo(302.849854f, 421.599762f);
425 pathB.lineTo(311.510101f, 426.599762f);
426 pathB.lineTo(304.510101f, 438.724121f);
427 pathB.lineTo(295.849854f, 433.724121f);
428 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000429 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000430}
431
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000432static void skpilkoora_com37(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000433 SkPath path;
434 path.setFillType(SkPath::kEvenOdd_FillType);
435 path.moveTo(818, 157);
436 path.cubicTo(818, 148.715729f, 824.715698f, 142, 833, 142);
437 path.lineTo(909, 142);
438 path.lineTo(909, 143);
439 path.lineTo(833, 143);
440 path.cubicTo(825.268005f, 143, 819, 149.268005f, 819, 157);
441 path.lineTo(819, 926);
442 path.lineTo(818, 926);
443 path.lineTo(818, 157);
444 path.close();
445 path.moveTo(1184, 926);
446 path.lineTo(1185, 926);
447 path.lineTo(1185, 157);
448 path.cubicTo(1185, 148.715729f, 1178.2843f, 142, 1170, 142);
449 path.lineTo(1093, 142);
450 path.lineTo(1093, 143);
451 path.lineTo(1170, 143);
452 path.cubicTo(1177.73193f, 143, 1184, 149.268005f, 1184, 157);
453 path.lineTo(1184, 926);
454 path.close();
455 SkPath pathB;
456 pathB.setFillType(SkPath::kWinding_FillType);
457 pathB.moveTo(1185, 142);
458 pathB.lineTo(1001.5f, 325.5f);
459 pathB.lineTo(1001.5f, 782.5f);
460 pathB.lineTo(1185, 966);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000461 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000462}
463
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000464static void skpmm4everfriends_com43(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000465 SkPath path;
466 path.setFillType(SkPath::kEvenOdd_FillType);
467 path.moveTo(540.74231f, 215.922546f);
468 path.cubicTo(540.893127f, 215.391159f, 541.443909f, 215.090134f, 541.972473f, 215.250168f);
469 path.lineTo(581.213318f, 227.131104f);
470 path.cubicTo(581.741882f, 227.291153f, 582.048157f, 227.851654f, 581.897339f, 228.383041f);
471 path.lineTo(576.708923f, 246.663925f);
472 path.cubicTo(576.558167f, 247.195297f, 576.007324f, 247.496338f, 575.47876f, 247.336288f);
473 path.lineTo(536.237915f, 235.455353f);
474 path.cubicTo(535.709351f, 235.295319f, 535.403137f, 234.734802f, 535.553894f, 234.20343f);
475 path.lineTo(540.74231f, 215.922546f);
476 path.close();
477 SkPath pathB;
478 pathB.setFillType(SkPath::kWinding_FillType);
479 pathB.moveTo(541.015381f, 214.960388f);
480 pathB.lineTo(582.17041f, 227.420883f);
481 pathB.lineTo(576.435852f, 247.626068f);
482 pathB.lineTo(535.280823f, 235.165573f);
483 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000484 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000485}
486
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000487static void skpmtrk_uz27(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000488 SkPath path;
489 path.setFillType(SkPath::kEvenOdd_FillType);
490 path.moveTo(33, 787);
491 path.lineTo(33, 412);
492 path.lineTo(1233, 412);
493 path.lineTo(1233, 787);
494 path.quadTo(1233, 793.213196f, 1228.60803f, 797.607971f);
495 path.quadTo(1224.21326f, 802, 1218, 802);
496 path.lineTo(48, 802);
497 path.quadTo(41.7867966f, 802, 37.3919983f, 797.607971f);
498 path.quadTo(33, 793.213196f, 33, 787);
499 path.close();
500 SkPath pathB;
501 pathB.setFillType(SkPath::kWinding_FillType);
502 pathB.moveTo(33, 412);
503 pathB.lineTo(1233, 412);
504 pathB.lineTo(1233, 787);
505 pathB.quadTo(1233, 793.213196f, 1228.60791f, 797.608032f);
506 pathB.quadTo(1224.21313f, 802, 1218, 802);
507 pathB.lineTo(48, 802);
508 pathB.quadTo(41.7867432f, 802, 37.3919678f, 797.608032f);
509 pathB.quadTo(33, 793.213196f, 33, 787);
510 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000511 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000512}
513
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000514static void skpfrauen_magazin_com83(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000515 SkPath path;
516 path.setFillType(SkPath::kEvenOdd_FillType);
517 path.moveTo(808, 886);
518 path.cubicTo(805.581055f, 886, 803.563293f, 887.717773f, 803.100037f, 890);
519 path.lineTo(1122.90002f, 890);
520 path.cubicTo(1122.43677f, 887.717773f, 1120.41895f, 886, 1118, 886);
521 path.lineTo(808, 886);
522 path.close();
523 SkPath pathB;
524 pathB.setFillType(SkPath::kInverseWinding_FillType);
525 pathB.moveTo(808, 886);
526 pathB.lineTo(1118, 886);
527 pathB.cubicTo(1120.76147f, 886, 1123, 888.238586f, 1123, 891);
528 pathB.lineTo(1123, 1521);
529 pathB.cubicTo(1123, 1523.20911f, 1120.76147f, 1525, 1118, 1525);
530 pathB.lineTo(808, 1525);
531 pathB.cubicTo(805.238586f, 1525, 803, 1523.20911f, 803, 1521);
532 pathB.lineTo(803, 891);
533 pathB.cubicTo(803, 888.238586f, 805.238586f, 886, 808, 886);
534 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000535 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000536}
537
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000538static void skpi_gino_com16(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000539 SkPath path;
540 path.setFillType(SkPath::kEvenOdd_FillType);
541 path.moveTo(184, 734);
542 path.quadTo(133.051727f, 734, 97.0258636f, 770.025879f);
543 path.quadTo(61, 806.051758f, 61, 857);
544 path.quadTo(61, 895.835083f, 81.9317017f, 926);
545 path.lineTo(286.068298f, 926);
546 path.quadTo(307, 895.835083f, 307, 857);
547 path.quadTo(307, 806.051758f, 270.974121f, 770.025879f);
548 path.quadTo(234.948273f, 734, 184, 734);
549 path.close();
550 SkPath pathB;
551 pathB.setFillType(SkPath::kWinding_FillType);
552 pathB.moveTo(185, 734);
553 pathB.cubicTo(252.93103f, 734, 308, 789.06897f, 308, 857);
554 pathB.cubicTo(308, 924.93103f, 252.93103f, 980, 185, 980);
555 pathB.lineTo(184, 980);
556 pathB.cubicTo(116.068977f, 980, 61, 924.93103f, 61, 857);
557 pathB.cubicTo(61, 789.06897f, 116.068977f, 734, 184, 734);
558 pathB.lineTo(185, 734);
559 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000560 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000561}
562
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000563static void skppchappy_com_au102(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000564 SkPath path;
565 path.setFillType(SkPath::kEvenOdd_FillType);
566 path.moveTo(363, 493);
567 path.cubicTo(360.790863f, 493, 359, 494.790863f, 359, 497);
568 path.lineTo(359, 656);
569 path.cubicTo(359, 658.209106f, 360.790863f, 660, 363, 660);
570 path.lineTo(623.001709f, 660);
571 path.cubicTo(624.657776f, 659.999023f, 626, 658.65625f, 626, 657);
572 path.lineTo(626, 496);
573 path.cubicTo(626, 494.343872f, 624.657959f, 493.00116f, 623.002075f, 493);
574 path.lineTo(363, 493);
575 path.close();
576 SkPath pathB;
577 pathB.setFillType(SkPath::kInverseWinding_FillType);
578 pathB.moveTo(362, 494);
579 pathB.lineTo(623, 494);
580 pathB.cubicTo(624.65686f, 494, 626, 494.895416f, 626, 496);
581 pathB.lineTo(626, 657);
582 pathB.cubicTo(626, 658.65686f, 624.65686f, 660, 623, 660);
583 pathB.lineTo(362, 660);
584 pathB.cubicTo(360.34314f, 660, 359, 658.65686f, 359, 657);
585 pathB.lineTo(359, 496);
586 pathB.cubicTo(359, 494.895416f, 360.34314f, 494, 362, 494);
587 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000588 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000589}
590
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000591static void skpsciality_com161(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000592 SkPath path;
593 path.setFillType(SkPath::kEvenOdd_FillType);
594 path.moveTo(656, 728);
595 path.cubicTo(653.790833f, 728, 652, 729.790833f, 652, 732);
596 path.lineTo(652, 789);
597 path.cubicTo(652, 791.209106f, 653.790833f, 793, 656, 793);
598 path.lineTo(769.001282f, 793);
599 path.cubicTo(770.657532f, 792.999268f, 772, 791.656433f, 772, 790);
600 path.lineTo(772, 731);
601 path.cubicTo(772, 729.34314f, 770.65686f, 728, 769, 728);
602 path.lineTo(656, 728);
603 path.close();
604 SkPath pathB;
605 pathB.setFillType(SkPath::kInverseWinding_FillType);
606 pathB.moveTo(655, 729);
607 pathB.lineTo(769, 729);
608 pathB.cubicTo(770.65686f, 729, 772, 729.895447f, 772, 731);
609 pathB.lineTo(772, 790);
610 pathB.cubicTo(772, 791.65686f, 770.65686f, 793, 769, 793);
611 pathB.lineTo(655, 793);
612 pathB.cubicTo(653.34314f, 793, 652, 791.65686f, 652, 790);
613 pathB.lineTo(652, 731);
614 pathB.cubicTo(652, 729.895447f, 653.34314f, 729, 655, 729);
615 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000616 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000617}
618
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000619static void skpsudoestenegocios_com186(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000620 SkPath path;
621 path.setFillType(SkPath::kEvenOdd_FillType);
622 path.moveTo(0, 495);
623 path.lineTo(1.23685242e-14f, 293);
624 path.lineTo(44, 293);
625 path.quadTo(45.6568527f, 293, 46.8288002f, 294.171204f);
626 path.quadTo(48, 295.34314f, 48, 297);
627 path.lineTo(48, 491);
628 path.quadTo(48, 492.65686f, 46.8288002f, 493.828796f);
629 path.quadTo(45.6568527f, 495, 44, 495);
630 path.lineTo(0, 495);
631 path.close();
632 path.moveTo(1, 294);
633 path.lineTo(44, 294);
634 path.cubicTo(45.6568565f, 294, 47, 295.34314f, 47, 297);
635 path.lineTo(47, 491);
636 path.cubicTo(47, 492.65686f, 45.6568565f, 494, 44, 494);
637 path.lineTo(1, 494);
638 path.lineTo(1, 294);
639 path.close();
640 SkPath pathB;
641 pathB.setFillType(SkPath::kWinding_FillType);
642 pathB.moveTo(48, 495);
643 pathB.lineTo(24, 471);
644 pathB.lineTo(24, 317);
645 pathB.lineTo(48, 293);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000646 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000647}
648
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000649static void skpthesuburbanite_com213(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000650 SkPath path;
651 path.setFillType(SkPath::kEvenOdd_FillType);
652 path.moveTo(863.439026f, 692);
653 path.lineTo(863.283264f, 692);
654 path.lineTo(802, 708.420837f);
655 path.lineTo(802, 718.773621f);
656 path.lineTo(866, 701.624817f);
657 path.lineTo(866, 701.557922f);
658 path.lineTo(863.439026f, 692);
659 path.close();
660 SkPath pathB;
661 pathB.setFillType(SkPath::kWinding_FillType);
662 pathB.moveTo(783.256775f, 713.443054f);
663 pathB.lineTo(863.428589f, 691.96106f);
664 pathB.lineTo(866.016724f, 701.620361f);
665 pathB.lineTo(785.84491f, 723.102356f);
666 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000667 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.com7eaa53d2013-10-02 14:49:34 +0000668}
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000669
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000670static void skphostloco_com11(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000671 SkPath path;
672 path.setFillType(SkPath::kEvenOdd_FillType);
673 path.moveTo(6.66133815e-16f, 648);
674 path.lineTo(25.8522835f, 648);
675 path.quadTo(27.5087376f, 647.999634f, 28.6807098f, 646.82843f);
676 path.quadTo(29.8518829f, 645.656433f, 29.8522835f, 644);
677 path.lineTo(29.8522835f, 467);
678 path.quadTo(29.8518829f, 465.343536f, 28.6807098f, 464.17157f);
679 path.quadTo(27.5087376f, 463.000397f, 25.8522835f, 463);
680 path.lineTo(2.22044605e-16f, 463);
681 path.lineTo(6.66133815e-16f, 648);
682 path.close();
683 SkPath pathB;
684 pathB.setFillType(SkPath::kWinding_FillType);
685 pathB.moveTo(0, 463);
686 pathB.lineTo(30, 463);
687 pathB.lineTo(30, 648);
688 pathB.lineTo(0, 648);
689 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000690 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000691}
692
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000693static void skpsergeychunkevich_com8(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000694 SkPath path;
695 path.setFillType(SkPath::kEvenOdd_FillType);
696 path.moveTo(0, 926);
697 path.lineTo(0, 0);
698 path.lineTo(1265, 0);
699 path.lineTo(1265, 926);
700 path.lineTo(0, 926);
701 path.close();
702 SkPath pathB;
703 pathB.setFillType(SkPath::kInverseWinding_FillType);
704 pathB.moveTo(37, 374);
705 pathB.lineTo(37, 535);
706 pathB.cubicTo(37, 536.65686f, 35.6568565f, 538, 34, 538);
707 pathB.lineTo(1.02866934e-14f, 538);
708 pathB.lineTo(6.12303177e-17f, 371);
709 pathB.lineTo(34, 371);
710 pathB.cubicTo(35.6568565f, 371, 37, 372.34314f, 37, 374);
711 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000712 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000713}
714
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000715static void skptracksflow_com9(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000716 SkPath path;
717 path.setFillType(SkPath::kEvenOdd_FillType);
718 path.moveTo(16, 56);
719 path.lineTo(32, 56);
720 path.lineTo(32, 72);
721 path.lineTo(16, 72);
722 path.lineTo(16, 56);
723 path.close();
724 SkPath pathB;
725 pathB.setFillType(SkPath::kEvenOdd_FillType);
726 pathB.moveTo(31.65625f, 70.0555649f);
727 pathB.lineTo(31.65625f, 70.0554962f);
728 pathB.lineTo(26.9727192f, 65.3615341f);
729 pathB.cubicTo(27.6210003f, 64.4029694f, 28.0048752f, 63.2470932f, 28.0048752f, 62.0027809f);
730 pathB.cubicTo(28.0048752f, 58.6875305f, 25.3199062f, 56, 22.0046558f, 56);
731 pathB.cubicTo(18.6894073f, 56, 16.0031872f, 58.6875305f, 16.0031872f, 62.0027809f);
732 pathB.cubicTo(16.0031872f, 65.3180008f, 18.6913433f, 68.0055618f, 22.0066261f, 68.0055618f);
733 pathB.cubicTo(23.2509995f, 68.0055618f, 24.4072189f, 67.6187515f, 25.3657818f, 66.9704056f);
734 pathB.lineTo(30.0599365f, 71.65625f);
735 pathB.lineTo(30.0600014f, 71.65625f);
736 pathB.cubicTo(30.2668133f, 71.875f, 30.5524693f, 71.9992828f, 30.868f, 71.9992828f);
737 pathB.cubicTo(31.4994049f, 71.9992828f, 32.0014687f, 71.4909363f, 32.0014687f, 70.8595276f);
738 pathB.cubicTo(32.0015335f, 70.5439072f, 31.875f, 70.2623444f, 31.65625f, 70.0555649f);
739 pathB.close();
740 pathB.moveTo(18.0054054f, 62.0027809f);
741 pathB.cubicTo(18.0054054f, 59.7925949f, 19.7970943f, 58.0009079f, 22.0072823f, 58.0009079f);
742 pathB.cubicTo(24.2174377f, 58.0009079f, 26.0091248f, 59.7925949f, 26.0091248f, 62.0027809f);
743 pathB.cubicTo(26.0091248f, 64.2129364f, 24.2174377f, 66.0046234f, 22.0072803f, 66.0046234f);
744 pathB.cubicTo(19.7970943f, 66.0045929f, 18.0054054f, 64.2129059f, 18.0054054f, 62.0027809f);
745 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000746 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000747}
748
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000749static void skpautobutler_dk29(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000750 SkPath path;
751 path.setFillType(SkPath::kEvenOdd_FillType);
752 path.moveTo(0, 926);
753 path.lineTo(0, 0);
754 path.lineTo(1265, 0);
755 path.lineTo(1265, 926);
756 path.lineTo(0, 926);
757 path.close();
758 SkPath pathB;
759 pathB.setFillType(SkPath::kWinding_FillType);
760 pathB.moveTo(21, 162);
761 pathB.lineTo(21, 301);
762 pathB.lineTo(8.57224448e-15f, 301);
763 pathB.lineTo(6.12303177e-17f, 162);
764 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000765 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000766}
767
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000768static void skponlinecollege_org144(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000769 SkPath path;
770 path.setFillType(SkPath::kEvenOdd_FillType);
771 path.moveTo(179, 407);
772 path.cubicTo(177.34314f, 407, 176, 408.34314f, 176, 410);
773 path.lineTo(176, 436);
774 path.cubicTo(176, 437.65686f, 177.34314f, 439, 179, 439);
775 path.lineTo(337.002289f, 439);
776 path.cubicTo(338.105835f, 438.998779f, 339, 438.103821f, 339, 437);
777 path.lineTo(339, 409);
778 path.cubicTo(339, 407.896362f, 338.10611f, 407.001526f, 337.002838f, 407);
779 path.lineTo(179, 407);
780 path.close();
781 SkPath pathB;
782 pathB.setFillType(SkPath::kInverseWinding_FillType);
783 pathB.moveTo(179, 408);
784 pathB.lineTo(337, 408);
785 pathB.cubicTo(338.65686f, 408, 340, 408.895416f, 340, 410);
786 pathB.lineTo(340, 436);
787 pathB.cubicTo(340, 437.65686f, 338.65686f, 439, 337, 439);
788 pathB.lineTo(179, 439);
789 pathB.cubicTo(177.895432f, 439, 177, 437.65686f, 177, 436);
790 pathB.lineTo(177, 410);
791 pathB.cubicTo(177, 408.895416f, 177.895432f, 408, 179, 408);
792 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000793 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000794}
795
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000796static void skpnational_com_au81(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000797 SkPath path;
798 path.setFillType(SkPath::kEvenOdd_FillType);
799 path.moveTo(807, 817);
800 path.quadTo(806.585876f, 817.000122f, 806.292908f, 817.292908f);
801 path.quadTo(806.000122f, 817.585876f, 806, 818);
802 path.lineTo(806, 881);
803 path.lineTo(1111, 881);
804 path.lineTo(1111, 818);
805 path.quadTo(1110.99988f, 817.585876f, 1110.70715f, 817.292908f);
806 path.quadTo(1110.41406f, 817.000122f, 1110, 817);
807 path.lineTo(807, 817);
808 path.close();
809 SkPath pathB;
810 pathB.setFillType(SkPath::kInverseWinding_FillType);
811 pathB.moveTo(807, 817);
812 pathB.lineTo(1110, 817);
813 pathB.cubicTo(1110.55225f, 817, 1111, 817.447693f, 1111, 818);
814 pathB.lineTo(1111, 880);
815 pathB.lineTo(806, 880);
816 pathB.lineTo(806, 818);
817 pathB.cubicTo(806, 817.447693f, 806.447693f, 817, 807, 817);
818 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000819 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000820}
821
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000822static void skprentacheat_com30(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000823 SkPath path;
824 path.setFillType(SkPath::kEvenOdd_FillType);
825 path.moveTo(967, 263);
826 path.quadTo(966.585876f, 263.000092f, 966.292908f, 263.292908f);
827 path.quadTo(966.000122f, 263.585876f, 966, 264);
828 path.lineTo(966, 301);
829 path.lineTo(1214, 301);
830 path.lineTo(1214, 264);
831 path.quadTo(1213.99988f, 263.585876f, 1213.70715f, 263.292908f);
832 path.quadTo(1213.41406f, 263.000092f, 1213, 263);
833 path.lineTo(967, 263);
834 path.close();
835 SkPath pathB;
836 pathB.setFillType(SkPath::kInverseWinding_FillType);
837 pathB.moveTo(967, 263);
838 pathB.lineTo(1213, 263);
839 pathB.cubicTo(1213.55225f, 263, 1214, 263.447723f, 1214, 264);
840 pathB.lineTo(1214, 300);
841 pathB.lineTo(966, 300);
842 pathB.lineTo(966, 264);
843 pathB.cubicTo(966, 263.447723f, 966.447693f, 263, 967, 263);
844 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000845 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000846}
847
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000848static void skpbreakmystyle_com10(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000849 SkPath path;
850 path.setFillType(SkPath::kEvenOdd_FillType);
851 path.moveTo(271.032867f, -5.32907052e-15f);
852 path.lineTo(56.9671326f, -5.16253706e-15f);
853 path.quadTo(52.7835083f, 3.69968891f, 48.7416f, 7.74160004f);
854 path.quadTo(1, 55.4831848f, 1, 123);
855 path.quadTo(1, 190.516815f, 48.7416f, 238.258392f);
856 path.quadTo(96.4831848f, 286, 164, 286);
857 path.quadTo(231.516815f, 286, 279.258392f, 238.258392f);
858 path.quadTo(327, 190.516815f, 327, 123);
859 path.quadTo(327, 55.4831848f, 279.258392f, 7.74160004f);
860 path.quadTo(275.216431f, 3.69964004f, 271.032867f, -5.32907052e-15f);
861 path.close();
862 SkPath pathB;
863 pathB.setFillType(SkPath::kWinding_FillType);
864 pathB.moveTo(327, 123);
865 pathB.quadTo(327, 190.516815f, 279.258392f, 238.258392f);
866 pathB.quadTo(231.516815f, 286, 164, 286);
867 pathB.quadTo(96.4831848f, 286, 48.7416f, 238.258392f);
868 pathB.quadTo(1, 190.516815f, 1, 123);
869 pathB.quadTo(1, 55.4831848f, 48.7416f, 7.74160004f);
870 pathB.quadTo(96.4831848f, -40, 164, -40);
871 pathB.quadTo(231.516815f, -40, 279.258392f, 7.74160004f);
872 pathB.quadTo(327, 55.4831848f, 327, 123);
873 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000874 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000875}
876
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000877static void skpsd_graphic_net104(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000878 SkPath path;
879 path.setFillType(SkPath::kEvenOdd_FillType);
880 path.moveTo(475.421448f, 836.985962f);
881 path.lineTo(461.280975f, 841.990662f);
882 path.cubicTo(466.80899f, 857.609802f, 458.62854f, 874.752991f, 443.009399f, 880.281006f);
883 path.cubicTo(435.199829f, 883.044983f, 427.009247f, 882.381897f, 420.080048f, 879.075378f);
884 path.lineTo(413.620056f, 892.613037f);
885 path.quadTo(430.419983f, 900.629761f, 447.96701f, 894.43811f);
886 path.quadTo(448.00708f, 894.42395f, 448.014038f, 894.421509f);
887 path.quadTo(448.043976f, 894.410889f, 448.061066f, 894.404846f);
888 path.quadTo(465.596313f, 888.179932f, 473.613037f, 871.379944f);
889 path.quadTo(477.351227f, 863.546143f, 478, 855.549866f);
890 path.lineTo(478, 848.804321f);
891 path.quadTo(477.528076f, 842.93811f, 475.421448f, 836.985962f);
892 path.close();
893 SkPath pathB;
894 pathB.setFillType(SkPath::kWinding_FillType);
895 pathB.moveTo(405.592621f, 909.435547f);
896 pathB.lineTo(390.578583f, 867.014099f);
897 pathB.lineTo(433, 852.000061f);
898 pathB.lineTo(490.435486f, 879.40741f);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000899 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000900}
901
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000902/* this cubic/quad pair
903 c = 430,280 430,278.895416 473.876068,278 528,278
904 q = 430,280 430.009796,277.101196 458.703552,275.050262
905 only intersect at the shared point (430,280)
906 they sort backwards because the tangent from pt[0] to control pt[1]
907 c' = (0.00000000000000000, -1.1045837402343750)
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +0000908 q' = (0.0097961425781250000, -2.8988037109375000)
909 suggests that the quad is counterclockwise of the cubic, when the reverse is true
910 the angle code is fooled because the control pt[1] of both the quad and cubic
911 is far away from cubic cntl [2] and quad pt [2].
912 Maybe in angle setup, this instability can be detected to suppress sorting on the initial tangent
913 Or the error term can be passed to NearRay that is magnified by the distance from the next ctrl?
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000914 */
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000915static void skpnaoxrane_ru23(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000916 SkPath path;
917 path.setFillType(SkPath::kEvenOdd_FillType);
918 path.moveTo(458.703552f, 275.050262f);
919 path.quadTo(487.41687f, 273.000702f, 528, 273);
920 path.lineTo(529, 273);
921 path.quadTo(530.242371f, 273.000305f, 531.121338f, 273.878693f);
922 path.quadTo(531.999695f, 274.75766f, 532, 276);
923 path.lineTo(532, 378);
924 path.quadTo(531.990173f, 380.898804f, 503.296448f, 382.949738f);
925 path.quadTo(474.58313f, 384.999298f, 434, 385);
926 path.lineTo(433, 385);
927 path.quadTo(431.75766f, 384.999695f, 430.878693f, 384.121307f);
928 path.quadTo(430.000305f, 383.24234f, 430, 382);
929 path.lineTo(430, 280);
930 path.quadTo(430.009796f, 277.101196f, 458.703552f, 275.050262f);
931 path.close();
932 SkPath pathB;
933 pathB.setFillType(SkPath::kInverseWinding_FillType);
934 pathB.moveTo(528, 278);
935 pathB.lineTo(529, 278);
936 pathB.cubicTo(530.65686f, 278, 532, 278, 532, 278);
937 pathB.lineTo(532, 378);
938 pathB.cubicTo(532, 379.104584f, 488.123932f, 380, 434, 380);
939 pathB.lineTo(433, 380);
940 pathB.cubicTo(431.34314f, 380, 430, 380, 430, 380);
941 pathB.lineTo(430, 280);
942 pathB.cubicTo(430, 278.895416f, 473.876068f, 278, 528, 278);
943 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000944 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000945}
946
947/* didn't investigate thoroughly, but looks to be missorting quad and cubic
948 {{468.507751,560.724426}, {467.275146,552.856262}, {465.84668,547.288391}}
949 {{463.779907,542.671143}, {464.829529,542.672974}, {466.946289,550.755676}, {468.507751,560.724426}}
950 decision maker is case 14 leftLessThanRight
951 */
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000952static void skptcmevents_org23(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000953 SkPath path;
954 path.setFillType(SkPath::kEvenOdd_FillType);
955 path.moveTo(465.503998f, 546);
956 path.lineTo(347, 546);
957 path.lineTo(347, 632);
958 path.lineTo(469.104248f, 632);
959 path.quadTo(470.79007f, 627.638672f, 471.833496f, 621.036255f);
960 path.quadTo(474.902588f, 601.562866f, 470.591064f, 574.024353f);
961 path.lineTo(468.507751f, 560.724426f);
962 path.quadTo(467.275146f, 552.856262f, 465.84668f, 547.288391f);
963 path.quadTo(465.670349f, 546.601501f, 465.503998f, 546);
964 path.close();
965 SkPath pathB;
966 pathB.setFillType(SkPath::kInverseWinding_FillType);
967 pathB.moveTo(363.052246f, 542.495361f);
968 pathB.lineTo(463.779907f, 542.671143f);
969 pathB.cubicTo(464.829529f, 542.672974f, 466.946289f, 550.755676f, 468.507751f, 560.724426f);
970 pathB.lineTo(470.591064f, 574.024353f);
971 pathB.cubicTo(476.26178f, 610.226624f, 471.498932f, 639.557922f, 459.953003f, 639.537781f);
972 pathB.lineTo(368.727936f, 639.378601f);
973 pathB.cubicTo(351.933868f, 639.349304f, 337.053741f, 631.244324f, 335.492249f, 621.275574f);
974 pathB.lineTo(325.968597f, 560.475708f);
975 pathB.cubicTo(324.407104f, 550.506958f, 341.01001f, 542.456909f, 363.052246f, 542.495361f);
976 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000977 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000978}
979
commit-bot@chromium.org4431e772014-04-14 17:08:59 +0000980static void skpredbullskatearcade_es16(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +0000981 SkPath path;
982 path.setFillType(SkPath::kEvenOdd_FillType);
983 path.moveTo(936.765625f, 458.965302f);
984 path.cubicTo(937.028442f, 453.863251f, 933.145813f, 449.864502f, 928.093445f, 450.033905f);
985 path.lineTo(661.882263f, 458.958862f);
986 path.lineTo(661.875366f, 458.959106f);
987 path.cubicTo(656.828369f, 459.13205f, 652.525085f, 463.399719f, 652.258545f, 468.496124f);
988 path.lineTo(652.258179f, 468.503662f);
989 path.lineTo(649.021729f, 531.322754f);
990 path.cubicTo(648.75885f, 536.424805f, 652.641479f, 540.423523f, 657.693848f, 540.25415f);
991 path.lineTo(923.905029f, 531.329163f);
992 path.cubicTo(928.955017f, 531.159851f, 933.262268f, 526.890442f, 933.528809f, 521.791565f);
993 path.lineTo(933.529175f, 521.784363f);
994 path.lineTo(936.765625f, 458.965302f);
995 path.close();
996 SkPath pathB;
997 pathB.setFillType(SkPath::kInverseWinding_FillType);
998 pathB.moveTo(661.882263f, 458.958862f);
999 pathB.lineTo(928.093445f, 450.033905f);
1000 pathB.cubicTo(929.103882f, 450, 929.709961f, 454.108612f, 929.447144f, 459.210663f);
1001 pathB.lineTo(926.210693f, 522.029724f);
1002 pathB.cubicTo(926.079224f, 524.58075f, 925.153442f, 526.676208f, 924.143066f, 526.710083f);
1003 pathB.lineTo(657.931885f, 535.635071f);
1004 pathB.cubicTo(652.879456f, 535.804443f, 648.890259f, 533.873779f, 649.021729f, 531.322754f);
1005 pathB.lineTo(652.258179f, 468.503662f);
1006 pathB.cubicTo(652.520996f, 463.401611f, 656.829834f, 459.128235f, 661.882263f, 458.958862f);
1007 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001008 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001009}
1010
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001011static void skpfinanzasdigital_com9(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001012 SkPath path;
1013 path.setFillType(SkPath::kEvenOdd_FillType);
1014 path.moveTo(156, 126);
1015 path.quadTo(154.343552f, 126.000397f, 153.17157f, 127.17157f);
1016 path.quadTo(152.000397f, 128.343552f, 152, 130);
1017 path.lineTo(152, 174);
1018 path.lineTo(1114, 174);
1019 path.lineTo(1114, 130);
1020 path.quadTo(1113.99963f, 128.343552f, 1112.82837f, 127.17157f);
1021 path.quadTo(1111.65649f, 126.000397f, 1110, 126);
1022 path.lineTo(156, 126);
1023 path.close();
1024 SkPath pathB;
1025 pathB.setFillType(SkPath::kInverseWinding_FillType);
1026 pathB.moveTo(156, 126);
1027 pathB.lineTo(1110, 126);
1028 pathB.cubicTo(1111.65686f, 126, 1113, 127.790863f, 1113, 130);
1029 pathB.lineTo(1113, 174);
1030 pathB.lineTo(153, 174);
1031 pathB.lineTo(153, 130);
1032 pathB.cubicTo(153, 127.790863f, 154.34314f, 126, 156, 126);
1033 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001034 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001035}
caryclark@google.com7eaa53d2013-10-02 14:49:34 +00001036
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001037static void skppartainasdemo250_org56(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001038 SkPath path;
1039 path.setFillType(SkPath::kEvenOdd_FillType);
1040 path.moveTo(182.000015f, 645);
1041 path.lineTo(182, 640);
1042 path.cubicTo(174.322327f, 640, 166.644669f, 637.071045f, 160.786804f, 631.213196f);
1043 path.cubicTo(149.071075f, 619.497437f, 149.071075f, 600.502563f, 160.786804f, 588.786804f);
1044 path.lineTo(157.251266f, 585.251221f);
1045 path.quadTo(147, 595.502502f, 147.000015f, 610);
1046 path.quadTo(147, 624.482605f, 157.230255f, 634.727722f);
1047 path.quadTo(157.251251f, 634.748779f, 157.251282f, 634.748779f);
1048 path.quadTo(157.282852f, 634.780334f, 157.272263f, 634.769775f);
1049 path.quadTo(167.517334f, 645, 182.000015f, 645);
1050 path.close();
1051 SkPath pathB;
1052 pathB.setFillType(SkPath::kWinding_FillType);
1053 pathB.moveTo(182, 659.497498f);
1054 pathB.lineTo(206.748749f, 634.748718f);
1055 pathB.lineTo(182.000015f, 610);
1056 pathB.lineTo(132.502533f, 610);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001057 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001058}
1059
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001060static void skpmlk_com326(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001061 SkPath path;
1062 path.setFillType(SkPath::kEvenOdd_FillType);
1063 path.moveTo(154, 670);
1064 path.cubicTo(151.238571f, 670, 149, 672.238586f, 149, 675);
1065 path.lineTo(149, 710.001465f);
1066 path.cubicTo(149.000809f, 712.209961f, 150.791367f, 714, 153, 714);
1067 path.lineTo(189, 714);
1068 path.cubicTo(191.209137f, 714, 193, 712.209167f, 193, 710);
1069 path.lineTo(193, 675);
1070 path.cubicTo(193, 672.238586f, 190.761429f, 670, 188, 670);
1071 path.lineTo(154, 670);
1072 path.close();
1073 SkPath pathB;
1074 pathB.setFillType(SkPath::kInverseWinding_FillType);
1075 pathB.moveTo(154, 671);
1076 pathB.lineTo(188, 671);
1077 pathB.cubicTo(190.761429f, 671, 193, 672.790833f, 193, 675);
1078 pathB.lineTo(193, 710);
1079 pathB.cubicTo(193, 712.761414f, 190.761429f, 715, 188, 715);
1080 pathB.lineTo(154, 715);
1081 pathB.cubicTo(151.238571f, 715, 149, 712.761414f, 149, 710);
1082 pathB.lineTo(149, 675);
1083 pathB.cubicTo(149, 672.790833f, 151.238571f, 671, 154, 671);
1084 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001085 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001086}
1087
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001088static void skpcyclist_friends_gr52(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001089 SkPath path;
1090 path.setFillType(SkPath::kEvenOdd_FillType);
1091 path.moveTo(50, 182);
1092 path.lineTo(1215, 182);
1093 path.lineTo(1215, 202);
1094 path.quadTo(1214.99951f, 204.070572f, 1213.53552f, 205.535538f);
1095 path.quadTo(1212.07056f, 206.999496f, 1210, 207);
1096 path.lineTo(55, 207);
1097 path.quadTo(52.9294319f, 206.999496f, 51.4644661f, 205.535538f);
1098 path.quadTo(50.0004997f, 204.070572f, 50, 202);
1099 path.lineTo(50, 182);
1100 path.close();
1101 SkPath pathB;
1102 pathB.setFillType(SkPath::kInverseWinding_FillType);
1103 pathB.moveTo(50, 183);
1104 pathB.lineTo(1215, 183);
1105 pathB.lineTo(1215, 202);
1106 pathB.cubicTo(1215, 204.761429f, 1212.76147f, 207, 1210, 207);
1107 pathB.lineTo(55, 207);
1108 pathB.cubicTo(52.238575f, 207, 50, 204.761429f, 50, 202);
1109 pathB.lineTo(50, 183);
1110 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001111 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001112}
1113
1114/* cubic ends just above opp line */
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001115static void skpwww_fj_p_com_22(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001116 SkPath path;
1117 path.setFillType(SkPath::kEvenOdd_FillType);
1118 path.moveTo(172, 201);
1119 path.lineTo(172, 202);
1120 path.lineTo(220, 202);
1121 path.cubicTo(221.65686f, 202, 223, 200.65686f, 223, 199);
1122 path.cubicTo(223, 200.104568f, 221.65686f, 201, 220, 201);
1123 path.lineTo(172, 201);
1124 path.close();
1125 SkPath pathB;
1126 pathB.setFillType(SkPath::kWinding_FillType);
1127 pathB.moveTo(161, 202);
1128 pathB.lineTo(161, 199);
1129 pathB.lineTo(223, 199.000015f);
1130 pathB.lineTo(223, 202);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001131 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001132}
1133
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001134// pair of lines are not quite coincident, so sorting line/cubic fails (i think)
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001135static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001136 SkPath path;
1137 path.setFillType(SkPath::kEvenOdd_FillType);
1138 path.moveTo(806, 57);
1139 path.cubicTo(806, 55.3431473f, 807.34314f, 54, 809, 54);
1140 path.lineTo(930, 54);
1141 path.cubicTo(931.65686f, 54, 933, 55.3431473f, 933, 57);
1142 path.lineTo(933, 91);
1143 path.cubicTo(933, 92.6568527f, 931.65686f, 94, 930, 94);
1144 path.lineTo(809, 94);
1145 path.cubicTo(807.34314f, 94, 806, 92.6568527f, 806, 91);
1146 path.lineTo(806, 57);
1147 path.close();
1148 path.moveTo(808, 58);
1149 path.cubicTo(808, 56.8954315f, 808.895447f, 56, 810, 56);
1150 path.lineTo(929, 56);
1151 path.cubicTo(930.104553f, 56, 931, 56.8954315f, 931, 58);
1152 path.lineTo(931, 90);
1153 path.cubicTo(931, 91.1045685f, 930.104553f, 92, 929, 92);
1154 path.lineTo(810, 92);
1155 path.cubicTo(808.895447f, 92, 808, 91.1045685f, 808, 90);
1156 path.lineTo(808, 58);
1157 path.close();
1158 SkPath pathB;
1159 pathB.setFillType(SkPath::kWinding_FillType);
1160 pathB.moveTo(806, 54);
1161 pathB.lineTo(808, 56);
1162 pathB.lineTo(935.02002f, 56.0200005f);
1163 pathB.lineTo(933, 54);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001164 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001165}
1166
1167// pair of curves have nearly the same initial tangent but are sorting by
1168// that alone sorts them incorrectly. Need to detect that tangents are nearly
1169// identical and not reliable by themselves
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001170static void skppptv_com_62(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001171 SkPath path;
1172 path.setFillType(SkPath::kEvenOdd_FillType);
1173 path.moveTo(173, 5342);
1174 path.quadTo(171.343536f, 5342.00049f, 170.17157f, 5343.17139f);
1175 path.quadTo(169.000397f, 5344.34375f, 169, 5346);
1176 path.lineTo(169, 5372);
1177 path.lineTo(234, 5372);
1178 path.lineTo(234, 5346);
1179 path.quadTo(233.999603f, 5344.34375f, 232.82843f, 5343.17139f);
1180 path.quadTo(231.656464f, 5342.00049f, 230, 5342);
1181 path.lineTo(173, 5342);
1182 path.close();
1183 SkPath pathB;
1184 pathB.setFillType(SkPath::kInverseWinding_FillType);
1185 pathB.moveTo(173, 5342);
1186 pathB.lineTo(230, 5342);
1187 pathB.cubicTo(231.65686f, 5342, 233, 5343.79102f, 233, 5346);
1188 pathB.lineTo(233, 5372);
1189 pathB.lineTo(169, 5372);
1190 pathB.lineTo(169, 5346);
1191 pathB.cubicTo(169, 5343.79102f, 170.790863f, 5342, 173, 5342);
1192 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001193 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001194}
1195
1196// nearly identical to lavoixdunord -- to not-quite-coincident lines
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001197static void skpwww_booking_com_68(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001198 SkPath path;
1199 path.setFillType(SkPath::kEvenOdd_FillType);
1200 path.moveTo(90, 187);
1201 path.cubicTo(90, 185.34314f, 91.3431473f, 184, 93, 184);
1202 path.lineTo(588, 184);
1203 path.cubicTo(589.65686f, 184, 591, 185.34314f, 591, 187);
1204 path.lineTo(591, 218);
1205 path.cubicTo(591, 219.65686f, 589.65686f, 221, 588, 221);
1206 path.lineTo(93, 221);
1207 path.cubicTo(91.3431473f, 221, 90, 219.65686f, 90, 218);
1208 path.lineTo(90, 187);
1209 path.close();
1210 path.moveTo(92, 188);
1211 path.cubicTo(92, 186.895432f, 92.8954315f, 186, 94, 186);
1212 path.lineTo(587, 186);
1213 path.cubicTo(588.104553f, 186, 589, 186.895432f, 589, 188);
1214 path.lineTo(589, 217);
1215 path.cubicTo(589, 218.104568f, 588.104553f, 219, 587, 219);
1216 path.lineTo(94, 219);
1217 path.cubicTo(92.8954315f, 219, 92, 218.104568f, 92, 217);
1218 path.lineTo(92, 188);
1219 path.close();
1220 SkPath pathB;
1221 pathB.setFillType(SkPath::kWinding_FillType);
1222 pathB.moveTo(90, 184);
1223 pathB.lineTo(92, 186);
1224 pathB.lineTo(593.02002f, 186.020004f);
1225 pathB.lineTo(591, 184);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001226 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001227}
1228
1229// visually looks like lavoixdunord and www_booking_com
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001230static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001231 SkPath path;
1232 path.setFillType(SkPath::kEvenOdd_FillType);
1233 path.moveTo(635, 1788);
1234 path.cubicTo(635, 1786.34314f, 636.34314f, 1785, 638, 1785);
1235 path.lineTo(832, 1785);
1236 path.cubicTo(833.65686f, 1785, 835, 1786.34314f, 835, 1788);
1237 path.lineTo(835, 1812);
1238 path.cubicTo(835, 1813.65686f, 833.65686f, 1815, 832, 1815);
1239 path.lineTo(638, 1815);
1240 path.cubicTo(636.34314f, 1815, 635, 1813.65686f, 635, 1812);
1241 path.lineTo(635, 1788);
1242 path.close();
1243 path.moveTo(637, 1789);
1244 path.cubicTo(637, 1787.89539f, 637.895447f, 1787, 639, 1787);
1245 path.lineTo(831, 1787);
1246 path.cubicTo(832.104553f, 1787, 833, 1787.89539f, 833, 1789);
1247 path.lineTo(833, 1811);
1248 path.cubicTo(833, 1812.10461f, 832.104553f, 1813, 831, 1813);
1249 path.lineTo(639, 1813);
1250 path.cubicTo(637.895447f, 1813, 637, 1812.10461f, 637, 1811);
1251 path.lineTo(637, 1789);
1252 path.close();
1253 SkPath pathB;
1254 pathB.setFillType(SkPath::kWinding_FillType);
1255 pathB.moveTo(835, 1785);
1256 pathB.lineTo(833, 1787);
1257 pathB.lineTo(832.97998f, 1817.02002f);
1258 pathB.lineTo(835, 1815);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001259 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001260}
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001261
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001262static void skpwww_joomla_org_23(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001263 SkPath path;
1264 path.setFillType(SkPath::kEvenOdd_FillType);
1265 path.moveTo(320, 347);
1266 path.cubicTo(320, 344.238586f, 322.238586f, 342, 325, 342);
1267 path.lineTo(416, 342);
1268 path.cubicTo(418.761414f, 342, 421, 344.238586f, 421, 347);
1269 path.cubicTo(421, 344.790863f, 418.761414f, 343, 416, 343);
1270 path.lineTo(325, 343);
1271 path.cubicTo(322.238586f, 343, 320, 344.790863f, 320, 347);
1272 path.close();
1273 path.moveTo(320, 378);
1274 path.cubicTo(320, 380.761414f, 322.238586f, 383, 325, 383);
1275 path.lineTo(416, 383);
1276 path.cubicTo(418.761414f, 383, 421, 380.761414f, 421, 378);
1277 path.cubicTo(421, 380.209137f, 418.761414f, 382, 416, 382);
1278 path.lineTo(325, 382);
1279 path.cubicTo(322.238586f, 382, 320, 380.209137f, 320, 378);
1280 path.close();
1281 SkPath pathB;
1282 pathB.setFillType(SkPath::kWinding_FillType);
1283 pathB.moveTo(320, 383);
1284 pathB.lineTo(320, 378);
1285 pathB.lineTo(421, 378.000031f);
1286 pathB.lineTo(421, 383);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001287 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001288}
1289
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001290static void skpwww_macrumors_com_131(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001291 SkPath path;
1292 path.setFillType(SkPath::kEvenOdd_FillType);
1293 path.moveTo(136, 14089);
1294 path.lineTo(136, 14056);
1295 path.lineTo(778, 14056);
1296 path.lineTo(778, 14089);
1297 path.quadTo(777.999573f, 14090.6562f, 776.82843f, 14091.8281f);
1298 path.quadTo(775.656433f, 14093, 774, 14093);
1299 path.lineTo(140, 14093);
1300 path.quadTo(138.343552f, 14093, 137.17157f, 14091.8281f);
1301 path.quadTo(136.000397f, 14090.6562f, 136, 14089);
1302 path.close();
1303 SkPath pathB;
1304 pathB.setFillType(SkPath::kInverseWinding_FillType);
1305 pathB.moveTo(136, 14057);
1306 pathB.lineTo(778, 14057);
1307 pathB.lineTo(778, 14089);
1308 pathB.cubicTo(778, 14091.209f, 776.209167f, 14093, 774, 14093);
1309 pathB.lineTo(140, 14093);
1310 pathB.cubicTo(137.790863f, 14093, 136, 14091.209f, 136, 14089);
1311 pathB.lineTo(136, 14057);
1312 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001313 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001314}
1315
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001316static void skpwww_leadpages_net_84(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001317 SkPath path;
1318 path.setFillType(SkPath::kEvenOdd_FillType);
1319 path.moveTo(377.1716f, 5910.17139f);
1320 path.cubicTo(376.447723f, 5910.89551f, 376, 5911.89551f, 376, 5913);
1321 path.lineTo(376, 5972);
1322 path.cubicTo(376, 5974.20898f, 377.790863f, 5976, 380, 5976);
1323 path.cubicTo(378.34314f, 5976, 377, 5974.20898f, 377, 5972);
1324 path.lineTo(377, 5913);
1325 path.cubicTo(377, 5912.17139f, 377.335785f, 5911.42188f, 377.878693f, 5910.87891f);
1326 path.lineTo(377.1716f, 5910.17139f);
1327 path.close();
1328 SkPath pathB;
1329 pathB.setFillType(SkPath::kWinding_FillType);
1330 pathB.moveTo(376, 5909);
1331 pathB.lineTo(378.481873f, 5909);
1332 pathB.lineTo(379.999878f, 5976);
1333 pathB.lineTo(376, 5976);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001334 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001335}
1336
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001337static void skpwww_briian_com_34(skiatest::Reporter* reporter, const char* filename) {
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001338 SkPath path;
1339 path.setFillType(SkPath::kEvenOdd_FillType);
1340 path.moveTo(843, 216);
1341 path.cubicTo(843, 213.238571f, 845.238586f, 211, 848, 211);
1342 path.lineTo(1191, 211);
1343 path.cubicTo(1193.76147f, 211, 1196, 213.238571f, 1196, 216);
1344 path.lineTo(1196, 779);
1345 path.cubicTo(1196, 781.761414f, 1193.76147f, 784, 1191, 784);
1346 path.lineTo(848, 784);
1347 path.cubicTo(845.238586f, 784, 843, 781.761414f, 843, 779);
1348 path.lineTo(843, 216);
1349 path.close();
1350 path.moveTo(844, 217);
1351 path.cubicTo(844, 214.238571f, 846.238586f, 212, 849, 212);
1352 path.lineTo(1190, 212);
1353 path.cubicTo(1192.76147f, 212, 1195, 214.238571f, 1195, 217);
1354 path.lineTo(1195, 778);
1355 path.cubicTo(1195, 779.65686f, 1192.76147f, 781, 1190, 781);
1356 path.lineTo(849, 781);
1357 path.cubicTo(846.238586f, 781, 844, 779.65686f, 844, 778);
1358 path.lineTo(844, 217);
1359 path.close();
1360 SkPath pathB;
1361 pathB.setFillType(SkPath::kWinding_FillType);
1362 pathB.moveTo(843, 784);
1363 pathB.lineTo(843, 779);
1364 pathB.lineTo(1196, 779.000061f);
1365 pathB.lineTo(1196, 784);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001366 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001367}
1368
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001369static void skpwww_sciality_com_100(skiatest::Reporter* reporter, const char* filename) {
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001370 SkPath path;
1371 path.setFillType(SkPath::kEvenOdd_FillType);
1372 path.moveTo(162, 468);
1373 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472);
1374 path.lineTo(158, 528);
1375 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532);
1376 path.lineTo(275, 532);
1377 path.cubicTo(277.209137f, 532, 279, 530.209106f, 279, 528);
1378 path.lineTo(279, 472);
1379 path.cubicTo(279, 469.790863f, 277.209137f, 468, 275, 468);
1380 path.lineTo(162, 468);
1381 path.close();
1382 SkPath pathB;
1383 pathB.setFillType(SkPath::kWinding_FillType);
1384 pathB.moveTo(275, 468);
1385 pathB.cubicTo(276.65686f, 468, 278, 469.34314f, 278, 471);
1386 pathB.lineTo(278, 529);
1387 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532);
1388 pathB.lineTo(161, 532);
1389 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529);
1390 pathB.lineTo(158, 471);
1391 pathB.cubicTo(158, 469.34314f, 159.34314f, 468, 161, 468);
1392 pathB.lineTo(275, 468);
1393 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001394 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001395}
1396
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001397static void skpwww_sciality_com_101(skiatest::Reporter* reporter, const char* filename) {
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001398 SkPath path;
1399 path.setFillType(SkPath::kEvenOdd_FillType);
1400 path.moveTo(162, 468);
1401 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472);
1402 path.lineTo(158, 528);
1403 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532);
1404 path.lineTo(275.009186f, 532);
1405 path.cubicTo(276.661774f, 531.994995f, 278, 530.653748f, 278, 529);
1406 path.lineTo(278, 471);
1407 path.cubicTo(278, 469.346375f, 276.662079f, 468.005249f, 275.009705f, 468);
1408 path.lineTo(162, 468);
1409 path.close();
1410 SkPath pathB;
1411 pathB.setFillType(SkPath::kInverseWinding_FillType);
1412 pathB.moveTo(161, 469);
1413 pathB.lineTo(275, 469);
1414 pathB.cubicTo(276.65686f, 469, 278, 469.895416f, 278, 471);
1415 pathB.lineTo(278, 529);
1416 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532);
1417 pathB.lineTo(161, 532);
1418 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529);
1419 pathB.lineTo(158, 471);
1420 pathB.cubicTo(158, 469.895416f, 159.34314f, 469, 161, 469);
1421 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001422 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001423}
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001424
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001425static void skpwww_meb_gov_tr_5(skiatest::Reporter* reporter, const char* filename) {
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001426 SkPath path;
1427 path.setFillType(SkPath::kEvenOdd_FillType);
1428 path.moveTo(137.34314f, 145.34314f);
1429 path.quadTo(139.687088f, 143.000793f, 143, 143);
1430 path.lineTo(242, 143);
1431 path.quadTo(245.312912f, 143.000793f, 247.65686f, 145.34314f);
1432 path.quadTo(249.999207f, 147.687088f, 250, 151);
1433 path.lineTo(250, 177);
1434 path.lineTo(135, 177);
1435 path.lineTo(135, 151);
1436 path.quadTo(135.000793f, 147.687088f, 137.34314f, 145.34314f);
1437 path.close();
1438 SkPath pathB;
1439 pathB.setFillType(SkPath::kWinding_FillType);
1440 pathB.moveTo(135, 143);
1441 pathB.lineTo(250, 143);
1442 pathB.lineTo(250, 177);
1443 pathB.lineTo(135, 177);
1444 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001445 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001446}
1447
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001448static void skpwww_meb_gov_tr_6(skiatest::Reporter* reporter, const char* filename) {
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001449 SkPath path;
1450 path.setFillType(SkPath::kEvenOdd_FillType);
1451 path.moveTo(143, 143);
1452 path.quadTo(139.687088f, 143.000793f, 137.34314f, 145.34314f);
1453 path.quadTo(135.000793f, 147.687088f, 135, 151);
1454 path.lineTo(135, 177);
1455 path.lineTo(250, 177);
1456 path.lineTo(250, 151);
1457 path.quadTo(249.999207f, 147.687088f, 247.65686f, 145.34314f);
1458 path.quadTo(245.312912f, 143.000793f, 242, 143);
1459 path.lineTo(143, 143);
1460 path.close();
1461 SkPath pathB;
1462 pathB.setFillType(SkPath::kInverseWinding_FillType);
1463 pathB.moveTo(143, 143);
1464 pathB.lineTo(242, 143);
1465 pathB.cubicTo(245.865997f, 143, 249, 146.581726f, 249, 151);
1466 pathB.lineTo(249, 177);
1467 pathB.lineTo(135, 177);
1468 pathB.lineTo(135, 151);
1469 pathB.cubicTo(135, 146.581726f, 138.581726f, 143, 143, 143);
1470 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001471 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001472}
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001473
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001474static void skpgithub_io_25(skiatest::Reporter* reporter, const char* filename) {
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001475 SkPath path;
1476 path.setFillType(SkPath::kEvenOdd_FillType);
1477 path.moveTo(1001.87866f, 14.8786793f);
1478 path.quadTo(1002.75745f, 14.0001001f, 1004, 14);
1479 path.lineTo(1105, 14);
1480 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f);
1481 path.quadTo(1107.99988f, 15.7574596f, 1108, 17);
1482 path.lineTo(1108, 41);
1483 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f);
1484 path.quadTo(1106.24255f, 43.9999008f, 1105, 44);
1485 path.lineTo(1004, 44);
1486 path.quadTo(1002.75745f, 43.9999008f, 1001.87866f, 43.1213188f);
1487 path.quadTo(1001.00012f, 42.2425423f, 1001, 41);
1488 path.lineTo(1001, 17);
1489 path.quadTo(1001.00012f, 15.7574596f, 1001.87866f, 14.8786793f);
1490 path.close();
1491 SkPath pathB;
1492 pathB.setFillType(SkPath::kInverseWinding_FillType);
1493 pathB.moveTo(1005, 16);
1494 pathB.lineTo(1104, 16);
1495 pathB.cubicTo(1105.10461f, 16, 1106, 16.8954296f, 1106, 18);
1496 pathB.lineTo(1106, 40);
1497 pathB.cubicTo(1106, 41.1045685f, 1105.10461f, 42, 1104, 42);
1498 pathB.lineTo(1005, 42);
1499 pathB.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40);
1500 pathB.lineTo(1003, 18);
1501 pathB.cubicTo(1003, 16.8954296f, 1003.89545f, 16, 1005, 16);
1502 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001503 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001504}
1505
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001506static void skpgithub_io_26(skiatest::Reporter* reporter, const char* filename) {
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001507 SkPath path;
1508 path.setFillType(SkPath::kEvenOdd_FillType);
1509 path.moveTo(1001.87866f, 14.8786793f);
1510 path.quadTo(1002.75745f, 14.0001001f, 1004, 14);
1511 path.lineTo(1105, 14);
1512 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f);
1513 path.quadTo(1107.99988f, 15.7574596f, 1108, 17);
1514 path.lineTo(1108, 41);
1515 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f);
1516 path.quadTo(1106.24255f, 43.9999008f, 1105, 44);
1517 path.lineTo(1004, 44);
1518 path.quadTo(1002.75745f, 43.9999008f, 1001.87866f, 43.1213188f);
1519 path.quadTo(1001.00012f, 42.2425423f, 1001, 41);
1520 path.lineTo(1001, 17);
1521 path.quadTo(1001.00012f, 15.7574596f, 1001.87866f, 14.8786793f);
1522 path.close();
1523 path.moveTo(1003, 18);
1524 path.cubicTo(1003, 16.8954296f, 1003.89545f, 16, 1005, 16);
1525 path.lineTo(1104, 16);
1526 path.cubicTo(1105.10461f, 16, 1106, 16.8954296f, 1106, 18);
1527 path.lineTo(1106, 40);
1528 path.cubicTo(1106, 41.1045685f, 1105.10461f, 42, 1104, 42);
1529 path.lineTo(1005, 42);
1530 path.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40);
1531 path.lineTo(1003, 18);
1532 path.close();
1533 SkPath pathB;
1534 pathB.setFillType(SkPath::kWinding_FillType);
1535 pathB.moveTo(1108, 14);
1536 pathB.lineTo(1106, 16);
1537 pathB.lineTo(1105.97998f, 46.0200005f);
1538 pathB.lineTo(1108, 44);
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001539 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
skia.committer@gmail.comf54ad6f2013-11-02 07:02:02 +00001540}
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00001541
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001542static void skpskpicture14(skiatest::Reporter* reporter, const char* filename) {
skia.committer@gmail.comed000842013-11-09 07:02:23 +00001543 SkPath path;
1544 path.setFillType(SkPath::kEvenOdd_FillType);
1545 path.moveTo(0, 994);
1546 path.lineTo(0, 0);
1547 path.lineTo(512, 0);
1548 path.lineTo(512, 994);
1549 path.lineTo(0, 994);
1550 path.close();
1551 SkPath pathB;
1552 pathB.setFillType(SkPath::kWinding_FillType);
1553 pathB.moveTo(-317, 168);
1554 pathB.quadTo(-317, 166.757385f, -316.121338f, 165.878662f);
1555 pathB.quadTo(-315.242645f, 165, -314, 165);
1556 pathB.lineTo(320, 165);
1557 pathB.quadTo(321.242615f, 165, 322.121338f, 165.878662f);
1558 pathB.quadTo(323, 166.757385f, 323, 168);
1559 pathB.lineTo(323, 193);
1560 pathB.lineTo(-317, 193);
1561 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001562 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
skia.committer@gmail.comed000842013-11-09 07:02:23 +00001563}
1564
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001565static void skpskpicture15(skiatest::Reporter* reporter, const char* filename) {
skia.committer@gmail.comed000842013-11-09 07:02:23 +00001566 SkPath path;
1567 path.setFillType(SkPath::kEvenOdd_FillType);
1568 path.moveTo(0, 193);
1569 path.lineTo(323, 193);
1570 path.lineTo(323, 168);
1571 path.quadTo(323, 166.757385f, 322.121338f, 165.878662f);
1572 path.quadTo(321.242615f, 165, 320, 165);
1573 path.lineTo(0, 165);
1574 path.lineTo(0, 193);
1575 path.close();
1576 SkPath pathB;
1577 pathB.setFillType(SkPath::kInverseWinding_FillType);
1578 pathB.moveTo(-314, 165);
1579 pathB.lineTo(320, 165);
1580 pathB.cubicTo(321.65686f, 165, 323, 166.34314f, 323, 168);
1581 pathB.lineTo(323, 192);
1582 pathB.lineTo(-317, 192);
1583 pathB.lineTo(-317, 168);
1584 pathB.cubicTo(-317, 166.34314f, -315.65686f, 165, -314, 165);
1585 pathB.close();
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001586 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
skia.committer@gmail.comed000842013-11-09 07:02:23 +00001587}
caryclark@google.com15107262013-11-08 18:00:01 +00001588
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00001589/* Three edges are partially coincident. Only one of the three knows about the other two.
1590 Subsequently, when the angle loop is created, it misses one of the edges.
1591 After coincident edges are processed, probably need a check-and-correct that makes sure the
1592 coincidences are all self-consistent.
1593 */
1594static void skpelpais_com_18(skiatest::Reporter* reporter, const char* filename) {
1595 SkPath path;
1596 path.setFillType(SkPath::kEvenOdd_FillType);
1597 path.moveTo(183, 8507);
1598 path.lineTo(552, 8506.99023f);
1599 path.lineTo(552, 8508);
1600 path.lineTo(183, 8508);
1601 path.lineTo(183, 8507);
1602 path.close();
1603 SkPath pathB;
1604 pathB.setFillType(SkPath::kWinding_FillType);
1605 pathB.moveTo(183, 8508);
1606 pathB.lineTo(183, 8506.99023f);
1607 pathB.lineTo(552, 8507);
1608 pathB.lineTo(552, 8508);
1609 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1610}
1611
1612/* this generates a pair of lines that are essentially coincident; but the next line at a right
1613 angle is not treated as if it intersects at the same point.
1614 There are several of options:
1615 move the intersection of the right angle line to the coincident point (should 'near' do this?
1616 construct another coincident pair from the right angle line to the coincident point
1617 treat the intersection as simple and not coincident
1618 */
1619static void skpnamecheap_com_405(skiatest::Reporter* reporter, const char* filename) {
1620 SkPath path;
1621 path.setFillType(SkPath::kEvenOdd_FillType);
1622 path.moveTo(140, 1000);
1623 path.lineTo(140, 842);
1624 path.lineTo(141, 842);
1625 path.lineTo(141.14502f, 1000);
1626 path.lineTo(140, 1000);
1627 path.close();
1628 SkPath pathB;
1629 pathB.setFillType(SkPath::kWinding_FillType);
1630 pathB.moveTo(140, 842);
1631 pathB.lineTo(141.008835f, 837.9646f);
1632 pathB.lineTo(141.235291f, 1109.05884f);
1633 pathB.lineTo(140, 1114);
1634 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1635}
1636
1637// fails on angle insert -- haven't investigated yet
1638static void skpwww_alrakoba_net_62(skiatest::Reporter* reporter, const char* filename) {
1639 SkPath path;
1640 path.setFillType(SkPath::kEvenOdd_FillType);
1641 path.moveTo(134.34314f, 9802.34277f);
1642 path.quadTo(132, 9804.68652f, 132, 9808);
1643 path.lineTo(132, 9822);
1644 path.quadTo(132, 9825.31348f, 134.34314f, 9827.65723f);
1645 path.quadTo(136.686295f, 9830, 140, 9830);
1646 path.lineTo(140.028473f, 9830);
1647 path.lineTo(139.877213f, 9828.90723f);
1648 path.quadTo(137.692032f, 9828.5332f, 136.050247f, 9826.65723f);
1649 path.quadTo(134, 9824.31348f, 134, 9821);
1650 path.lineTo(134, 9809);
1651 path.quadTo(134, 9806.10059f, 136.050247f, 9804.0498f);
1652 path.lineTo(134.34314f, 9802.34277f);
1653 path.close();
1654 SkPath pathB;
1655 pathB.setFillType(SkPath::kWinding_FillType);
1656 pathB.moveTo(132, 9800);
1657 pathB.lineTo(135.962357f, 9800);
1658 pathB.lineTo(140, 9830);
1659 pathB.lineTo(132, 9830);
1660 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1661}
1662
1663/* asserts in alignSpanState looks like a coincident related bug */
1664static void skpwww_cityads_ru_249(skiatest::Reporter* reporter, const char* filename) {
1665 SkPath path;
1666 path.setFillType(SkPath::kEvenOdd_FillType);
1667 path.moveTo(817.464478f, 11.4644661f);
1668 path.quadTo(818.928955f, 10, 821, 10);
1669 path.lineTo(998, 10);
1670 path.quadTo(999.082947f, 10, 1000, 10.4003992f);
1671 path.lineTo(1000, 13.3527431f);
1672 path.quadTo(999.917603f, 13.2607508f, 999.82843f, 13.1715727f);
1673 path.quadTo(998.65686f, 12, 997, 12);
1674 path.lineTo(822, 12);
1675 path.quadTo(820.34314f, 12, 819.17157f, 13.1715727f);
1676 path.quadTo(818, 14.3431454f, 818, 16);
1677 path.lineTo(818, 28);
1678 path.quadTo(818, 29.6568546f, 819.17157f, 30.8284264f);
1679 path.quadTo(820.34314f, 32, 822, 32);
1680 path.lineTo(997, 32);
1681 path.quadTo(998.65686f, 32, 999.82843f, 30.8284264f);
1682 path.quadTo(999.917603f, 30.7392426f, 1000, 30.6472569f);
1683 path.lineTo(1000, 33.5996017f);
1684 path.quadTo(999.082947f, 34, 998, 34);
1685 path.lineTo(821, 34);
1686 path.quadTo(818.928955f, 34, 817.464478f, 32.5355339f);
1687 path.quadTo(816, 31.0710678f, 816, 29);
1688 path.lineTo(816, 15);
1689 path.quadTo(816, 12.9289322f, 817.464478f, 11.4644661f);
1690 path.close();
1691 SkPath pathB;
1692 pathB.setFillType(SkPath::kWinding_FillType);
1693 pathB.moveTo(1003, 10);
1694 pathB.lineTo(1000, 13);
1695 pathB.lineTo(999.969971f, 37.0299988f);
1696 pathB.lineTo(1003, 34);
1697 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1698}
1699
1700// fails on angle insert
1701static void skpwww_dealnews_com_315(skiatest::Reporter* reporter, const char* filename) {
1702 SkPath path;
1703 path.setFillType(SkPath::kEvenOdd_FillType);
1704 path.moveTo(966.464478f, 4261.46436f);
1705 path.quadTo(965, 4262.92871f, 965, 4265);
1706 path.lineTo(965, 4276);
1707 path.quadTo(965, 4278.07129f, 966.464478f, 4279.53564f);
1708 path.quadTo(967.928955f, 4281, 970, 4281);
1709 path.lineTo(970.020325f, 4281);
1710 path.lineTo(969.887512f, 4279.81641f);
1711 path.quadTo(968.928284f, 4279.48145f, 968.17157f, 4278.53564f);
1712 path.quadTo(967, 4277.07129f, 967, 4275);
1713 path.lineTo(967, 4266);
1714 path.quadTo(967, 4264.44287f, 968.035217f, 4263.31396f);
1715 path.lineTo(968, 4263);
1716 path.lineTo(966.464478f, 4261.46436f);
1717 path.close();
1718 SkPath pathB;
1719 pathB.setFillType(SkPath::kWinding_FillType);
1720 pathB.moveTo(965, 4260);
1721 pathB.lineTo(967.716675f, 4260);
1722 pathB.lineTo(970, 4281);
1723 pathB.lineTo(965, 4281);
1724 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1725}
1726
1727// fails in intersections insert
1728static void skpwww_inmotionhosting_com_9(skiatest::Reporter* reporter, const char* filename) {
1729 SkPath path;
1730 path.setFillType(SkPath::kEvenOdd_FillType);
1731 path.moveTo(991.633911f, 1839);
1732 path.lineTo(964.265015f, 1839);
1733 path.lineTo(963.734985f, 1893.73242f);
1734 path.lineTo(991.3703f, 1894);
1735 path.lineTo(1018.23492f, 1894);
1736 path.lineTo(1018.76501f, 1839.2627f);
1737 path.lineTo(991.638184f, 1839);
1738 path.lineTo(991.633911f, 1839);
1739 path.close();
1740 SkPath pathB;
1741 pathB.setFillType(SkPath::kWinding_FillType);
1742 pathB.moveTo(964.267578f, 1838.73499f);
1743 pathB.lineTo(1019.26501f, 1839.26758f);
1744 pathB.lineTo(1018.73242f, 1894.26501f);
1745 pathB.lineTo(963.734985f, 1893.73242f);
1746 pathB.close();
1747 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1748}
1749
commit-bot@chromium.org8cb1daa2014-04-25 12:59:11 +00001750static void skpwww_alucinados_net_101(skiatest::Reporter* reporter, const char* filename) {
1751 SkPath path;
1752 path.setFillType(SkPath::kEvenOdd_FillType);
1753 path.moveTo(1129.53552f, 1164.46448f);
1754 path.lineTo(1128, 1166);
1755 path.lineTo(1128.12231f, 1166.49548f);
1756 path.quadTo(1129, 1167.56592f, 1129, 1169);
1757 path.lineTo(1129, 1170.05054f);
1758 path.lineTo(1130.34509f, 1175.49878f);
1759 path.quadTo(1131, 1174.38513f, 1131, 1173);
1760 path.lineTo(1131, 1168);
1761 path.quadTo(1131, 1165.92896f, 1129.53552f, 1164.46448f);
1762 path.close();
1763 SkPath pathB;
1764 pathB.setFillType(SkPath::kWinding_FillType);
1765 pathB.moveTo(1131, 1163);
1766 pathB.lineTo(-43515.8555f, -177415.594f);
1767 pathB.lineTo(1129.76465f, 1173.05884f);
1768 pathB.lineTo(1131, 1178);
1769 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1770}
1771
1772// /SkOpContour.cpp:278: failed assertion "!approximately_negative(oEndT - oStartT)
1773static void skpwww_hairjobsearch_com_31(skiatest::Reporter* reporter, const char* filename) {
1774 SkPath path;
1775 path.setFillType(SkPath::kEvenOdd_FillType);
1776 path.moveTo(143.292892f, 0.707106769f);
1777 path.quadTo(143, 0.414213538f, 143, 0);
1778 path.lineTo(1123, 0);
1779 path.quadTo(1123, 0.414213538f, 1122.70715f, 0.707106769f);
1780 path.quadTo(1122.41418f, 1, 1122, 1);
1781 path.lineTo(144, 1);
1782 path.quadTo(143.585785f, 1, 143.292892f, 0.707106769f);
1783 path.close();
1784 SkPath pathB;
1785 pathB.setFillType(SkPath::kWinding_FillType);
1786 pathB.moveTo(143, 1);
1787 pathB.lineTo(144, 0);
1788 pathB.lineTo(1122, 0);
1789 pathB.lineTo(1123, 1);
1790 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1791}
1792
1793// SkOpSegment::checkSmallCoincidence; line 1958 SkASSERT(span.fWindValue);
1794static void skpwww_heartiste_wordpress_com_86(skiatest::Reporter* reporter, const char* filename) {
1795 SkPath path;
1796 path.setFillType(SkPath::kEvenOdd_FillType);
1797 path.moveTo(741, 9432);
1798 path.lineTo(761, 9431.99023f);
1799 path.lineTo(761, 9433);
1800 path.lineTo(741, 9433);
1801 path.lineTo(741, 9432);
1802 path.close();
1803 SkPath pathB;
1804 pathB.setFillType(SkPath::kWinding_FillType);
1805 pathB.moveTo(741, 9433);
1806 pathB.lineTo(741, 9431.99023f);
1807 pathB.lineTo(761, 9432);
1808 pathB.lineTo(761, 9433);
1809 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1810}
1811
1812/*
1813 * 125 SkASSERT(index < fCount);
1814(gdb) bt
1815#0 0x000000000041094b in SkTDArray<SkOpSpan>::operator[] (this=0x18, index=2) at ../../include/core/SkTDArray.h:125
1816#1 0x00000000005ad2ce in SkOpSegment::tAtMid (this=0x0, start=2, end=5, mid=0.90000000000000002) at ../../src/pathops/SkOpSegment.h:219
1817#2 0x00000000005aadea in contourRangeCheckY (contourList=..., currentPtr=0x7fffd77f4ec0, indexPtr=0x7fffd77f4f88, endIndexPtr=0x7fffd77f4f8c, bestHit=0x7fffd77f4ec8,
1818 bestDx=0x7fffd77f4edc, tryAgain=0x7fffd77f4eff, midPtr=0x7fffd77f4e60, opp=false) at ../../src/pathops/SkPathOpsCommon.cpp:20
1819#3 0x00000000005ab8ee in rightAngleWinding (contourList=..., current=0x7fffd77f4ec0, index=0x7fffd77f4f88, endIndex=0x7fffd77f4f8c, tHit=0x7fffd77f4ec8, hitDx=0x7fffd77f4edc,
1820 */
1821#if TRY_NEW_TESTS
1822static void skpwww_argus_presse_fr_41(skiatest::Reporter* reporter, const char* filename) {
1823 SkPath path;
1824 path.setFillType(SkPath::kEvenOdd_FillType);
1825 path.moveTo(1000, 343);
1826 path.lineTo(165, 343);
1827 path.lineTo(165, 364.869873f);
1828 path.lineTo(1000, 364.869873f);
1829 path.lineTo(1000, 343);
1830 path.close();
1831 SkPath pathB;
1832 pathB.setFillType(SkPath::kWinding_FillType);
1833 pathB.moveTo(165, 343.000031f);
1834 pathB.lineTo(1000, 343.000031f);
1835 pathB.lineTo(1000, 364.869904f);
1836 pathB.lineTo(165, 364.869904f);
1837 pathB.close();
1838 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1839}
1840#endif
1841
1842// SkOpSegment::checkSmallCoincidence; line 1958 SkASSERT(span.fWindValue);
1843static void skpwww_320kbps_net_2231(skiatest::Reporter* reporter, const char* filename) {
1844 SkPath path;
1845 path.setFillType(SkPath::kEvenOdd_FillType);
1846 path.moveTo(838, 9125);
1847 path.lineTo(862, 9124.99023f);
1848 path.lineTo(862, 9126);
1849 path.lineTo(838, 9126);
1850 path.lineTo(838, 9125);
1851 path.close();
1852 SkPath pathB;
1853 pathB.setFillType(SkPath::kWinding_FillType);
1854 pathB.moveTo(838, 9126);
1855 pathB.lineTo(838, 9124.99023f);
1856 pathB.lineTo(862, 9125);
1857 pathB.lineTo(862, 9126);
1858 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1859}
1860
1861// debugValidateLoop loop sum fails
1862static void skpwww_exystence_net_61(skiatest::Reporter* reporter, const char* filename) {
1863 SkPath path;
1864 path.setFillType(SkPath::kEvenOdd_FillType);
1865 path.moveTo(143, 9075);
1866 path.lineTo(316, 9075);
1867 path.lineTo(316, 9073.99023f);
1868 path.lineTo(143, 9074);
1869 path.lineTo(143, 9075);
1870 path.close();
1871 SkPath pathB;
1872 pathB.setFillType(SkPath::kWinding_FillType);
1873 pathB.moveTo(143, 9075);
1874 pathB.lineTo(143, 9073.99023f);
1875 pathB.lineTo(316, 9074);
1876 pathB.lineTo(316, 9075);
1877 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1878}
1879
1880// debugValidateLoop loop sum fails
1881static void skpwww_trashness_com_36(skiatest::Reporter* reporter, const char* filename) {
1882 SkPath path;
1883 path.setFillType(SkPath::kEvenOdd_FillType);
1884 path.moveTo(541.5f, 4835.99512f);
1885 path.lineTo(91.5f, 4836);
1886 path.lineTo(91.5f, 4836.5f);
1887 path.lineTo(541.5f, 4836.5f);
1888 path.lineTo(541.5f, 4835.99512f);
1889 path.close();
1890 SkPath pathB;
1891 pathB.setFillType(SkPath::kWinding_FillType);
1892 pathB.moveTo(91.5f, 4836.5f);
1893 pathB.lineTo(91.5f, 4835.99512f);
1894 pathB.lineTo(541.5f, 4836);
1895 pathB.lineTo(541.5f, 4836.5f);
1896 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1897}
1898
1899// SkIntersections::lineVertical fUsed >= fMax
1900static void skpwww_getgold_jp_731(skiatest::Reporter* reporter, const char* filename) {
1901 SkPath path;
1902 path.setFillType(SkPath::kEvenOdd_FillType);
1903 path.moveTo(284.878693f, 10134.8789f);
1904 path.quadTo(284, 10135.7578f, 284, 10137);
1905 path.lineTo(284, 10216);
1906 path.quadTo(284, 10217.2422f, 284.878693f, 10218.1211f);
1907 path.quadTo(285.125122f, 10218.3672f, 285.40213f, 10218.5459f);
1908 path.lineTo(286, 10138);
1909 path.lineTo(286, 10136);
1910 path.lineTo(284.878693f, 10134.8789f);
1911 path.close();
1912 SkPath pathB;
1913 pathB.setFillType(SkPath::kWinding_FillType);
1914 pathB.moveTo(284, 10134);
1915 pathB.lineTo(286.05957f, 10129.8809f);
1916 pathB.lineTo(285.399994f, 10216.2002f);
1917 pathB.lineTo(284, 10219);
1918 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1919}
1920
1921// SkOpContour::calcPartialCoincidentWinding SkASSERT(!approximately_negative(endT - startT));
1922static void skpwww_maturesupertube_com_21(skiatest::Reporter* reporter, const char* filename) {
1923 SkPath path;
1924 path.setFillType(SkPath::kEvenOdd_FillType);
1925 path.moveTo(3.17157292f, 11831.1719f);
1926 path.quadTo(4.34314585f, 11830, 6, 11830);
1927 path.lineTo(1259, 11830);
1928 path.quadTo(1260.65686f, 11830, 1261.82837f, 11831.1719f);
1929 path.quadTo(1263, 11832.3428f, 1263, 11834);
1930 path.lineTo(1263, 11848);
1931 path.quadTo(1263, 11849.6572f, 1261.82837f, 11850.8281f);
1932 path.quadTo(1260.65686f, 11852, 1259, 11852);
1933 path.lineTo(6, 11852);
1934 path.quadTo(4.34314585f, 11852, 3.17157292f, 11850.8281f);
1935 path.quadTo(2, 11849.6572f, 2, 11848);
1936 path.lineTo(2, 11834);
1937 path.quadTo(2, 11832.3428f, 3.17157292f, 11831.1719f);
1938 path.close();
1939 path.moveTo(3.87867975f, 11831.8789f);
1940 path.quadTo(4.7573595f, 11831, 6, 11831);
1941 path.lineTo(1259, 11831);
1942 path.quadTo(1260.24268f, 11831, 1261.12134f, 11831.8789f);
1943 path.quadTo(1262, 11832.7578f, 1262, 11834);
1944 path.lineTo(1262, 11848);
1945 path.quadTo(1262, 11849.2422f, 1261.12134f, 11850.1211f);
1946 path.quadTo(1260.24268f, 11851, 1259, 11851);
1947 path.lineTo(6, 11851);
1948 path.quadTo(4.7573595f, 11851, 3.87867975f, 11850.1211f);
1949 path.quadTo(3, 11849.2422f, 3, 11848);
1950 path.lineTo(3, 11834);
1951 path.quadTo(3, 11832.7578f, 3.87867975f, 11831.8789f);
1952 path.close();
1953 SkPath pathB;
1954 pathB.setFillType(SkPath::kWinding_FillType);
1955 pathB.moveTo(2, 11830);
1956 pathB.lineTo(4.5f, 11832.5f);
1957 pathB.lineTo(1260.5f, 11832.5f);
1958 pathB.lineTo(1263, 11830);
1959 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1960}
1961
1962// can't find winding of remaining vertical edges
1963static void skpwww_hubbyscook_com_22(skiatest::Reporter* reporter, const char* filename) {
1964 SkPath path;
1965 path.setFillType(SkPath::kEvenOdd_FillType);
1966 path.moveTo(1000, 902.329346f);
1967 path.quadTo(998, 905.250427f, 998, 909);
1968 path.lineTo(998, 910);
1969 path.quadTo(998, 913.749573f, 1000, 916.670654f);
1970 path.lineTo(1000, 902.329346f);
1971 path.close();
1972 SkPath pathB;
1973 pathB.setFillType(SkPath::kWinding_FillType);
1974 pathB.moveTo(998, 910);
1975 pathB.lineTo(998, 909);
1976 pathB.quadTo(998, 904.029419f, 1001.51471f, 900.514709f);
1977 pathB.quadTo(1005.02942f, 897, 1010, 897);
1978 pathB.lineTo(1011, 897);
1979 pathB.quadTo(1015.14215f, 897, 1018.07104f, 900.514709f);
1980 pathB.quadTo(1021, 904.029419f, 1021, 909);
1981 pathB.lineTo(1021, 910);
1982 pathB.quadTo(1021, 914.142151f, 1018.07104f, 917.071045f);
1983 pathB.quadTo(1015.14215f, 920, 1011, 920);
1984 pathB.lineTo(1010, 920);
1985 pathB.quadTo(1005.02942f, 920, 1001.51471f, 917.071045f);
1986 pathB.quadTo(998, 914.142151f, 998, 910);
1987 pathB.close();
1988 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
1989}
1990
1991// calcCoincidentWinding asserts in zeroSpan
1992#if TRY_NEW_TESTS
1993static void skpwww_gruposejaumdivulgador_com_br_4(skiatest::Reporter* reporter, const char* filename) {
1994 SkPath path;
1995 path.setFillType(SkPath::kEvenOdd_FillType);
1996 path.moveTo(610.5f, 5.78626502e-14f);
1997 path.lineTo(1083.5f, -6.12303177e-17f);
1998 path.lineTo(1083.5f, 469);
1999 path.lineTo(610.5f, 469);
2000 path.lineTo(610.5f, 5.78626502e-14f);
2001 path.close();
2002 SkPath pathB;
2003 pathB.setFillType(SkPath::kWinding_FillType);
2004 pathB.moveTo(611, 0);
2005 pathB.lineTo(1084, 0);
2006 pathB.lineTo(1084, 469);
2007 pathB.lineTo(611, 469);
2008 pathB.close();
2009 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2010}
2011#endif
2012
2013// asserts in bridgeOp simple->isClosed()
2014#if TRY_NEW_TESTS_IS_CLOSED
2015static void skpwww_phototransferapp_com_24(skiatest::Reporter* reporter, const char* filename) {
2016 SkPath path;
2017 path.setFillType(SkPath::kEvenOdd_FillType);
2018 path.moveTo(85.6091843f, 5.92893219f);
2019 path.quadTo(89.6041641f, 3, 93.7462997f, 3);
2020 path.lineTo(1212.74634f, 3);
2021 path.quadTo(1216.88843f, 3, 1218.75134f, 5.92893219f);
2022 path.quadTo(1220.61414f, 8.85775471f, 1219.10669f, 12.9996767f);
2023 path.quadTo(1220.46338f, 9.27196693f, 1218.4939f, 6.63603878f);
2024 path.quadTo(1216.52441f, 4, 1212.38232f, 4);
2025 path.lineTo(93.3823318f, 4);
2026 path.quadTo(89.2401962f, 4, 85.3518219f, 6.63603878f);
2027 path.quadTo(81.4634476f, 9.27207756f, 80.1065979f, 13);
2028 path.quadTo(81.614212f, 8.85786438f, 85.6091843f, 5.92893219f);
2029 path.close();
2030 SkPath pathB;
2031 pathB.setFillType(SkPath::kWinding_FillType);
2032 pathB.moveTo(83.7462997f, 3);
2033 pathB.lineTo(1222.74634f, 3);
2034 pathB.lineTo(1219.10657f, 13);
2035 pathB.lineTo(80.1065979f, 13);
2036 pathB.close();
2037 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2038}
2039#endif
2040
2041// !simple->isClosed()
2042#if TRY_NEW_TESTS_IS_CLOSED
2043static void skpwww_helha_be_109(skiatest::Reporter* reporter, const char* filename) {
2044 SkPath path;
2045 path.setFillType(SkPath::kEvenOdd_FillType);
2046 path.moveTo(117.686981f, 3339.08423f);
2047 path.lineTo(109.533035f, 3350.72925f);
2048 path.quadTo(107.120552f, 3354.17456f, 103.879379f, 3354.41821f);
2049 path.quadTo(100.638504f, 3354.66187f, 98.4674301f, 3351.56177f);
2050 path.quadTo(100.87973f, 3355.00635f, 104.291222f, 3355.00635f);
2051 path.quadTo(107.70298f, 3355.00635f, 110.115463f, 3351.56104f);
2052 path.lineTo(118, 3340.30078f);
2053 path.lineTo(118, 3339.53125f);
2054 path.lineTo(117.686981f, 3339.08423f);
2055 path.close();
2056 SkPath pathB;
2057 pathB.setFillType(SkPath::kWinding_FillType);
2058 pathB.moveTo(118.269409f, 3339.91602f);
2059 pathB.lineTo(117.686981f, 3339.08423f);
2060 pathB.lineTo(98.4669647f, 3351.56104f);
2061 pathB.lineTo(104.291214f, 3359.87891f);
2062 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2063}
2064#endif
2065
2066// !simple->isClosed()
2067static void skpwww_cooksnaps_com_32(skiatest::Reporter* reporter, const char* filename) {
2068 SkPath path;
2069 path.setFillType(SkPath::kEvenOdd_FillType);
2070 path.moveTo(509.34021f, 176);
2071 path.lineTo(505, 176);
2072 path.quadTo(500.964233f, 176, 497.299988f, 176.896912f);
2073 path.quadTo(493.678162f, 177.952286f, 490.183014f, 179.9702f);
2074 path.lineTo(489.316986f, 180.4702f);
2075 path.quadTo(485.175385f, 182.861359f, 482.115265f, 186.082397f);
2076 path.quadTo(479.69455f, 188.700821f, 477.995941f, 191.618286f);
2077 path.quadTo(476.316772f, 194.550476f, 475.258759f, 197.959335f);
2078 path.quadTo(474, 202.218979f, 474, 207);
2079 path.lineTo(474, 208);
2080 path.quadTo(474, 212.03569f, 474.896851f, 215.699799f);
2081 path.quadTo(475.950256f, 219.315002f, 477.962708f, 222.803986f);
2082 path.lineTo(477.970215f, 222.816986f);
2083 path.lineTo(478.470215f, 223.683014f);
2084 path.quadTo(478.474915f, 223.691162f, 478.479645f, 223.69931f);
2085 path.quadTo(480.867981f, 227.831055f, 484.082947f, 230.885254f);
2086 path.quadTo(486.701447f, 233.305939f, 489.61908f, 235.004517f);
2087 path.quadTo(492.550232f, 236.682983f, 495.957611f, 237.740738f);
2088 path.quadTo(500.217987f, 239, 505, 239);
2089 path.lineTo(509.482178f, 239);
2090 path.quadTo(515.299133f, 238.212051f, 520.801941f, 235.038513f);
2091 path.quadTo(520.809509f, 235.034164f, 520.817017f, 235.0298f);
2092 path.lineTo(521.683044f, 234.5298f);
2093 path.quadTo(521.692078f, 234.524582f, 521.701111f, 234.519348f);
2094 path.quadTo(532.80603f, 228.09938f, 536.126709f, 215.70639f);
2095 path.quadTo(539.450134f, 203.303314f, 533.029785f, 192.183014f);
2096 path.lineTo(532.529785f, 191.316986f);
2097 path.quadTo(526.109497f, 180.196686f, 513.706421f, 176.873276f);
2098 path.quadTo(511.503082f, 176.282898f, 509.34021f, 176);
2099 path.close();
2100 SkPath pathB;
2101 pathB.setFillType(SkPath::kWinding_FillType);
2102 pathB.moveTo(478.470215f, 223.683014f);
2103 pathB.lineTo(477.970215f, 222.816986f);
2104 pathB.quadTo(471.549896f, 211.696686f, 474.873322f, 199.293594f);
2105 pathB.quadTo(478.196686f, 186.890503f, 489.316986f, 180.4702f);
2106 pathB.lineTo(490.183014f, 179.9702f);
2107 pathB.quadTo(501.303345f, 173.549896f, 513.706421f, 176.873276f);
2108 pathB.quadTo(526.109497f, 180.196686f, 532.529785f, 191.316986f);
2109 pathB.lineTo(533.029785f, 192.183014f);
2110 pathB.quadTo(539.450134f, 203.303314f, 536.126709f, 215.70639f);
2111 pathB.quadTo(532.803345f, 228.109497f, 521.683044f, 234.5298f);
2112 pathB.lineTo(520.817017f, 235.0298f);
2113 pathB.quadTo(509.696686f, 241.450104f, 497.29361f, 238.126709f);
2114 pathB.quadTo(484.890533f, 234.803314f, 478.470215f, 223.683014f);
2115 pathB.close();
2116 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2117}
2118
2119// !simple->isClosed()
2120static void skpwww_contextualnewsfeeds_com_346(skiatest::Reporter* reporter, const char* filename) {
2121 SkPath path;
2122 path.setFillType(SkPath::kEvenOdd_FillType);
2123 path.moveTo(460.257355f, 1202.27808f);
2124 path.lineTo(460.257355f, 1204.27808f);
2125 path.quadTo(461.081207f, 1204.27808f, 461.665161f, 1203.69873f);
2126 path.lineTo(461.67157f, 1203.69238f);
2127 path.lineTo(466.621307f, 1198.74268f);
2128 path.quadTo(466.623993f, 1198.73999f, 466.626648f, 1198.7373f);
2129 path.quadTo(466.914185f, 1198.44604f, 466.914185f, 1198.03552f);
2130 path.quadTo(466.914215f, 1197.62122f, 466.621307f, 1197.32837f);
2131 path.lineTo(465.914215f, 1196.62122f);
2132 path.lineTo(460.257355f, 1202.27808f);
2133 path.close();
2134 SkPath pathB;
2135 pathB.setFillType(SkPath::kWinding_FillType);
2136 pathB.moveTo(460.257355f, 1205.10657f);
2137 pathB.lineTo(458.828979f, 1203.67822f);
2138 pathB.lineTo(465.914215f, 1196.62122f);
2139 pathB.lineTo(467.32843f, 1198.03552f);
2140 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2141}
2142
2143// line quad intersection SkIntersections::assert
2144static void skpwww_pindosiya_com_99(skiatest::Reporter* reporter, const char* filename) {
2145 SkPath path;
2146 path.setFillType(SkPath::kEvenOdd_FillType);
2147 path.moveTo(899.17157f, 548.17157f);
2148 path.quadTo(898, 549.34314f, 898, 551);
2149 path.lineTo(898, 556);
2150 path.lineTo(899.027283f, 556);
2151 path.lineTo(900.02356f, 551.602844f);
2152 path.quadTo(900.06073f, 551.297058f, 900.156555f, 551.015747f);
2153 path.lineTo(900.5f, 549.5f);
2154 path.lineTo(899.17157f, 548.17157f);
2155 path.close();
2156 SkPath pathB;
2157 pathB.setFillType(SkPath::kWinding_FillType);
2158 pathB.moveTo(898, 547);
2159 pathB.lineTo(901.086914f, 547);
2160 pathB.lineTo(899, 556);
2161 pathB.lineTo(898, 556);
2162 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2163}
2164
2165// SkOpAngle::setSector SkASSERT(fSectorStart >= 0);
2166static void skpwww_karnivool_com_au_11(skiatest::Reporter* reporter, const char* filename) {
2167 SkPath path;
2168 path.setFillType(SkPath::kEvenOdd_FillType);
2169 path.moveTo(0, 1431);
2170 path.lineTo(0, 775);
2171 path.lineTo(1265, 775);
2172 path.lineTo(1265, 1431);
2173 path.lineTo(0, 1431);
2174 path.close();
2175 SkPath pathB;
2176 pathB.setFillType(SkPath::kWinding_FillType);
2177 pathB.moveTo(32.3243904f, 851);
2178 pathB.lineTo(459.324402f, 851);
2179 pathB.lineTo(427, 1081);
2180 pathB.lineTo(-3.81469727e-06f, 1081);
2181 pathB.close();
2182 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2183}
2184
2185// computeonesumreverse calls markwinding with 0 winding
2186#if TRY_NEW_TESTS
2187static void skpwww_tunero_de_24(skiatest::Reporter* reporter, const char* filename) {
2188 SkPath path;
2189 path.setFillType(SkPath::kEvenOdd_FillType);
2190 path.moveTo(1020.79303f, 2252);
2191 path.quadTo(1018.72198f, 2252, 1016.86798f, 2253.46436f);
2192 path.quadTo(1015.02032f, 2254.92383f, 1014.4668f, 2256.98584f);
2193 path.lineTo(1014.46301f, 2257);
2194 path.lineTo(1011.53705f, 2268);
2195 path.quadTo(1010.98615f, 2270.07104f, 1012.06104f, 2271.53564f);
2196 path.quadTo(1013.13599f, 2273, 1015.20703f, 2273);
2197 path.lineTo(1083.20703f, 2273);
2198 path.quadTo(1085.27808f, 2273, 1087.13208f, 2271.53564f);
2199 path.quadTo(1088.97144f, 2270.08252f, 1089.52832f, 2268.03271f);
2200 path.lineTo(1089.53711f, 2268);
2201 path.lineTo(1092.46301f, 2257);
2202 path.lineTo(1092.4679f, 2256.98145f);
2203 path.quadTo(1093.00916f, 2254.92236f, 1091.93909f, 2253.46436f);
2204 path.quadTo(1090.86414f, 2252, 1088.79297f, 2252);
2205 path.lineTo(1020.79303f, 2252);
2206 path.close();
2207 SkPath pathB;
2208 pathB.setFillType(SkPath::kWinding_FillType);
2209 pathB.moveTo(1011.53705f, 2268);
2210 pathB.lineTo(1014.46301f, 2257);
2211 pathB.quadTo(1015.01392f, 2254.92896f, 1016.86798f, 2253.46436f);
2212 pathB.quadTo(1018.72198f, 2252, 1020.79303f, 2252);
2213 pathB.lineTo(1088.79297f, 2252);
2214 pathB.quadTo(1090.86414f, 2252, 1091.93909f, 2253.46436f);
2215 pathB.quadTo(1093.01392f, 2254.92896f, 1092.46301f, 2257);
2216 pathB.lineTo(1089.53711f, 2268);
2217 pathB.quadTo(1088.98608f, 2270.07104f, 1087.13208f, 2271.53564f);
2218 pathB.quadTo(1085.27808f, 2273, 1083.20703f, 2273);
2219 pathB.lineTo(1015.20703f, 2273);
2220 pathB.quadTo(1013.13599f, 2273, 1012.06104f, 2271.53564f);
2221 pathB.quadTo(1010.98615f, 2270.07104f, 1011.53705f, 2268);
2222 pathB.close();
2223 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2224}
2225#endif
2226
2227// rightAngleWinding (probably same as argus_presse)
2228#if TRY_NEW_TESTS
2229static void skpwww_docgelo_com_66(skiatest::Reporter* reporter, const char* filename) {
2230 SkPath path;
2231 path.setFillType(SkPath::kEvenOdd_FillType);
2232 path.moveTo(22.5f, 24174.5f);
2233 path.lineTo(185.5f, 24174.498f);
2234 path.lineTo(185.5f, 24174.75f);
2235 path.lineTo(22.5f, 24174.75f);
2236 path.lineTo(22.5f, 24174.5f);
2237 path.close();
2238 SkPath pathB;
2239 pathB.setFillType(SkPath::kWinding_FillType);
2240 pathB.moveTo(22.5f, 24174.75f);
2241 pathB.lineTo(22.5f, 24174.498f);
2242 pathB.lineTo(185.5f, 24174.5f);
2243 pathB.lineTo(185.5f, 24174.75f);
2244 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2245}
2246#endif
2247
2248// joinCoincidence / findT / assert
2249static void skpwww_kpopexplorer_net_22(skiatest::Reporter* reporter, const char* filename) {
2250 SkPath path;
2251 path.setFillType(SkPath::kEvenOdd_FillType);
2252 path.moveTo(1000, 866.329346f);
2253 path.quadTo(998, 869.250427f, 998, 873);
2254 path.lineTo(998, 874);
2255 path.quadTo(998, 877.749573f, 1000, 880.670654f);
2256 path.lineTo(1000, 866.329346f);
2257 path.close();
2258 SkPath pathB;
2259 pathB.setFillType(SkPath::kWinding_FillType);
2260 pathB.moveTo(998, 874);
2261 pathB.lineTo(998, 873);
2262 pathB.quadTo(998, 868.029419f, 1001.51471f, 864.514709f);
2263 pathB.quadTo(1005.02942f, 861, 1010, 861);
2264 pathB.lineTo(1011, 861);
2265 pathB.quadTo(1015.14215f, 861, 1018.07104f, 864.514709f);
2266 pathB.quadTo(1021, 868.029419f, 1021, 873);
2267 pathB.lineTo(1021, 874);
2268 pathB.quadTo(1021, 878.142151f, 1018.07104f, 881.071045f);
2269 pathB.quadTo(1015.14215f, 884, 1011, 884);
2270 pathB.lineTo(1010, 884);
2271 pathB.quadTo(1005.02942f, 884, 1001.51471f, 881.071045f);
2272 pathB.quadTo(998, 878.142151f, 998, 874);
2273 pathB.close();
2274 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2275}
2276
2277// rightAngleWinding
2278#if TRY_NEW_TESTS
2279static void skpwww_artblart_com_8(skiatest::Reporter* reporter, const char* filename) {
2280 SkPath path;
2281 path.setFillType(SkPath::kEvenOdd_FillType);
2282 path.moveTo(22.5f, 24527.25f);
2283 path.lineTo(45, 24527.248f);
2284 path.lineTo(45, 24527.5f);
2285 path.lineTo(22.5f, 24527.5f);
2286 path.lineTo(22.5f, 24527.25f);
2287 path.close();
2288 SkPath pathB;
2289 pathB.setFillType(SkPath::kWinding_FillType);
2290 pathB.moveTo(22.5f, 24527.5f);
2291 pathB.lineTo(22.5f, 24527.248f);
2292 pathB.lineTo(45, 24527.25f);
2293 pathB.lineTo(45, 24527.5f);
2294 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2295}
2296#endif
2297
2298// joinCoincidence / findT / assert
2299static void skpwww_jessicaslens_wordpress_com_222(skiatest::Reporter* reporter, const char* filename) {
2300 SkPath path;
2301 path.setFillType(SkPath::kEvenOdd_FillType);
2302 path.moveTo(1000, 844.329346f);
2303 path.quadTo(998, 847.250427f, 998, 851);
2304 path.lineTo(998, 852);
2305 path.quadTo(998, 855.749573f, 1000, 858.670654f);
2306 path.lineTo(1000, 844.329346f);
2307 path.close();
2308 SkPath pathB;
2309 pathB.setFillType(SkPath::kWinding_FillType);
2310 pathB.moveTo(998, 852);
2311 pathB.lineTo(998, 851);
2312 pathB.quadTo(998, 846.029419f, 1001.51471f, 842.514709f);
2313 pathB.quadTo(1005.02942f, 839, 1010, 839);
2314 pathB.lineTo(1011, 839);
2315 pathB.quadTo(1015.14215f, 839, 1018.07104f, 842.514709f);
2316 pathB.quadTo(1021, 846.029419f, 1021, 851);
2317 pathB.lineTo(1021, 852);
2318 pathB.quadTo(1021, 856.142151f, 1018.07104f, 859.071045f);
2319 pathB.quadTo(1015.14215f, 862, 1011, 862);
2320 pathB.lineTo(1010, 862);
2321 pathB.quadTo(1005.02942f, 862, 1001.51471f, 859.071045f);
2322 pathB.quadTo(998, 856.142151f, 998, 852);
2323 pathB.close();
2324 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2325}
2326
2327// joinCoincidence / findT / assert
2328static void skpwww_simplysaru_com_40(skiatest::Reporter* reporter, const char* filename) {
2329 SkPath path;
2330 path.setFillType(SkPath::kEvenOdd_FillType);
2331 path.moveTo(1000, 866.329346f);
2332 path.quadTo(998, 869.250427f, 998, 873);
2333 path.lineTo(998, 874);
2334 path.quadTo(998, 877.749573f, 1000, 880.670654f);
2335 path.lineTo(1000, 866.329346f);
2336 path.close();
2337 SkPath pathB;
2338 pathB.setFillType(SkPath::kWinding_FillType);
2339 pathB.moveTo(998, 874);
2340 pathB.lineTo(998, 873);
2341 pathB.quadTo(998, 868.029419f, 1001.51471f, 864.514709f);
2342 pathB.quadTo(1005.02942f, 861, 1010, 861);
2343 pathB.lineTo(1011, 861);
2344 pathB.quadTo(1015.14215f, 861, 1018.07104f, 864.514709f);
2345 pathB.quadTo(1021, 868.029419f, 1021, 873);
2346 pathB.lineTo(1021, 874);
2347 pathB.quadTo(1021, 878.142151f, 1018.07104f, 881.071045f);
2348 pathB.quadTo(1015.14215f, 884, 1011, 884);
2349 pathB.lineTo(1010, 884);
2350 pathB.quadTo(1005.02942f, 884, 1001.51471f, 881.071045f);
2351 pathB.quadTo(998, 878.142151f, 998, 874);
2352 pathB.close();
2353 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2354}
2355
2356// cubic-cubic intersection reduce checkLinear assert
2357static void skpwww_partsdata_de_53(skiatest::Reporter* reporter, const char* filename) {
2358 SkPath path;
2359 path.setFillType(SkPath::kEvenOdd_FillType);
2360 path.moveTo(407, 119);
2361 path.lineTo(407, 28);
2362 path.lineTo(647, 28);
2363 path.lineTo(647, 119);
2364 path.lineTo(407, 119);
2365 path.close();
2366 SkPath pathB;
2367 pathB.setFillType(SkPath::kWinding_FillType);
2368 pathB.moveTo(471.228394f, 64.443222f);
2369 pathB.cubicTo(471.193878f, 60.953373f, 470.234985f, 52.4797592f, 462.201569f, 46.6231461f);
2370 pathB.cubicTo(454.168152f, 40.7665405f, 446.592804f, 41.993145f, 443.033936f, 42.8568878f);
2371 pathB.cubicTo(439.475098f, 43.7206268f, 436.978638f, 45.4052658f, 436.304871f, 45.7851906f);
2372 pathB.cubicTo(435.631104f, 46.1651154f, 435.156006f, 45.8026352f, 434.957306f, 45.6384506f);
2373 pathB.cubicTo(434.758636f, 45.4742737f, 431.460999f, 42.0105858f, 430.916901f, 41.4664841f);
2374 pathB.cubicTo(430.372803f, 40.9223785f, 429.731628f, 41.3303604f, 429.375214f, 41.6996689f);
2375 pathB.cubicTo(429.375214f, 41.6996689f, 420.610016f, 50.5190887f, 419.918793f, 51.1754227f);
2376 pathB.cubicTo(419.22757f, 51.8321419f, 419.331482f, 52.2465706f, 419.884308f, 52.8339005f);
2377 pathB.cubicTo(420.437134f, 53.4212303f, 425.170624f, 58.0167313f, 425.619568f, 58.4660416f);
2378 pathB.cubicTo(426.068512f, 58.9153557f, 426.137878f, 59.2952805f, 426.137878f, 59.8136024f);
2379 pathB.cubicTo(426.137878f, 60.3319244f, 426.103394f, 103.141357f, 426.103394f, 103.970215f);
2380 pathB.cubicTo(426.103394f, 104.799835f, 426.310791f, 105.525177f, 427.17453f, 105.525177f);
2381 pathB.cubicTo(428.038269f, 105.525177f, 440.131409f, 105.491432f, 440.85675f, 105.491432f);
2382 pathB.cubicTo(441.582489f, 105.491432f, 441.996918f, 104.903343f, 441.996918f, 104.17762f);
2383 pathB.cubicTo(441.996918f, 103.452271f, 441.996918f, 89.5622559f, 441.996918f, 87.8002701f);
2384 pathB.cubicTo(441.996918f, 86.0382843f, 442.342712f, 86.2453079f, 442.826141f, 86.3491974f);
2385 pathB.cubicTo(443.309601f, 86.4530945f, 445.832184f, 87.040802f, 448.700195f, 87.040802f);
2386 pathB.cubicTo(466.87442f, 86.6949997f, 471.815338f, 69.4876556f, 471.228394f, 64.443222f);
2387 pathB.close();
2388 pathB.moveTo(448.873108f, 72.4595642f);
2389 pathB.cubicTo(444.636658f, 72.4595642f, 441.202545f, 69.0254517f, 441.202545f, 64.7890244f);
2390 pathB.cubicTo(441.202545f, 60.5525932f, 444.636658f, 57.1184845f, 448.873108f, 57.1184845f);
2391 pathB.cubicTo(453.109528f, 57.1184845f, 456.54364f, 60.552597f, 456.54364f, 64.7890244f);
2392 pathB.cubicTo(456.54364f, 69.0254517f, 453.109528f, 72.4595642f, 448.873108f, 72.4595642f);
2393 pathB.close();
2394 pathB.moveTo(520.242859f, 82.5275803f);
2395 pathB.cubicTo(519.733276f, 81.6547394f, 494.845154f, 41.3379478f, 494.263123f, 40.3923073f);
2396 pathB.cubicTo(493.681122f, 39.4462852f, 493.244324f, 39.5918846f, 492.807495f, 40.3195038f);
2397 pathB.cubicTo(492.515167f, 40.8071136f, 467.238037f, 81.6790085f, 466.528625f, 82.8373566f);
2398 pathB.cubicTo(465.819183f, 83.9945831f, 466.497528f, 84.2975311f, 466.904358f, 84.5792542f);
2399 pathB.cubicTo(466.904358f, 84.5792542f, 477.399689f, 91.2036743f, 478.235748f, 91.6981049f);
2400 pathB.cubicTo(479.071838f, 92.1929092f, 479.396393f, 91.9028473f, 479.669403f, 91.5104141f);
2401 pathB.cubicTo(479.942383f, 91.1175995f, 484.106384f, 84.1549606f, 484.481781f, 83.5570221f);
2402 pathB.cubicTo(484.857147f, 82.9602051f, 485.198792f, 82.8741379f, 485.966583f, 82.8741379f);
2403 pathB.cubicTo(486.734406f, 82.8741379f, 499.635925f, 82.8062668f, 500.830322f, 82.8062668f);
2404 pathB.cubicTo(502.024658f, 82.8062668f, 502.229797f, 83.4038391f, 502.400452f, 83.6427078f);
2405 pathB.cubicTo(502.571045f, 83.8815842f, 506.615631f, 90.7414703f, 506.990997f, 91.2870865f);
2406 pathB.cubicTo(507.651123f, 92.2475128f, 508.017395f, 92.1333847f, 508.672241f, 91.6962051f);
2407 pathB.cubicTo(509.327423f, 91.2597809f, 519.442444f, 85.0744324f, 520.243286f, 84.4920349f);
2408 pathB.cubicTo(521.042908f, 83.9100189f, 520.751709f, 83.4004211f, 520.242859f, 82.5275803f);
2409 pathB.close();
2410 pathB.moveTo(493.720551f, 72.4811783f);
2411 pathB.cubicTo(491.265442f, 72.4811783f, 489.275574f, 70.4905548f, 489.275574f, 68.0362091f);
2412 pathB.cubicTo(489.275574f, 65.5811005f, 491.265808f, 63.5912399f, 493.720551f, 63.5912399f);
2413 pathB.cubicTo(496.175262f, 63.5912399f, 498.165527f, 65.5814819f, 498.165527f, 68.0362091f);
2414 pathB.cubicTo(498.165894f, 70.4905548f, 496.175659f, 72.4811783f, 493.720551f, 72.4811783f);
2415 pathB.close();
2416 pathB.moveTo(526.561707f, 42.132679f);
2417 pathB.cubicTo(526.876404f, 41.786499f, 527.537292f, 41.1881752f, 528.512878f, 42.1956215f);
2418 pathB.cubicTo(529.488892f, 43.2030678f, 531.691833f, 45.2486725f, 531.881042f, 45.4693451f);
2419 pathB.cubicTo(532.07019f, 45.6896439f, 532.762939f, 46.2875862f, 533.517883f, 45.7525826f);
2420 pathB.cubicTo(534.272827f, 45.2172012f, 539.497681f, 41.9753265f, 545.384277f, 42.132679f);
2421 pathB.cubicTo(546.203247f, 42.2270889f, 546.580566f, 42.5421791f, 546.612f, 43.8324814f);
2422 pathB.cubicTo(546.643494f, 45.1227837f, 546.674561f, 55.1957283f, 546.612f, 56.2657356f);
2423 pathB.cubicTo(546.549072f, 57.3361206f, 546.549072f, 57.7452469f, 544.975525f, 57.8396568f);
2424 pathB.cubicTo(543.401978f, 57.9340706f, 538.742798f, 59.5709305f, 538.774658f, 64.6070251f);
2425 pathB.cubicTo(538.806458f, 69.6431122f, 538.806091f, 86.2631226f, 538.806091f, 86.9554901f);
2426 pathB.cubicTo(538.806091f, 87.6478424f, 538.585815f, 88.4349976f, 537.484314f, 88.4349976f);
2427 pathB.cubicTo(536.382446f, 88.4349976f, 524.79895f, 88.4031372f, 524.04364f, 88.4031372f);
2428 pathB.cubicTo(523.287964f, 88.4031372f, 522.910706f, 88.3402023f, 522.910706f, 86.8606949f);
2429 pathB.cubicTo(522.910706f, 85.3823242f, 522.910706f, 60.6094704f, 522.910706f, 60.0740852f);
2430 pathB.cubicTo(522.910706f, 59.5387039f, 522.81665f, 58.9092865f, 522.470093f, 58.6260452f);
2431 pathB.cubicTo(522.123901f, 58.3428116f, 517.465088f, 53.621048f, 517.181885f, 53.3378105f);
2432 pathB.cubicTo(516.898621f, 53.0545731f, 516.300659f, 52.330368f, 517.213318f, 51.5121231f);
2433 pathB.cubicTo(518.125977f, 50.6942635f, 526.561707f, 42.132679f, 526.561707f, 42.132679f);
2434 pathB.close();
2435 pathB.moveTo(550.169006f, 43.7373123f);
2436 pathB.cubicTo(550.169006f, 42.6358337f, 550.767334f, 42.2263336f, 551.49115f, 42.2263336f);
2437 pathB.cubicTo(552.214966f, 42.2263336f, 552.781433f, 42.2263336f, 552.938843f, 42.2263336f);
2438 pathB.cubicTo(553.096191f, 42.2263336f, 553.725586f, 41.8801537f, 553.662598f, 41.124855f);
2439 pathB.cubicTo(553.600098f, 40.369175f, 553.662598f, 31.4614124f, 553.662598f, 30.8005257f);
2440 pathB.cubicTo(553.662598f, 30.1396389f, 553.75708f, 29.1951332f, 555.110657f, 29.1951332f);
2441 pathB.cubicTo(556.463928f, 29.1951332f, 566.536865f, 29.1951332f, 567.859009f, 29.1951332f);
2442 pathB.cubicTo(569.180786f, 29.1951332f, 569.463623f, 30.1711082f, 569.463623f, 30.7690544f);
2443 pathB.cubicTo(569.463623f, 31.3670006f, 569.463623f, 40.2122002f, 569.463623f, 41.0619125f);
2444 pathB.cubicTo(569.463623f, 41.9116249f, 569.746887f, 42.3207474f, 570.659912f, 42.3207474f);
2445 pathB.cubicTo(571.572571f, 42.3207474f, 575.507568f, 42.2263336f, 576.199951f, 42.2263336f);
2446 pathB.cubicTo(576.892273f, 42.2263336f, 577.742004f, 42.5725098f, 577.742004f, 43.8631973f);
2447 pathB.cubicTo(577.742004f, 45.1538811f, 577.742004f, 55.8877106f, 577.742004f, 56.5800705f);
2448 pathB.cubicTo(577.742004f, 57.2724266f, 577.616455f, 58.0595779f, 576.45166f, 58.0595779f);
2449 pathB.cubicTo(575.286865f, 58.0595779f, 570.943115f, 58.0595779f, 570.471069f, 58.0595779f);
2450 pathB.cubicTo(569.999023f, 58.0595779f, 569.479919f, 57.8389015f, 569.479919f, 59.0510979f);
2451 pathB.cubicTo(569.479919f, 60.2629128f, 569.479919f, 66.2124176f, 569.479919f, 67.1880188f);
2452 pathB.cubicTo(569.479919f, 68.1636047f, 570.628418f, 73.6406708f, 575.917053f, 73.6406708f);
2453 pathB.cubicTo(577.018921f, 73.6406708f, 577.742737f, 73.9242859f, 577.742737f, 75.4348907f);
2454 pathB.cubicTo(577.742737f, 76.945488f, 577.742737f, 87.0813751f, 577.742737f, 87.8366699f);
2455 pathB.cubicTo(577.742737f, 88.5915909f, 577.648315f, 89.4416809f, 576.295044f, 89.4416809f);
2456 pathB.cubicTo(574.028809f, 89.6312714f, 553.978088f, 88.0254974f, 553.631897f, 65.928421f);
2457 pathB.cubicTo(553.631897f, 65.928421f, 553.631897f, 59.6964378f, 553.631897f, 58.972229f);
2458 pathB.cubicTo(553.631897f, 58.2484055f, 553.034363f, 58.0436554f, 552.703735f, 58.0436554f);
2459 pathB.cubicTo(552.372681f, 58.0436554f, 551.522949f, 58.0436554f, 551.208252f, 58.0436554f);
2460 pathB.cubicTo(550.893921f, 58.0436554f, 550.170105f, 58.0906677f, 550.170105f, 56.6115417f);
2461 pathB.cubicTo(550.170105f, 55.1324081f, 550.169006f, 43.7373123f, 550.169006f, 43.7373123f);
2462 pathB.close();
2463 pathB.moveTo(611.203857f, 39.5509338f);
2464 pathB.cubicTo(612.084961f, 39.5509338f, 612.620422f, 40.0544662f, 612.620422f, 40.8097687f);
2465 pathB.cubicTo(612.620422f, 41.5650673f, 612.620422f, 53.1486092f, 612.620422f, 53.6839905f);
2466 pathB.cubicTo(612.620422f, 54.2193718f, 612.651489f, 55.2264404f, 611.612976f, 55.2264404f);
2467 pathB.cubicTo(610.574463f, 55.2264404f, 604.404663f, 55.9817429f, 604.404663f, 61.899395f);
2468 pathB.cubicTo(604.404663f, 65.4878235f, 604.373169f, 66.6211548f, 604.373169f, 67.5338135f);
2469 pathB.cubicTo(604.373169f, 68.0684357f, 604.414124f, 74.3353043f, 599.934631f, 80.4702148f);
2470 pathB.cubicTo(596.765564f, 84.8109131f, 590.664368f, 89.3942871f, 582.150208f, 89.630127f);
2471 pathB.cubicTo(580.028015f, 89.630127f, 580.230469f, 88.5286484f, 580.230469f, 88.1820908f);
2472 pathB.cubicTo(580.230469f, 87.5845184f, 580.198975f, 75.8436279f, 580.198975f, 75.2142105f);
2473 pathB.cubicTo(580.198975f, 74.5844116f, 580.608154f, 73.8605804f, 581.58374f, 73.8605804f);
2474 pathB.cubicTo(583.40979f, 73.8605804f, 588.603271f, 72.7905731f, 588.603271f, 66.9043884f);
2475 pathB.cubicTo(588.603271f, 61.3958588f, 588.603271f, 61.8679237f, 588.603271f, 61.0496788f);
2476 pathB.cubicTo(588.603271f, 60.2314377f, 588.666565f, 54.3137856f, 593.230591f, 48.3961296f);
2477 pathB.cubicTo(597.794617f, 42.4784775f, 604.814087f, 39.5509338f, 611.203857f, 39.5509338f);
2478 pathB.close();
2479 pathB.moveTo(635.22937f, 81.9311447f);
2480 pathB.cubicTo(635.057617f, 81.6475296f, 634.869141f, 81.3851471f, 634.664429f, 81.1439972f);
2481 pathB.lineTo(635.039001f, 81.0385895f);
2482 pathB.cubicTo(635.447754f, 80.9233246f, 635.729858f, 80.5509796f, 635.729858f, 80.1263123f);
2483 pathB.lineTo(635.729858f, 78.6149597f);
2484 pathB.cubicTo(635.729858f, 78.3309631f, 635.602417f, 78.0617523f, 635.382935f, 77.8816452f);
2485 pathB.cubicTo(635.162598f, 77.7015381f, 634.873291f, 77.6295013f, 634.595764f, 77.6852341f);
2486 pathB.cubicTo(633.906799f, 77.8232498f, 633.194397f, 77.9017334f, 632.478149f, 77.9191818f);
2487 pathB.cubicTo(631.714844f, 77.9373779f, 630.851501f, 77.9464874f, 629.911133f, 77.9464874f);
2488 pathB.lineTo(615.131226f, 77.9464874f);
2489 pathB.cubicTo(614.607605f, 77.9464874f, 614.18335f, 78.3707733f, 614.18335f, 78.8944016f);
2490 pathB.lineTo(614.18335f, 81.1337585f);
2491 pathB.cubicTo(614.18335f, 81.6573868f, 614.607605f, 82.0816803f, 615.131226f, 82.0816803f);
2492 pathB.lineTo(619.693787f, 82.0816803f);
2493 pathB.cubicTo(619.680908f, 82.1423492f, 619.669128f, 82.2026367f, 619.657776f, 82.2629166f);
2494 pathB.cubicTo(619.571289f, 82.728157f, 619.529602f, 83.3200302f, 619.529602f, 84.0730591f);
2495 pathB.cubicTo(619.529602f, 86.3196259f, 620.260254f, 88.1236954f, 621.701477f, 89.4348602f);
2496 pathB.cubicTo(623.116516f, 90.7225037f, 625.163269f, 91.3754272f, 627.784058f, 91.3754272f);
2497 pathB.cubicTo(630.525024f, 91.3754272f, 632.517944f, 90.8669662f, 633.876099f, 89.8208466f);
2498 pathB.cubicTo(635.291565f, 88.7314987f, 636.009705f, 87.0798492f, 636.009705f, 84.9129181f);
2499 pathB.cubicTo(636.010071f, 83.7905807f, 635.747314f, 82.7873077f, 635.22937f, 81.9311447f);
2500 pathB.close();
2501 pathB.moveTo(631.880554f, 85.7326736f);
2502 pathB.cubicTo(631.690552f, 86.0545807f, 631.436157f, 86.307869f, 631.102844f, 86.5076904f);
2503 pathB.cubicTo(630.736206f, 86.7279816f, 630.277039f, 86.8906479f, 629.737854f, 86.9903717f);
2504 pathB.cubicTo(629.146362f, 87.1003265f, 628.488892f, 87.1564484f, 627.783997f, 87.1564484f);
2505 pathB.cubicTo(626.159668f, 87.1564484f, 624.996399f, 86.8656235f, 624.327881f, 86.293457f);
2506 pathB.cubicTo(623.693604f, 85.7489777f, 623.385315f, 84.995575f, 623.385315f, 83.9896393f);
2507 pathB.cubicTo(623.385315f, 83.3655396f, 623.431519f, 82.8718567f, 623.522583f, 82.5215149f);
2508 pathB.cubicTo(623.563477f, 82.3645325f, 623.616943f, 82.2189331f, 623.684448f, 82.0824356f);
2509 pathB.lineTo(630.008179f, 82.0824356f);
2510 pathB.cubicTo(630.758911f, 82.247757f, 631.311401f, 82.5256805f, 631.650757f, 82.9101562f);
2511 pathB.cubicTo(631.990112f, 83.2942505f, 632.154663f, 83.8303986f, 632.154663f, 84.549675f);
2512 pathB.cubicTo(632.154663f, 85.02742f, 632.062927f, 85.4251709f, 631.880554f, 85.7326736f);
2513 pathB.close();
2514 pathB.moveTo(635.667664f, 69.5979919f);
2515 pathB.cubicTo(635.518311f, 69.0645142f, 635.325684f, 68.5818329f, 635.093994f, 68.1620941f);
2516 pathB.cubicTo(634.940796f, 67.8856812f, 634.770569f, 67.6316376f, 634.586304f, 67.4026184f);
2517 pathB.lineTo(635.054565f, 67.2619476f);
2518 pathB.cubicTo(635.455322f, 67.1417542f, 635.729858f, 66.7724457f, 635.729858f, 66.3538437f);
2519 pathB.lineTo(635.729858f, 64.7021942f);
2520 pathB.cubicTo(635.729858f, 64.4045486f, 635.590332f, 64.1243439f, 635.3526f, 63.9449997f);
2521 pathB.cubicTo(635.115234f, 63.7660294f, 634.807373f, 63.7087784f, 634.521057f, 63.7906761f);
2522 pathB.cubicTo(634.059998f, 63.9226265f, 633.544678f, 64.0155258f, 632.988831f, 64.0659485f);
2523 pathB.cubicTo(631.578735f, 64.1941071f, 629.921387f, 64.1565704f, 628.141968f, 64.0632935f);
2524 pathB.cubicTo(627.067383f, 64.0068054f, 625.948853f, 63.9779854f, 624.81665f, 63.9779854f);
2525 pathB.cubicTo(624.253601f, 63.9779854f, 623.681396f, 64.0359955f, 623.116089f, 64.1512604f);
2526 pathB.cubicTo(622.479126f, 64.2809448f, 621.888367f, 64.5437012f, 621.35907f, 64.9315872f);
2527 pathB.cubicTo(620.807007f, 65.3365402f, 620.360352f, 65.9159088f, 620.031189f, 66.6548996f);
2528 pathB.cubicTo(619.712708f, 67.3722839f, 619.557983f, 68.2625656f, 619.557983f, 69.3769379f);
2529 pathB.cubicTo(619.557983f, 70.4655304f, 619.669128f, 71.5268097f, 619.887878f, 72.5323639f);
2530 pathB.cubicTo(620.11499f, 73.573555f, 620.473694f, 74.5040283f, 620.954468f, 75.2983856f);
2531 pathB.cubicTo(621.196411f, 75.6976471f, 621.693481f, 75.861824f, 622.124939f, 75.6847534f);
2532 pathB.lineTo(623.832336f, 74.9851913f);
2533 pathB.cubicTo(624.086365f, 74.8809204f, 624.282776f, 74.6716156f, 624.370728f, 74.4111328f);
2534 pathB.cubicTo(624.45874f, 74.15065f, 624.429138f, 73.8651276f, 624.290405f, 73.6281509f);
2535 pathB.cubicTo(624.166382f, 73.416954f, 624.051147f, 73.1644287f, 623.947205f, 72.875885f);
2536 pathB.cubicTo(623.836853f, 72.5702744f, 623.741333f, 72.2407837f, 623.663574f, 71.8968811f);
2537 pathB.cubicTo(623.584717f, 71.549942f, 623.522217f, 71.2018585f, 623.477417f, 70.8621292f);
2538 pathB.cubicTo(623.434937f, 70.5409775f, 623.41333f, 70.2391663f, 623.41333f, 69.9646454f);
2539 pathB.cubicTo(623.41333f, 68.8229752f, 623.672729f, 68.4748993f, 623.75116f, 68.3960266f);
2540 pathB.cubicTo(623.853577f, 68.2940369f, 624.20166f, 68.0574341f, 625.236755f, 68.0574341f);
2541 pathB.cubicTo(625.39679f, 68.0574341f, 625.566284f, 68.0616074f, 625.744446f, 68.0695648f);
2542 pathB.lineTo(625.744446f, 68.7331085f);
2543 pathB.cubicTo(625.744446f, 69.8065338f, 625.819153f, 70.8048782f, 625.967041f, 71.70047f);
2544 pathB.cubicTo(626.12323f, 72.6483841f, 626.392456f, 73.4825516f, 626.767456f, 74.1794586f);
2545 pathB.cubicTo(627.173523f, 74.9328613f, 627.730957f, 75.5292969f, 628.424438f, 75.9528198f);
2546 pathB.cubicTo(629.123596f, 76.3790054f, 629.981628f, 76.5951309f, 630.975464f, 76.5951309f);
2547 pathB.cubicTo(631.722046f, 76.5951309f, 632.406799f, 76.4597626f, 633.009644f, 76.1924591f);
2548 pathB.cubicTo(633.611816f, 75.9262848f, 634.136536f, 75.5543213f, 634.567688f, 75.0875626f);
2549 pathB.cubicTo(634.998779f, 74.6223297f, 635.333191f, 74.0672302f, 635.561096f, 73.4370575f);
2550 pathB.cubicTo(635.78479f, 72.8212891f, 635.898193f, 72.1520538f, 635.898193f, 71.4479446f);
2551 pathB.cubicTo(635.898193f, 70.7688599f, 635.820496f, 70.1462708f, 635.667664f, 69.5979919f);
2552 pathB.close();
2553 pathB.moveTo(631.656494f, 71.9905396f);
2554 pathB.cubicTo(631.416077f, 72.2574692f, 631.13739f, 72.3765259f, 630.751404f, 72.3765259f);
2555 pathB.cubicTo(630.390015f, 72.3765259f, 630.239502f, 72.2536774f, 630.190247f, 72.2127228f);
2556 pathB.cubicTo(630.002197f, 72.0587845f, 629.853149f, 71.8483429f, 629.735596f, 71.5704193f);
2557 pathB.cubicTo(629.594177f, 71.2348557f, 629.494507f, 70.8310394f, 629.439453f, 70.3714905f);
2558 pathB.cubicTo(629.379211f, 69.8607559f, 629.348511f, 69.3284073f, 629.348511f, 68.7892303f);
2559 pathB.cubicTo(629.348511f, 68.5765228f, 629.351929f, 68.3603973f, 629.357971f, 68.1416168f);
2560 pathB.lineTo(630.581177f, 68.1416168f);
2561 pathB.cubicTo(630.702515f, 68.2026672f, 630.831787f, 68.2841797f, 630.967163f, 68.3857956f);
2562 pathB.cubicTo(631.149902f, 68.523056f, 631.322815f, 68.703537f, 631.480225f, 68.922699f);
2563 pathB.cubicTo(631.639038f, 69.1437531f, 631.77478f, 69.4186478f, 631.884399f, 69.7390442f);
2564 pathB.cubicTo(631.989807f, 70.0488281f, 632.04364f, 70.4169922f, 632.04364f, 70.8329391f);
2565 pathB.cubicTo(632.042847f, 71.3228302f, 631.916565f, 71.7012329f, 631.656494f, 71.9905396f);
2566 pathB.close();
2567 pathB.moveTo(622.689575f, 63.4953079f);
2568 pathB.lineTo(620.72998f, 63.4953079f);
2569 pathB.cubicTo(620.206421f, 63.4953079f, 619.782104f, 63.0710182f, 619.782104f, 62.54739f);
2570 pathB.lineTo(619.782104f, 61.3116837f);
2571 pathB.lineTo(617.958679f, 61.3116837f);
2572 pathB.cubicTo(617.536255f, 61.3116837f, 617.164307f, 61.0318604f, 617.047913f, 60.6257744f);
2573 pathB.lineTo(616.404114f, 58.3864136f);
2574 pathB.cubicTo(616.321411f, 58.1001472f, 616.378662f, 57.7922592f, 616.557678f, 57.5541458f);
2575 pathB.cubicTo(616.737061f, 57.3164062f, 617.017212f, 57.1764946f, 617.31488f, 57.1764946f);
2576 pathB.lineTo(619.782104f, 57.1764946f);
2577 pathB.lineTo(619.782104f, 54.3171997f);
2578 pathB.cubicTo(619.782104f, 53.7935715f, 620.206421f, 53.3692818f, 620.730042f, 53.3692818f);
2579 pathB.lineTo(622.689575f, 53.3692818f);
2580 pathB.cubicTo(623.213196f, 53.3692818f, 623.637512f, 53.7935715f, 623.637512f, 54.3171997f);
2581 pathB.lineTo(623.637512f, 57.1764946f);
2582 pathB.lineTo(630.443176f, 57.1764946f);
2583 pathB.cubicTo(631.548828f, 57.1764946f, 631.921936f, 57.0028381f, 632.009888f, 56.9493713f);
2584 pathB.cubicTo(632.057617f, 56.9205589f, 632.154724f, 56.8621674f, 632.154724f, 56.5288773f);
2585 pathB.cubicTo(632.154724f, 56.139473f, 632.116821f, 55.8179398f, 632.04248f, 55.5737572f);
2586 pathB.cubicTo(631.949219f, 55.268528f, 631.822205f, 54.9193192f, 631.665588f, 54.5363579f);
2587 pathB.cubicTo(631.563599f, 54.288002f, 631.572327f, 54.0085602f, 631.688354f, 53.7670288f);
2588 pathB.cubicTo(631.804749f, 53.5251198f, 632.017456f, 53.3438797f, 632.274536f, 53.2680435f);
2589 pathB.lineTo(633.9823f, 52.7641296f);
2590 pathB.cubicTo(634.430115f, 52.6325607f, 634.90332f, 52.8437576f, 635.105042f, 53.2623596f);
2591 pathB.cubicTo(635.375f, 53.8235245f, 635.59491f, 54.4404297f, 635.758301f, 55.0956268f);
2592 pathB.cubicTo(635.925537f, 55.7656174f, 636.010498f, 56.4928589f, 636.010498f, 57.2565002f);
2593 pathB.cubicTo(636.010498f, 58.7109833f, 635.553589f, 59.7790947f, 634.653076f, 60.4316406f);
2594 pathB.cubicTo(633.835938f, 61.0235176f, 632.596069f, 61.311306f, 630.863647f, 61.311306f);
2595 pathB.lineTo(623.637878f, 61.311306f);
2596 pathB.lineTo(623.637878f, 62.5470123f);
2597 pathB.cubicTo(623.637451f, 63.071022f, 623.213196f, 63.4953079f, 622.689575f, 63.4953079f);
2598 pathB.close();
2599 pathB.moveTo(635.667664f, 46.2246475f);
2600 pathB.cubicTo(635.518311f, 45.6911545f, 635.325684f, 45.2084808f, 635.093994f, 44.7887421f);
2601 pathB.cubicTo(634.940796f, 44.5123291f, 634.770569f, 44.2582855f, 634.586304f, 44.029274f);
2602 pathB.lineTo(635.054565f, 43.8886032f);
2603 pathB.cubicTo(635.455322f, 43.7684059f, 635.729858f, 43.3990974f, 635.729858f, 42.9804955f);
2604 pathB.lineTo(635.729858f, 41.328846f);
2605 pathB.cubicTo(635.729858f, 41.0312004f, 635.590332f, 40.7509995f, 635.3526f, 40.5716515f);
2606 pathB.cubicTo(635.115234f, 40.3926849f, 634.807373f, 40.3354301f, 634.521057f, 40.4173279f);
2607 pathB.cubicTo(634.059998f, 40.5492783f, 633.544678f, 40.6421738f, 632.988831f, 40.6926041f);
2608 pathB.cubicTo(631.578735f, 40.8207626f, 629.921387f, 40.7836075f, 628.141968f, 40.689949f);
2609 pathB.cubicTo(627.067383f, 40.6334534f, 625.948853f, 40.6046371f, 624.81665f, 40.6046371f);
2610 pathB.cubicTo(624.253601f, 40.6046371f, 623.681396f, 40.6626511f, 623.116089f, 40.777916f);
2611 pathB.cubicTo(622.479126f, 40.9075928f, 621.888367f, 41.1703568f, 621.35907f, 41.5582428f);
2612 pathB.cubicTo(620.807007f, 41.963192f, 620.360352f, 42.5425606f, 620.031189f, 43.2815552f);
2613 pathB.cubicTo(619.712708f, 43.9989395f, 619.557983f, 44.8892212f, 619.557983f, 46.0035934f);
2614 pathB.cubicTo(619.557983f, 47.0921783f, 619.669128f, 48.1534653f, 619.887878f, 49.1590195f);
2615 pathB.cubicTo(620.11499f, 50.2002106f, 620.473694f, 51.1306839f, 620.954468f, 51.9250374f);
2616 pathB.cubicTo(621.196411f, 52.3243027f, 621.693481f, 52.4880981f, 622.124939f, 52.311409f);
2617 pathB.lineTo(623.832336f, 51.6118431f);
2618 pathB.cubicTo(624.086365f, 51.5075722f, 624.282776f, 51.2982712f, 624.370728f, 51.0377846f);
2619 pathB.cubicTo(624.45874f, 50.777298f, 624.429138f, 50.4917831f, 624.290405f, 50.2548065f);
2620 pathB.cubicTo(624.166382f, 50.0436096f, 624.051147f, 49.7910843f, 623.947205f, 49.5025406f);
2621 pathB.cubicTo(623.836853f, 49.1969299f, 623.741333f, 48.8674355f, 623.663574f, 48.5235291f);
2622 pathB.cubicTo(623.584717f, 48.1765938f, 623.522217f, 47.8285179f, 623.477417f, 47.4887848f);
2623 pathB.cubicTo(623.434937f, 47.1676331f, 623.41333f, 46.8658142f, 623.41333f, 46.5912971f);
2624 pathB.cubicTo(623.41333f, 45.4496269f, 623.672729f, 45.1015511f, 623.75116f, 45.0226822f);
2625 pathB.cubicTo(623.853577f, 44.9206886f, 624.20166f, 44.6840897f, 625.236755f, 44.6840897f);
2626 pathB.cubicTo(625.39679f, 44.6840897f, 625.566284f, 44.6882591f, 625.744446f, 44.6962204f);
2627 pathB.lineTo(625.744446f, 45.3597641f);
2628 pathB.cubicTo(625.744446f, 46.4331856f, 625.819153f, 47.43153f, 625.967041f, 48.3271217f);
2629 pathB.cubicTo(626.12323f, 49.2750397f, 626.392456f, 50.1092072f, 626.767456f, 50.8061142f);
2630 pathB.cubicTo(627.173523f, 51.5595169f, 627.730957f, 52.1559486f, 628.424438f, 52.5794754f);
2631 pathB.cubicTo(629.123596f, 53.005661f, 629.981628f, 53.2217865f, 630.975464f, 53.2217865f);
2632 pathB.cubicTo(631.722046f, 53.2217865f, 632.406799f, 53.086422f, 633.009644f, 52.8191147f);
2633 pathB.cubicTo(633.611816f, 52.5529366f, 634.136536f, 52.1809769f, 634.567688f, 51.7142181f);
2634 pathB.cubicTo(634.998779f, 51.2489815f, 635.333191f, 50.693882f, 635.561096f, 50.0637054f);
2635 pathB.cubicTo(635.78479f, 49.4479408f, 635.898193f, 48.7787094f, 635.898193f, 48.0746002f);
2636 pathB.cubicTo(635.898193f, 47.3958893f, 635.820496f, 46.7733002f, 635.667664f, 46.2246475f);
2637 pathB.close();
2638 pathB.moveTo(631.656494f, 48.6171875f);
2639 pathB.cubicTo(631.416077f, 48.8841209f, 631.13739f, 49.0031815f, 630.751404f, 49.0031815f);
2640 pathB.cubicTo(630.390015f, 49.0031815f, 630.239502f, 48.8803291f, 630.190247f, 48.8393784f);
2641 pathB.cubicTo(630.002197f, 48.6854401f, 629.853149f, 48.4749985f, 629.735596f, 48.1970711f);
2642 pathB.cubicTo(629.594177f, 47.8615112f, 629.494507f, 47.457695f, 629.439453f, 46.9981461f);
2643 pathB.cubicTo(629.379211f, 46.4874115f, 629.348511f, 45.9550591f, 629.348511f, 45.4158859f);
2644 pathB.cubicTo(629.348511f, 45.2031708f, 629.351929f, 44.9870453f, 629.357971f, 44.7682648f);
2645 pathB.lineTo(630.581177f, 44.7682648f);
2646 pathB.cubicTo(630.702515f, 44.8293152f, 630.831787f, 44.9108353f, 630.967163f, 45.0124512f);
2647 pathB.cubicTo(631.149902f, 45.1497116f, 631.322815f, 45.3301926f, 631.480225f, 45.5493507f);
2648 pathB.cubicTo(631.639038f, 45.7704048f, 631.77478f, 46.0453033f, 631.884399f, 46.3656998f);
2649 pathB.cubicTo(631.989807f, 46.6754761f, 632.04364f, 47.0436478f, 632.04364f, 47.4595947f);
2650 pathB.cubicTo(632.042847f, 47.949852f, 631.916565f, 48.3282623f, 631.656494f, 48.6171875f);
2651 pathB.close();
2652 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2653}
2654
2655// SkOpAngle::setSector SkASSERT(fSectorStart >= 0);
2656static void skpwww_seopack_blogspot_com_2153(skiatest::Reporter* reporter, const char* filename) {
2657 SkPath path;
2658 path.setFillType(SkPath::kEvenOdd_FillType);
2659 path.moveTo(999.892212f, 246);
2660 path.lineTo(927.340759f, 245.505722f);
2661 path.quadTo(928.068054f, 246, 929, 246);
2662 path.lineTo(999.892212f, 246);
2663 path.close();
2664 path.moveTo(927.340759f, 245.505722f);
2665 path.lineTo(926.5f, 245.5f);
2666 path.lineTo(925.17157f, 246.82843f);
2667 path.quadTo(926.34314f, 248, 928, 248);
2668 path.lineTo(1000, 248);
2669 path.lineTo(1000, 246);
2670 SkPath pathB;
2671 pathB.setFillType(SkPath::kWinding_FillType);
2672 pathB.moveTo(924, 248);
2673 pathB.lineTo(924, 245.472672f);
2674 pathB.lineTo(1143, 247);
2675 pathB.lineTo(1143, 248);
2676 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2677}
2678
2679// joinCoincidence / findT / assert
2680static void skpwww_lokado_de_173(skiatest::Reporter* reporter, const char* filename) {
2681 SkPath path;
2682 path.setFillType(SkPath::kEvenOdd_FillType);
2683 path.moveTo(1000, 896.991394f);
2684 path.quadTo(999.789917f, 896.718872f, 999.535522f, 896.464478f);
2685 path.quadTo(998.071045f, 895, 996, 895);
2686 path.lineTo(956, 895);
2687 path.quadTo(951.857849f, 895, 948.928955f, 897.928955f);
2688 path.quadTo(946, 900.857849f, 946, 905);
2689 path.lineTo(946, 906);
2690 path.quadTo(946, 910.142151f, 948.928955f, 913.071045f);
2691 path.quadTo(951.857849f, 916, 956, 916);
2692 path.lineTo(996, 916);
2693 path.quadTo(998.071045f, 916, 999.535522f, 914.535522f);
2694 path.quadTo(999.789917f, 914.281128f, 1000, 914.008606f);
2695 path.lineTo(1000, 896.991394f);
2696 path.close();
2697 SkPath pathB;
2698 pathB.setFillType(SkPath::kWinding_FillType);
2699 pathB.moveTo(946, 906);
2700 pathB.lineTo(946, 905);
2701 pathB.quadTo(946, 901.272095f, 948.928955f, 898.636047f);
2702 pathB.quadTo(951.857849f, 896, 956, 896);
2703 pathB.lineTo(996, 896);
2704 pathB.quadTo(998.071045f, 896, 999.535522f, 897.17157f);
2705 pathB.quadTo(1001, 898.34314f, 1001, 900);
2706 pathB.lineTo(1001, 911);
2707 pathB.quadTo(1001, 913.071045f, 999.535522f, 914.535522f);
2708 pathB.quadTo(998.071045f, 916, 996, 916);
2709 pathB.lineTo(956, 916);
2710 pathB.quadTo(951.857849f, 916, 948.928955f, 913.071045f);
2711 pathB.quadTo(946, 910.142151f, 946, 906);
2712 pathB.close();
2713 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2714}
2715
2716// !simple->isClosed()
2717static void skpwww_wartepop_blogspot_com_br_6(skiatest::Reporter* reporter, const char* filename) {
2718 SkPath path;
2719 path.setFillType(SkPath::kEvenOdd_FillType);
2720 path.moveTo(90.9763107f, 153.309662f);
2721 path.quadTo(91.9526215f, 152.333344f, 93.3333359f, 152.333344f);
2722 path.lineTo(124.666664f, 152.333344f);
2723 path.quadTo(126.047379f, 152.333344f, 127.023689f, 153.309662f);
2724 path.quadTo(128, 154.285965f, 128, 155.666672f);
2725 path.lineTo(128, 163.666672f);
2726 path.lineTo(90, 163.666672f);
2727 path.lineTo(90, 155.666672f);
2728 path.quadTo(90, 154.285965f, 90.9763107f, 153.309662f);
2729 path.close();
2730 SkPath pathB;
2731 pathB.setFillType(SkPath::kWinding_FillType);
2732 pathB.moveTo(90, 163.666672f);
2733 pathB.lineTo(90, 155.666672f);
2734 pathB.quadTo(90, 154.285965f, 90.9763107f, 153.309662f);
2735 pathB.quadTo(91.9526215f, 152.333344f, 93.3333359f, 152.333344f);
2736 pathB.lineTo(124.666672f, 152.333344f);
2737 pathB.quadTo(125.909309f, 152.333344f, 126.787994f, 153.309662f);
2738 pathB.quadTo(127.666672f, 154.285965f, 127.666672f, 155.666672f);
2739 pathB.lineTo(127.666672f, 163.666672f);
2740 pathB.lineTo(127.666672f, 163.666672f);
2741 pathB.lineTo(127.666672f, 163.666672f);
2742 pathB.lineTo(90, 163.666672f);
2743 pathB.lineTo(90, 163.666672f);
2744 pathB.lineTo(90, 163.666672f);
2745 pathB.close();
2746 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2747}
2748
2749// !simple->isClosed()
2750static void skpwww_odia_com_br_26(skiatest::Reporter* reporter, const char* filename) {
2751 SkPath path;
2752 path.setFillType(SkPath::kEvenOdd_FillType);
2753 path.moveTo(360.740479f, 741.040771f);
2754 path.quadTo(360.378967f, 741, 360, 741);
2755 path.quadTo(359.159821f, 741, 358.403076f, 741.200745f);
2756 path.quadTo(357.649658f, 741.415833f, 356.92746f, 741.846436f);
2757 path.quadTo(356.600769f, 742.041199f, 356.310211f, 742.262268f);
2758 path.quadTo(356.025513f, 742.489197f, 355.757355f, 742.757385f);
2759 path.quadTo(355.16394f, 743.350769f, 354.770874f, 744.027283f);
2760 path.quadTo(354.389618f, 744.71283f, 354.183258f, 745.528564f);
2761 path.quadTo(354.090027f, 745.897095f, 354.040833f, 746.259277f);
2762 path.quadTo(354, 746.621216f, 354, 747);
2763 path.quadTo(354, 747.839844f, 354.200653f, 748.596497f);
2764 path.quadTo(354.415771f, 749.35022f, 354.846466f, 750.072632f);
2765 path.quadTo(355.040741f, 750.398438f, 355.261444f, 750.688721f);
2766 path.quadTo(355.488861f, 750.974121f, 355.757355f, 751.242615f);
2767 path.quadTo(356.352142f, 751.837402f, 357.030304f, 752.230896f);
2768 path.quadTo(357.714539f, 752.610901f, 358.528564f, 752.816833f);
2769 path.quadTo(358.895294f, 752.909607f, 359.25528f, 752.95874f);
2770 path.quadTo(359.618896f, 753, 360, 753);
2771 path.quadTo(360.842285f, 753, 361.600952f, 752.798157f);
2772 path.quadTo(362.352386f, 752.583008f, 363.072601f, 752.153625f);
2773 path.quadTo(363.397339f, 751.960022f, 363.686829f, 751.740051f);
2774 path.quadTo(363.973297f, 751.511963f, 364.242645f, 751.242615f);
2775 path.quadTo(364.837799f, 750.647461f, 365.231354f, 749.968933f);
2776 path.quadTo(365.610992f, 749.285034f, 365.816803f, 748.471497f);
2777 path.quadTo(365.909668f, 748.104431f, 365.958832f, 747.743713f);
2778 path.quadTo(366, 747.380371f, 366, 747);
2779 path.quadTo(366, 746.158997f, 365.798767f, 745.401367f);
2780 path.quadTo(365.583618f, 744.648682f, 365.153595f, 743.927429f);
2781 path.quadTo(364.959442f, 743.601807f, 364.738678f, 743.311462f);
2782 path.quadTo(364.511108f, 743.025818f, 364.242645f, 742.757385f);
2783 path.quadTo(363.649017f, 742.163757f, 362.972168f, 741.770569f);
2784 path.quadTo(362.286835f, 741.389526f, 361.471497f, 741.183289f);
2785 path.quadTo(361.102509f, 741.089966f, 360.740479f, 741.040771f);
2786 path.close();
2787 SkPath pathB;
2788 pathB.setFillType(SkPath::kWinding_FillType);
2789 pathB.moveTo(355.654724f, 739.711792f);
2790 pathB.lineTo(367.288269f, 742.654724f);
2791 pathB.lineTo(364.345337f, 754.288269f);
2792 pathB.lineTo(352.711792f, 751.345337f);
2793 pathB.close();
2794 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2795}
2796
2797static void skpwww_evolvehq_com_210(skiatest::Reporter* reporter, const char* filename) {
2798 SkPath path;
2799 path.setFillType(SkPath::kEvenOdd_FillType);
2800 path.moveTo(172, 972);
2801 path.quadTo(170.757355f, 972, 169.878677f, 972.878662f);
2802 path.quadTo(169, 973.757385f, 169, 975);
2803 path.lineTo(169, 1171);
2804 path.quadTo(169, 1172.24268f, 169.878677f, 1173.12134f);
2805 path.quadTo(170.757355f, 1174, 172, 1174);
2806 path.lineTo(308, 1174);
2807 path.quadTo(309.242645f, 1174, 310.121307f, 1173.12134f);
2808 path.quadTo(310.337311f, 1172.9054f, 310.5f, 1172.66772f);
2809 path.lineTo(310.5f, 973.332336f);
2810 path.quadTo(310.337219f, 973.094604f, 310.121307f, 972.878662f);
2811 path.quadTo(309.242645f, 972, 308, 972);
2812 path.lineTo(172, 972);
2813 path.close();
2814 SkPath pathB;
2815 pathB.setFillType(SkPath::kWinding_FillType);
2816 pathB.moveTo(170, 1171);
2817 pathB.lineTo(170, 975);
2818 pathB.quadTo(170, 974.17157f, 170.585785f, 973.585815f);
2819 pathB.quadTo(171.17157f, 973, 172, 973);
2820 pathB.lineTo(308, 973);
2821 pathB.quadTo(309.242645f, 973, 310.121307f, 973.585815f);
2822 pathB.quadTo(311, 974.17157f, 311, 975);
2823 pathB.lineTo(311, 1171);
2824 pathB.quadTo(311, 1172.24268f, 310.121307f, 1173.12134f);
2825 pathB.quadTo(309.242645f, 1174, 308, 1174);
2826 pathB.lineTo(172, 1174);
2827 pathB.quadTo(171.17157f, 1174, 170.585785f, 1173.12134f);
2828 pathB.quadTo(170, 1172.24268f, 170, 1171);
2829 pathB.close();
2830 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2831}
2832
2833// hangs
2834static void skpwww_catingueiraonline_com_352(skiatest::Reporter* reporter, const char* filename) {
2835 SkPath path;
2836 path.setFillType(SkPath::kEvenOdd_FillType);
2837 path.moveTo(443, 8292);
2838 path.lineTo(443, 8140);
2839 path.lineTo(444, 8140);
2840 path.lineTo(444.01001f, 8292);
2841 path.lineTo(443, 8292);
2842 path.close();
2843 SkPath pathB;
2844 pathB.setFillType(SkPath::kWinding_FillType);
2845 pathB.moveTo(443, 8140);
2846 pathB.lineTo(444.01001f, 8140);
2847 pathB.lineTo(444, 8292);
2848 pathB.lineTo(443, 8292);
2849 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2850}
2851
2852// hangs
2853static void skpwww_galaxystwo_com_4(skiatest::Reporter* reporter, const char* filename) {
2854 SkPath path;
2855 path.setFillType(SkPath::kEvenOdd_FillType);
2856 path.moveTo(10105, 2510);
2857 path.lineTo(10123, 2509.98999f);
2858 path.lineTo(10123, 2511);
2859 path.lineTo(10105, 2511);
2860 path.lineTo(10105, 2510);
2861 path.close();
2862 SkPath pathB;
2863 pathB.setFillType(SkPath::kWinding_FillType);
2864 pathB.moveTo(10105, 2511);
2865 pathB.lineTo(10105, 2509.98999f);
2866 pathB.lineTo(10123, 2510);
2867 pathB.lineTo(10123, 2511);
2868 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2869}
2870
2871// hangs in find top
2872#if TRY_NEW_TESTS
2873static void skpwww_thaienews_blogspot_com_36(skiatest::Reporter* reporter, const char* filename) {
2874 SkPath path;
2875 path.setFillType(SkPath::kEvenOdd_FillType);
2876 path.moveTo(429.994995f, 6268);
2877 path.lineTo(430, 2187);
2878 path.lineTo(430.5f, 2187);
2879 path.lineTo(430.5f, 6268);
2880 path.lineTo(429.994995f, 6268);
2881 path.close();
2882 SkPath pathB;
2883 pathB.setFillType(SkPath::kWinding_FillType);
2884 pathB.moveTo(430.5f, 2187);
2885 pathB.lineTo(429.994995f, 2187);
2886 pathB.lineTo(430, 6268);
2887 pathB.lineTo(430.5f, 6268);
2888 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2889}
2890#endif
2891
2892// hangs
2893static void skpwww_fashionscandal_com_94(skiatest::Reporter* reporter, const char* filename) {
2894 SkPath path;
2895 path.setFillType(SkPath::kEvenOdd_FillType);
2896 path.moveTo(25.9107456f, 272.577423f);
2897 path.quadTo(26.1548233f, 272.333344f, 26.5000019f, 272.333344f);
2898 path.lineTo(131.166672f, 272.333344f);
2899 path.quadTo(131.511841f, 272.333344f, 131.75592f, 272.577423f);
2900 path.quadTo(132, 272.821503f, 132, 273.166687f);
2901 path.lineTo(132, 417.166656f);
2902 path.quadTo(132, 417.511841f, 131.75592f, 417.75592f);
2903 path.quadTo(131.511841f, 418, 131.166672f, 418);
2904 path.lineTo(26.5000019f, 418);
2905 path.quadTo(26.1548233f, 418, 25.9107456f, 417.75592f);
2906 path.quadTo(25.6666679f, 417.511841f, 25.6666679f, 417.166656f);
2907 path.lineTo(25.6666679f, 273.166687f);
2908 path.quadTo(25.6666679f, 272.821503f, 25.9107456f, 272.577423f);
2909 path.close();
2910 SkPath pathB;
2911 pathB.setFillType(SkPath::kWinding_FillType);
2912 pathB.moveTo(25.833334f, 417.166656f);
2913 pathB.lineTo(25.833334f, 273.166656f);
2914 pathB.quadTo(25.833334f, 272.890533f, 26.0285969f, 272.695251f);
2915 pathB.quadTo(26.2238579f, 272.5f, 26.5f, 272.5f);
2916 pathB.lineTo(131.166672f, 272.5f);
2917 pathB.quadTo(131.442825f, 272.5f, 131.638077f, 272.695251f);
2918 pathB.quadTo(131.833344f, 272.890533f, 131.833344f, 273.166656f);
2919 pathB.lineTo(131.833344f, 417.166656f);
2920 pathB.quadTo(131.833344f, 417.511841f, 131.638077f, 417.75592f);
2921 pathB.quadTo(131.442825f, 418, 131.166672f, 418);
2922 pathB.lineTo(26.5f, 418);
2923 pathB.quadTo(26.2238579f, 418, 26.0285969f, 417.75592f);
2924 pathB.quadTo(25.833334f, 417.511841f, 25.833334f, 417.166656f);
2925 pathB.close();
2926 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2927}
2928
2929static void skpwww_kenlevine_blogspot_com_28(skiatest::Reporter* reporter, const char* filename) {
2930 SkPath path;
2931 path.setFillType(SkPath::kEvenOdd_FillType);
2932 path.moveTo(276, 9506);
2933 path.lineTo(276, 7531);
2934 path.lineTo(277, 7531);
2935 path.lineTo(277.01001f, 9506);
2936 path.lineTo(276, 9506);
2937 path.close();
2938 SkPath pathB;
2939 pathB.setFillType(SkPath::kWinding_FillType);
2940 pathB.moveTo(276, 7531);
2941 pathB.lineTo(277.01001f, 7531);
2942 pathB.lineTo(277, 9506);
2943 pathB.lineTo(276, 9506);
2944 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2945}
2946
2947static void skpwww_defense_studies_blogspot_com_64(skiatest::Reporter* reporter, const char* filename) {
2948 SkPath path;
2949 path.setFillType(SkPath::kEvenOdd_FillType);
2950 path.moveTo(276, 9600);
2951 path.lineTo(276, 7703);
2952 path.lineTo(277, 7703);
2953 path.lineTo(277.01001f, 9600);
2954 path.lineTo(276, 9600);
2955 path.close();
2956 SkPath pathB;
2957 pathB.setFillType(SkPath::kWinding_FillType);
2958 pathB.moveTo(276, 7703);
2959 pathB.lineTo(277.01001f, 7703);
2960 pathB.lineTo(277, 9600);
2961 pathB.lineTo(276, 9600);
2962 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2963}
2964
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00002965static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
caryclark@google.com7eaa53d2013-10-02 14:49:34 +00002966
2967static struct TestDesc tests[] = {
commit-bot@chromium.org8cb1daa2014-04-25 12:59:11 +00002968 TEST(skpwww_defense_studies_blogspot_com_64),
2969 TEST(skpwww_kenlevine_blogspot_com_28),
2970 TEST(skpwww_fashionscandal_com_94),
2971#if TRY_NEW_TESTS
2972 TEST(skpwww_thaienews_blogspot_com_36), // completes but fails to produce correct output
2973#endif
2974 TEST(skpwww_galaxystwo_com_4),
2975 TEST(skpwww_catingueiraonline_com_352),
2976 TEST(skpwww_evolvehq_com_210),
2977 TEST(skpwww_odia_com_br_26), // asserts expecting isClosed
2978 TEST(skpwww_wartepop_blogspot_com_br_6), // asserts expecting isClosed
2979 TEST(skpwww_lokado_de_173),
2980 TEST(skpwww_seopack_blogspot_com_2153),
2981 TEST(skpwww_partsdata_de_53),
2982 TEST(skpwww_simplysaru_com_40),
2983 TEST(skpwww_jessicaslens_wordpress_com_222),
2984#if TRY_NEW_TESTS
2985 TEST(skpwww_artblart_com_8), // rightanglewinding
2986#endif
2987 TEST(skpwww_kpopexplorer_net_22),
2988#if TRY_NEW_TESTS
2989 TEST(skpwww_docgelo_com_66), // rightanglewinding
2990#endif
2991#if TRY_NEW_TESTS // nearly coincident curves -- maybe angle is written before coincidence detected?
2992 TEST(skpwww_tunero_de_24), // has both winding and oppWinding set to zero in markWinding
2993#endif
2994 TEST(skpwww_karnivool_com_au_11),
2995 TEST(skpwww_pindosiya_com_99),
2996 TEST(skpwww_contextualnewsfeeds_com_346), // asserts expecting isClosed
2997 TEST(skpwww_cooksnaps_com_32), // asserts expecting isClosed
2998#if TRY_NEW_TESTS_IS_CLOSED
2999 TEST(skpwww_helha_be_109), // asserts expecting isClosed
3000 TEST(skpwww_phototransferapp_com_24), // asserts expecting isClosed
3001#endif
3002#if TRY_NEW_TESTS
3003 TEST(skpwww_gruposejaumdivulgador_com_br_4), // span already marked done is futher marked coin
3004#endif
3005 TEST(skpwww_hubbyscook_com_22),
3006#if TRY_NEW_TESTS
3007 TEST(skpwww_argus_presse_fr_41), // rightanglewinding
3008#endif
3009 TEST(skpwww_maturesupertube_com_21),
3010 TEST(skpwww_getgold_jp_731),
3011 TEST(skpwww_trashness_com_36),
3012 TEST(skpwww_exystence_net_61),
3013 TEST(skpwww_320kbps_net_2231),
3014 TEST(skpwww_heartiste_wordpress_com_86),
3015 TEST(skpwww_hairjobsearch_com_31),
3016 TEST(skpwww_alucinados_net_101),
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00003017 TEST(skpnamecheap_com_405),
3018 TEST(skpelpais_com_18),
3019 TEST(skpwww_cityads_ru_249),
3020 TEST(skpwww_alrakoba_net_62),
3021 TEST(skpwww_dealnews_com_315),
3022 TEST(skpwww_inmotionhosting_com_9),
caryclark@google.com15107262013-11-08 18:00:01 +00003023 TEST(skpskpicture14),
caryclark@google.com15107262013-11-08 18:00:01 +00003024 TEST(skpskpicture15),
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00003025 TEST(skpwww_meb_gov_tr_6),
3026 TEST(skpwww_sciality_com_101),
3027 TEST(skpwww_booking_com_68), // similar to lavoixdunord
3028 TEST(skpwww_despegar_com_mx_272), // similar to lavoixdunord
3029 TEST(skpwww_lavoixdunord_fr_11), // not quite coincident, sorting line/cubic fails
3030 TEST(skppptv_com_62), // cubic have nearly identical tangents, sort incorrectly
caryclark@google.com7eaa53d2013-10-02 14:49:34 +00003031 TEST(skppchappy_com_au102),
3032 TEST(skpsciality_com161),
caryclark@google.com7eaa53d2013-10-02 14:49:34 +00003033 TEST(skpi_gino_com16),
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00003034 TEST(skpnaoxrane_ru23), // see test for failure evaluation
3035 TEST(skptcmevents_org23), // see test for (partial) failure evaluation
3036 TEST(skpredbullskatearcade_es16), // cubic have nearly identical tangents, sort incorrectly
3037 TEST(skpfinanzasdigital_com9), // cubic/quad tangents too close to sort
caryclark@google.coma2bbc6e2013-11-01 17:36:03 +00003038 TEST(skpgithub_io_26),
3039 TEST(skpgithub_io_25),
3040 TEST(skpwww_meb_gov_tr_5),
3041 TEST(skpwww_sciality_com_100),
3042 TEST(skpwww_joomla_org_23),
3043 TEST(skpwww_macrumors_com_131),
3044 TEST(skpwww_briian_com_34),
3045 TEST(skpwww_leadpages_net_84),
3046 TEST(skpwww_fj_p_com_22),
3047 TEST(skppartainasdemo250_org56),
3048 TEST(skpsd_graphic_net104),
3049 TEST(skpbreakmystyle_com10),
3050 TEST(skpnational_com_au81),
3051 TEST(skprentacheat_com30),
3052 TEST(skptracksflow_com9),
3053 TEST(skpautobutler_dk29),
3054 TEST(skponlinecollege_org144),
3055 TEST(skphostloco_com11),
3056 TEST(skpsergeychunkevich_com8),
3057 TEST(skpmlk_com326),
3058 TEST(skpcyclist_friends_gr52),
3059 TEST(skpfrauen_magazin_com83),
3060 TEST(skpthesuburbanite_com213),
3061 TEST(skpsudoestenegocios_com186),
caryclark@google.com7eaa53d2013-10-02 14:49:34 +00003062 TEST(skpmtrk_uz27),
3063 TEST(skpilkoora_com37),
3064 TEST(skpmm4everfriends_com43),
3065 TEST(skpflite_com41),
3066 TEST(skpcheeseandburger_com225),
3067 TEST(skpeverytechpro_blogspot_com100),
3068};
3069
3070static const size_t testCount = SK_ARRAY_COUNT(tests);
3071
3072static bool runReverse = false;
commit-bot@chromium.org4431e772014-04-14 17:08:59 +00003073static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
caryclark@google.com7eaa53d2013-10-02 14:49:34 +00003074
tfarina@chromium.org78e7b4e2014-01-02 21:45:03 +00003075DEF_TEST(PathOpsSkp, reporter) {
caryclark@google.com7eaa53d2013-10-02 14:49:34 +00003076#if DEBUG_SHOW_TEST_NAME
3077 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH);
3078#endif
3079 RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse);
3080}