Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: tests/PathOpsSkpTest.cpp

Issue 272153002: fix bugs found by computing flat clips in 800K skps (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix maybe-uninitialized error in unbuntu Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests/PathOpsSkpClipTest.cpp ('k') | tools/pathops_sorter.htm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2012 Google Inc. 2 * Copyright 2012 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 #include "PathOpsExtendedTest.h" 7 #include "PathOpsExtendedTest.h"
8 8
9 #define TEST(name) { name, #name } 9 #define TEST(name) { name, #name }
10 10
11 #define TRY_NEW_TESTS 0 11 #define TRY_NEW_TESTS 0
12 #define TRY_NEW_TESTS_IS_CLOSED 0
13 12
14 static void skpcheeseandburger_com225(skiatest::Reporter* reporter, const char* filename) { 13 static void skpcheeseandburger_com225(skiatest::Reporter* reporter, const char* filename) {
15 SkPath path; 14 SkPath path;
16 path.setFillType(SkPath::kEvenOdd_FillType); 15 path.setFillType(SkPath::kEvenOdd_FillType);
17 path.moveTo(555, 468); 16 path.moveTo(555, 468);
18 path.lineTo(555, 362); 17 path.lineTo(555, 362);
19 path.lineTo(872, 362); 18 path.lineTo(872, 362);
20 path.lineTo(872, 468); 19 path.lineTo(872, 468);
21 path.lineTo(555, 468); 20 path.lineTo(555, 468);
22 path.close(); 21 path.close();
(...skipping 1779 matching lines...) Expand 10 before | Expand all | Expand 10 after
1802 path.close(); 1801 path.close();
1803 SkPath pathB; 1802 SkPath pathB;
1804 pathB.setFillType(SkPath::kWinding_FillType); 1803 pathB.setFillType(SkPath::kWinding_FillType);
1805 pathB.moveTo(741, 9433); 1804 pathB.moveTo(741, 9433);
1806 pathB.lineTo(741, 9431.99023f); 1805 pathB.lineTo(741, 9431.99023f);
1807 pathB.lineTo(761, 9432); 1806 pathB.lineTo(761, 9432);
1808 pathB.lineTo(761, 9433); 1807 pathB.lineTo(761, 9433);
1809 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1808 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1810 } 1809 }
1811 1810
1812 /*
1813 * 125 SkASSERT(index < fCount);
1814 (gdb) bt
1815 #0 0x000000000041094b in SkTDArray<SkOpSpan>::operator[] (this=0x18, index=2) a t ../../include/core/SkTDArray.h:125
1816 #1 0x00000000005ad2ce in SkOpSegment::tAtMid (this=0x0, start=2, end=5, mid=0.9 0000000000000002) at ../../src/pathops/SkOpSegment.h:219
1817 #2 0x00000000005aadea in contourRangeCheckY (contourList=..., currentPtr=0x7fff d77f4ec0, indexPtr=0x7fffd77f4f88, endIndexPtr=0x7fffd77f4f8c, bestHit=0x7fffd77 f4ec8,
1818 bestDx=0x7fffd77f4edc, tryAgain=0x7fffd77f4eff, midPtr=0x7fffd77f4e60, opp=f alse) at ../../src/pathops/SkPathOpsCommon.cpp:20
1819 #3 0x00000000005ab8ee in rightAngleWinding (contourList=..., current=0x7fffd77f 4ec0, index=0x7fffd77f4f88, endIndex=0x7fffd77f4f8c, tHit=0x7fffd77f4ec8, hitDx= 0x7fffd77f4edc,
1820 */
1821 #if TRY_NEW_TESTS 1811 #if TRY_NEW_TESTS
1822 static void skpwww_argus_presse_fr_41(skiatest::Reporter* reporter, const char* filename) { 1812 static void skpwww_argus_presse_fr_41(skiatest::Reporter* reporter, const char* filename) {
1823 SkPath path; 1813 SkPath path;
1824 path.setFillType(SkPath::kEvenOdd_FillType); 1814 path.setFillType(SkPath::kEvenOdd_FillType);
1825 path.moveTo(1000, 343); 1815 path.moveTo(1000, 343);
1826 path.lineTo(165, 343); 1816 path.lineTo(165, 343);
1827 path.lineTo(165, 364.869873f); 1817 path.lineTo(165, 364.869873f);
1828 path.lineTo(1000, 364.869873f); 1818 path.lineTo(1000, 364.869873f);
1829 path.lineTo(1000, 343); 1819 path.lineTo(1000, 343);
1830 path.close(); 1820 path.close();
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
1981 pathB.lineTo(1021, 910); 1971 pathB.lineTo(1021, 910);
1982 pathB.quadTo(1021, 914.142151f, 1018.07104f, 917.071045f); 1972 pathB.quadTo(1021, 914.142151f, 1018.07104f, 917.071045f);
1983 pathB.quadTo(1015.14215f, 920, 1011, 920); 1973 pathB.quadTo(1015.14215f, 920, 1011, 920);
1984 pathB.lineTo(1010, 920); 1974 pathB.lineTo(1010, 920);
1985 pathB.quadTo(1005.02942f, 920, 1001.51471f, 917.071045f); 1975 pathB.quadTo(1005.02942f, 920, 1001.51471f, 917.071045f);
1986 pathB.quadTo(998, 914.142151f, 998, 910); 1976 pathB.quadTo(998, 914.142151f, 998, 910);
1987 pathB.close(); 1977 pathB.close();
1988 testPathOp(reporter, path, pathB, kDifference_PathOp, filename); 1978 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
1989 } 1979 }
1990 1980
1991 // calcCoincidentWinding asserts in zeroSpan
1992 #if TRY_NEW_TESTS
1993 static void skpwww_gruposejaumdivulgador_com_br_4(skiatest::Reporter* reporter, const char* filename) { 1981 static void skpwww_gruposejaumdivulgador_com_br_4(skiatest::Reporter* reporter, const char* filename) {
1994 SkPath path; 1982 SkPath path;
1995 path.setFillType(SkPath::kEvenOdd_FillType); 1983 path.setFillType(SkPath::kEvenOdd_FillType);
1996 path.moveTo(610.5f, 5.78626502e-14f); 1984 path.moveTo(610.5f, 5.78626502e-14f);
1997 path.lineTo(1083.5f, -6.12303177e-17f); 1985 path.lineTo(1083.5f, -6.12303177e-17f);
1998 path.lineTo(1083.5f, 469); 1986 path.lineTo(1083.5f, 469);
1999 path.lineTo(610.5f, 469); 1987 path.lineTo(610.5f, 469);
2000 path.lineTo(610.5f, 5.78626502e-14f); 1988 path.lineTo(610.5f, 5.78626502e-14f);
2001 path.close(); 1989 path.close();
2002 SkPath pathB; 1990 SkPath pathB;
2003 pathB.setFillType(SkPath::kWinding_FillType); 1991 pathB.setFillType(SkPath::kWinding_FillType);
2004 pathB.moveTo(611, 0); 1992 pathB.moveTo(611, 0);
2005 pathB.lineTo(1084, 0); 1993 pathB.lineTo(1084, 0);
2006 pathB.lineTo(1084, 469); 1994 pathB.lineTo(1084, 469);
2007 pathB.lineTo(611, 469); 1995 pathB.lineTo(611, 469);
2008 pathB.close(); 1996 pathB.close();
2009 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1997 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2010 } 1998 }
2011 #endif
2012 1999
2013 // asserts in bridgeOp simple->isClosed() 2000 // asserts in bridgeOp simple->isClosed()
2014 #if TRY_NEW_TESTS_IS_CLOSED
2015 static void skpwww_phototransferapp_com_24(skiatest::Reporter* reporter, const c har* filename) { 2001 static void skpwww_phototransferapp_com_24(skiatest::Reporter* reporter, const c har* filename) {
2016 SkPath path; 2002 SkPath path;
2017 path.setFillType(SkPath::kEvenOdd_FillType); 2003 path.setFillType(SkPath::kEvenOdd_FillType);
2018 path.moveTo(85.6091843f, 5.92893219f); 2004 path.moveTo(85.6091843f, 5.92893219f);
2019 path.quadTo(89.6041641f, 3, 93.7462997f, 3); 2005 path.quadTo(89.6041641f, 3, 93.7462997f, 3);
2020 path.lineTo(1212.74634f, 3); 2006 path.lineTo(1212.74634f, 3);
2021 path.quadTo(1216.88843f, 3, 1218.75134f, 5.92893219f); 2007 path.quadTo(1216.88843f, 3, 1218.75134f, 5.92893219f);
2022 path.quadTo(1220.61414f, 8.85775471f, 1219.10669f, 12.9996767f); 2008 path.quadTo(1220.61414f, 8.85775471f, 1219.10669f, 12.9996767f);
2023 path.quadTo(1220.46338f, 9.27196693f, 1218.4939f, 6.63603878f); 2009 path.quadTo(1220.46338f, 9.27196693f, 1218.4939f, 6.63603878f);
2024 path.quadTo(1216.52441f, 4, 1212.38232f, 4); 2010 path.quadTo(1216.52441f, 4, 1212.38232f, 4);
2025 path.lineTo(93.3823318f, 4); 2011 path.lineTo(93.3823318f, 4);
2026 path.quadTo(89.2401962f, 4, 85.3518219f, 6.63603878f); 2012 path.quadTo(89.2401962f, 4, 85.3518219f, 6.63603878f);
2027 path.quadTo(81.4634476f, 9.27207756f, 80.1065979f, 13); 2013 path.quadTo(81.4634476f, 9.27207756f, 80.1065979f, 13);
2028 path.quadTo(81.614212f, 8.85786438f, 85.6091843f, 5.92893219f); 2014 path.quadTo(81.614212f, 8.85786438f, 85.6091843f, 5.92893219f);
2029 path.close(); 2015 path.close();
2030 SkPath pathB; 2016 SkPath pathB;
2031 pathB.setFillType(SkPath::kWinding_FillType); 2017 pathB.setFillType(SkPath::kWinding_FillType);
2032 pathB.moveTo(83.7462997f, 3); 2018 pathB.moveTo(83.7462997f, 3);
2033 pathB.lineTo(1222.74634f, 3); 2019 pathB.lineTo(1222.74634f, 3);
2034 pathB.lineTo(1219.10657f, 13); 2020 pathB.lineTo(1219.10657f, 13);
2035 pathB.lineTo(80.1065979f, 13); 2021 pathB.lineTo(80.1065979f, 13);
2036 pathB.close(); 2022 pathB.close();
2037 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2023 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2038 } 2024 }
2039 #endif
2040 2025
2041 // !simple->isClosed() 2026 static void skpwww_phototransferapp_com_24x(skiatest::Reporter* reporter, const char* filename) {
2042 #if TRY_NEW_TESTS_IS_CLOSED 2027 SkPath path;
2028 path.setFillType(SkPath::kEvenOdd_FillType);
2029 path.moveTo(85.6091843f, 5.92893219f);
2030 path.quadTo(89.6041641f, 3, 93.7462997f, 3);
2031 path.lineTo(112.74634f, 3);
2032 path.quadTo(116.88843f, 3, 118.75134f, 5.92893219f);
2033 path.quadTo(120.61414f, 8.85775471f, 119.10669f, 12.9996767f);
2034 path.quadTo(120.46338f, 9.27196693f, 118.4939f, 6.63603878f);
2035 path.quadTo(116.52441f, 4, 112.38232f, 4);
2036 path.lineTo(93.3823318f, 4);
2037 path.quadTo(89.2401962f, 4, 85.3518219f, 6.63603878f);
2038 path.quadTo(81.4634476f, 9.27207756f, 80.1065979f, 13);
2039 path.quadTo(81.614212f, 8.85786438f, 85.6091843f, 5.92893219f);
2040 path.close();
2041 SkPath pathB;
2042 pathB.setFillType(SkPath::kWinding_FillType);
2043 pathB.moveTo(83.7462997f, 3);
2044 pathB.lineTo(122.74634f, 3);
2045 pathB.lineTo(119.10657f, 13);
2046 pathB.lineTo(80.1065979f, 13);
2047 pathB.close();
2048 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2049 }
2050
2043 static void skpwww_helha_be_109(skiatest::Reporter* reporter, const char* filena me) { 2051 static void skpwww_helha_be_109(skiatest::Reporter* reporter, const char* filena me) {
2044 SkPath path; 2052 SkPath path;
2045 path.setFillType(SkPath::kEvenOdd_FillType); 2053 path.setFillType(SkPath::kEvenOdd_FillType);
2046 path.moveTo(117.686981f, 3339.08423f); 2054 path.moveTo(117.686981f, 3339.08423f);
2047 path.lineTo(109.533035f, 3350.72925f); 2055 path.lineTo(109.533035f, 3350.72925f);
2048 path.quadTo(107.120552f, 3354.17456f, 103.879379f, 3354.41821f); 2056 path.quadTo(107.120552f, 3354.17456f, 103.879379f, 3354.41821f);
2049 path.quadTo(100.638504f, 3354.66187f, 98.4674301f, 3351.56177f); 2057 path.quadTo(100.638504f, 3354.66187f, 98.4674301f, 3351.56177f);
2050 path.quadTo(100.87973f, 3355.00635f, 104.291222f, 3355.00635f); 2058 path.quadTo(100.87973f, 3355.00635f, 104.291222f, 3355.00635f);
2051 path.quadTo(107.70298f, 3355.00635f, 110.115463f, 3351.56104f); 2059 path.quadTo(107.70298f, 3355.00635f, 110.115463f, 3351.56104f);
2052 path.lineTo(118, 3340.30078f); 2060 path.lineTo(118, 3340.30078f);
2053 path.lineTo(118, 3339.53125f); 2061 path.lineTo(118, 3339.53125f);
2054 path.lineTo(117.686981f, 3339.08423f); 2062 path.lineTo(117.686981f, 3339.08423f);
2055 path.close(); 2063 path.close();
2056 SkPath pathB; 2064 SkPath pathB;
2057 pathB.setFillType(SkPath::kWinding_FillType); 2065 pathB.setFillType(SkPath::kWinding_FillType);
2058 pathB.moveTo(118.269409f, 3339.91602f); 2066 pathB.moveTo(118.269409f, 3339.91602f);
2059 pathB.lineTo(117.686981f, 3339.08423f); 2067 pathB.lineTo(117.686981f, 3339.08423f);
2060 pathB.lineTo(98.4669647f, 3351.56104f); 2068 pathB.lineTo(98.4669647f, 3351.56104f);
2061 pathB.lineTo(104.291214f, 3359.87891f); 2069 pathB.lineTo(104.291214f, 3359.87891f);
2062 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2070 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2063 } 2071 }
2064 #endif
2065 2072
2066 // !simple->isClosed()
2067 static void skpwww_cooksnaps_com_32(skiatest::Reporter* reporter, const char* fi lename) { 2073 static void skpwww_cooksnaps_com_32(skiatest::Reporter* reporter, const char* fi lename) {
2068 SkPath path; 2074 SkPath path;
2069 path.setFillType(SkPath::kEvenOdd_FillType); 2075 path.setFillType(SkPath::kEvenOdd_FillType);
2070 path.moveTo(509.34021f, 176); 2076 path.moveTo(509.34021f, 176);
2071 path.lineTo(505, 176); 2077 path.lineTo(505, 176);
2072 path.quadTo(500.964233f, 176, 497.299988f, 176.896912f); 2078 path.quadTo(500.964233f, 176, 497.299988f, 176.896912f);
2073 path.quadTo(493.678162f, 177.952286f, 490.183014f, 179.9702f); 2079 path.quadTo(493.678162f, 177.952286f, 490.183014f, 179.9702f);
2074 path.lineTo(489.316986f, 180.4702f); 2080 path.lineTo(489.316986f, 180.4702f);
2075 path.quadTo(485.175385f, 182.861359f, 482.115265f, 186.082397f); 2081 path.quadTo(485.175385f, 182.861359f, 482.115265f, 186.082397f);
2076 path.quadTo(479.69455f, 188.700821f, 477.995941f, 191.618286f); 2082 path.quadTo(479.69455f, 188.700821f, 477.995941f, 191.618286f);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
2109 pathB.lineTo(533.029785f, 192.183014f); 2115 pathB.lineTo(533.029785f, 192.183014f);
2110 pathB.quadTo(539.450134f, 203.303314f, 536.126709f, 215.70639f); 2116 pathB.quadTo(539.450134f, 203.303314f, 536.126709f, 215.70639f);
2111 pathB.quadTo(532.803345f, 228.109497f, 521.683044f, 234.5298f); 2117 pathB.quadTo(532.803345f, 228.109497f, 521.683044f, 234.5298f);
2112 pathB.lineTo(520.817017f, 235.0298f); 2118 pathB.lineTo(520.817017f, 235.0298f);
2113 pathB.quadTo(509.696686f, 241.450104f, 497.29361f, 238.126709f); 2119 pathB.quadTo(509.696686f, 241.450104f, 497.29361f, 238.126709f);
2114 pathB.quadTo(484.890533f, 234.803314f, 478.470215f, 223.683014f); 2120 pathB.quadTo(484.890533f, 234.803314f, 478.470215f, 223.683014f);
2115 pathB.close(); 2121 pathB.close();
2116 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2122 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2117 } 2123 }
2118 2124
2125 static void skpwww_cooksnaps_com_32a(skiatest::Reporter* reporter, const char* f ilename) {
2126 SkPath path;
2127 path.setFillType(SkPath::kEvenOdd_FillType);
2128 path.moveTo(497.299988f, 176.896912f);
2129 path.quadTo(493.678162f, 177.952286f, 490.183014f, 179.9702f);
2130 path.lineTo(489.316986f, 180.4702f);
2131 path.quadTo(485.175385f, 182.861359f, 482.115265f, 186.082397f);
2132 SkPath pathB;
2133 pathB.setFillType(SkPath::kWinding_FillType);
2134 pathB.moveTo(474.873322f, 199.293594f);
2135 pathB.quadTo(478.196686f, 186.890503f, 489.316986f, 180.4702f);
2136 pathB.lineTo(490.183014f, 179.9702f);
2137 pathB.quadTo(501.303345f, 173.549896f, 513.706421f, 176.873276f);
2138 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2139 }
2140
2119 // !simple->isClosed() 2141 // !simple->isClosed()
2120 static void skpwww_contextualnewsfeeds_com_346(skiatest::Reporter* reporter, con st char* filename) { 2142 static void skpwww_contextualnewsfeeds_com_346(skiatest::Reporter* reporter, con st char* filename) {
2121 SkPath path; 2143 SkPath path;
2122 path.setFillType(SkPath::kEvenOdd_FillType); 2144 path.setFillType(SkPath::kEvenOdd_FillType);
2123 path.moveTo(460.257355f, 1202.27808f); 2145 path.moveTo(460.257355f, 1202.27808f);
2124 path.lineTo(460.257355f, 1204.27808f); 2146 path.lineTo(460.257355f, 1204.27808f);
2125 path.quadTo(461.081207f, 1204.27808f, 461.665161f, 1203.69873f); 2147 path.quadTo(461.081207f, 1204.27808f, 461.665161f, 1203.69873f);
2126 path.lineTo(461.67157f, 1203.69238f); 2148 path.lineTo(461.67157f, 1203.69238f);
2127 path.lineTo(466.621307f, 1198.74268f); 2149 path.lineTo(466.621307f, 1198.74268f);
2128 path.quadTo(466.623993f, 1198.73999f, 466.626648f, 1198.7373f); 2150 path.quadTo(466.623993f, 1198.73999f, 466.626648f, 1198.7373f);
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
2175 SkPath pathB; 2197 SkPath pathB;
2176 pathB.setFillType(SkPath::kWinding_FillType); 2198 pathB.setFillType(SkPath::kWinding_FillType);
2177 pathB.moveTo(32.3243904f, 851); 2199 pathB.moveTo(32.3243904f, 851);
2178 pathB.lineTo(459.324402f, 851); 2200 pathB.lineTo(459.324402f, 851);
2179 pathB.lineTo(427, 1081); 2201 pathB.lineTo(427, 1081);
2180 pathB.lineTo(-3.81469727e-06f, 1081); 2202 pathB.lineTo(-3.81469727e-06f, 1081);
2181 pathB.close(); 2203 pathB.close();
2182 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2204 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2183 } 2205 }
2184 2206
2185 // computeonesumreverse calls markwinding with 0 winding
2186 #if TRY_NEW_TESTS
2187 static void skpwww_tunero_de_24(skiatest::Reporter* reporter, const char* filena me) { 2207 static void skpwww_tunero_de_24(skiatest::Reporter* reporter, const char* filena me) {
2188 SkPath path; 2208 SkPath path;
2189 path.setFillType(SkPath::kEvenOdd_FillType); 2209 path.setFillType(SkPath::kEvenOdd_FillType);
2190 path.moveTo(1020.79303f, 2252); 2210 path.moveTo(1020.79303f, 2252);
2191 path.quadTo(1018.72198f, 2252, 1016.86798f, 2253.46436f); 2211 path.quadTo(1018.72198f, 2252, 1016.86798f, 2253.46436f);
2192 path.quadTo(1015.02032f, 2254.92383f, 1014.4668f, 2256.98584f); 2212 path.quadTo(1015.02032f, 2254.92383f, 1014.4668f, 2256.98584f);
2193 path.lineTo(1014.46301f, 2257); 2213 path.lineTo(1014.46301f, 2257);
2194 path.lineTo(1011.53705f, 2268); 2214 path.lineTo(1011.53705f, 2268);
2195 path.quadTo(1010.98615f, 2270.07104f, 1012.06104f, 2271.53564f); 2215 path.quadTo(1010.98615f, 2270.07104f, 1012.06104f, 2271.53564f);
2196 path.quadTo(1013.13599f, 2273, 1015.20703f, 2273); 2216 path.quadTo(1013.13599f, 2273, 1015.20703f, 2273);
(...skipping 18 matching lines...) Expand all
2215 pathB.quadTo(1093.01392f, 2254.92896f, 1092.46301f, 2257); 2235 pathB.quadTo(1093.01392f, 2254.92896f, 1092.46301f, 2257);
2216 pathB.lineTo(1089.53711f, 2268); 2236 pathB.lineTo(1089.53711f, 2268);
2217 pathB.quadTo(1088.98608f, 2270.07104f, 1087.13208f, 2271.53564f); 2237 pathB.quadTo(1088.98608f, 2270.07104f, 1087.13208f, 2271.53564f);
2218 pathB.quadTo(1085.27808f, 2273, 1083.20703f, 2273); 2238 pathB.quadTo(1085.27808f, 2273, 1083.20703f, 2273);
2219 pathB.lineTo(1015.20703f, 2273); 2239 pathB.lineTo(1015.20703f, 2273);
2220 pathB.quadTo(1013.13599f, 2273, 1012.06104f, 2271.53564f); 2240 pathB.quadTo(1013.13599f, 2273, 1012.06104f, 2271.53564f);
2221 pathB.quadTo(1010.98615f, 2270.07104f, 1011.53705f, 2268); 2241 pathB.quadTo(1010.98615f, 2270.07104f, 1011.53705f, 2268);
2222 pathB.close(); 2242 pathB.close();
2223 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2243 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2224 } 2244 }
2225 #endif
2226 2245
2227 // rightAngleWinding (probably same as argus_presse)
2228 #if TRY_NEW_TESTS
2229 static void skpwww_docgelo_com_66(skiatest::Reporter* reporter, const char* file name) { 2246 static void skpwww_docgelo_com_66(skiatest::Reporter* reporter, const char* file name) {
2230 SkPath path; 2247 SkPath path;
2231 path.setFillType(SkPath::kEvenOdd_FillType); 2248 path.setFillType(SkPath::kEvenOdd_FillType);
2232 path.moveTo(22.5f, 24174.5f); 2249 path.moveTo(22.5f, 24174.5f);
2233 path.lineTo(185.5f, 24174.498f); 2250 path.lineTo(185.5f, 24174.498f);
2234 path.lineTo(185.5f, 24174.75f); 2251 path.lineTo(185.5f, 24174.75f);
2235 path.lineTo(22.5f, 24174.75f); 2252 path.lineTo(22.5f, 24174.75f);
2236 path.lineTo(22.5f, 24174.5f); 2253 path.lineTo(22.5f, 24174.5f);
2237 path.close(); 2254 path.close();
2238 SkPath pathB; 2255 SkPath pathB;
2239 pathB.setFillType(SkPath::kWinding_FillType); 2256 pathB.setFillType(SkPath::kWinding_FillType);
2240 pathB.moveTo(22.5f, 24174.75f); 2257 pathB.moveTo(22.5f, 24174.75f);
2241 pathB.lineTo(22.5f, 24174.498f); 2258 pathB.lineTo(22.5f, 24174.498f);
2242 pathB.lineTo(185.5f, 24174.5f); 2259 pathB.lineTo(185.5f, 24174.5f);
2243 pathB.lineTo(185.5f, 24174.75f); 2260 pathB.lineTo(185.5f, 24174.75f);
2244 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2261 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2245 } 2262 }
2246 #endif
2247 2263
2248 // joinCoincidence / findT / assert
2249 static void skpwww_kpopexplorer_net_22(skiatest::Reporter* reporter, const char* filename) { 2264 static void skpwww_kpopexplorer_net_22(skiatest::Reporter* reporter, const char* filename) {
2250 SkPath path; 2265 SkPath path;
2251 path.setFillType(SkPath::kEvenOdd_FillType); 2266 path.setFillType(SkPath::kEvenOdd_FillType);
2252 path.moveTo(1000, 866.329346f); 2267 path.moveTo(1000, 866.329346f);
2253 path.quadTo(998, 869.250427f, 998, 873); 2268 path.quadTo(998, 869.250427f, 998, 873);
2254 path.lineTo(998, 874); 2269 path.lineTo(998, 874);
2255 path.quadTo(998, 877.749573f, 1000, 880.670654f); 2270 path.quadTo(998, 877.749573f, 1000, 880.670654f);
2256 path.lineTo(1000, 866.329346f); 2271 path.lineTo(1000, 866.329346f);
2257 path.close(); 2272 path.close();
2258 SkPath pathB; 2273 SkPath pathB;
2259 pathB.setFillType(SkPath::kWinding_FillType); 2274 pathB.setFillType(SkPath::kWinding_FillType);
2260 pathB.moveTo(998, 874); 2275 pathB.moveTo(998, 874);
2261 pathB.lineTo(998, 873); 2276 pathB.lineTo(998, 873);
2262 pathB.quadTo(998, 868.029419f, 1001.51471f, 864.514709f); 2277 pathB.quadTo(998, 868.029419f, 1001.51471f, 864.514709f);
2263 pathB.quadTo(1005.02942f, 861, 1010, 861); 2278 pathB.quadTo(1005.02942f, 861, 1010, 861);
2264 pathB.lineTo(1011, 861); 2279 pathB.lineTo(1011, 861);
2265 pathB.quadTo(1015.14215f, 861, 1018.07104f, 864.514709f); 2280 pathB.quadTo(1015.14215f, 861, 1018.07104f, 864.514709f);
2266 pathB.quadTo(1021, 868.029419f, 1021, 873); 2281 pathB.quadTo(1021, 868.029419f, 1021, 873);
2267 pathB.lineTo(1021, 874); 2282 pathB.lineTo(1021, 874);
2268 pathB.quadTo(1021, 878.142151f, 1018.07104f, 881.071045f); 2283 pathB.quadTo(1021, 878.142151f, 1018.07104f, 881.071045f);
2269 pathB.quadTo(1015.14215f, 884, 1011, 884); 2284 pathB.quadTo(1015.14215f, 884, 1011, 884);
2270 pathB.lineTo(1010, 884); 2285 pathB.lineTo(1010, 884);
2271 pathB.quadTo(1005.02942f, 884, 1001.51471f, 881.071045f); 2286 pathB.quadTo(1005.02942f, 884, 1001.51471f, 881.071045f);
2272 pathB.quadTo(998, 878.142151f, 998, 874); 2287 pathB.quadTo(998, 878.142151f, 998, 874);
2273 pathB.close(); 2288 pathB.close();
2274 testPathOp(reporter, path, pathB, kDifference_PathOp, filename); 2289 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2275 } 2290 }
2276 2291
2277 // rightAngleWinding
2278 #if TRY_NEW_TESTS
2279 static void skpwww_artblart_com_8(skiatest::Reporter* reporter, const char* file name) { 2292 static void skpwww_artblart_com_8(skiatest::Reporter* reporter, const char* file name) {
2280 SkPath path; 2293 SkPath path;
2281 path.setFillType(SkPath::kEvenOdd_FillType); 2294 path.setFillType(SkPath::kEvenOdd_FillType);
2282 path.moveTo(22.5f, 24527.25f); 2295 path.moveTo(22.5f, 24527.25f);
2283 path.lineTo(45, 24527.248f); 2296 path.lineTo(45, 24527.248f);
2284 path.lineTo(45, 24527.5f); 2297 path.lineTo(45, 24527.5f);
2285 path.lineTo(22.5f, 24527.5f); 2298 path.lineTo(22.5f, 24527.5f);
2286 path.lineTo(22.5f, 24527.25f); 2299 path.lineTo(22.5f, 24527.25f);
2287 path.close(); 2300 path.close();
2288 SkPath pathB; 2301 SkPath pathB;
2289 pathB.setFillType(SkPath::kWinding_FillType); 2302 pathB.setFillType(SkPath::kWinding_FillType);
2290 pathB.moveTo(22.5f, 24527.5f); 2303 pathB.moveTo(22.5f, 24527.5f);
2291 pathB.lineTo(22.5f, 24527.248f); 2304 pathB.lineTo(22.5f, 24527.248f);
2292 pathB.lineTo(45, 24527.25f); 2305 pathB.lineTo(45, 24527.25f);
2293 pathB.lineTo(45, 24527.5f); 2306 pathB.lineTo(45, 24527.5f);
2294 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2307 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2295 } 2308 }
2296 #endif
2297 2309
2298 // joinCoincidence / findT / assert 2310 // joinCoincidence / findT / assert
2299 static void skpwww_jessicaslens_wordpress_com_222(skiatest::Reporter* reporter, const char* filename) { 2311 static void skpwww_jessicaslens_wordpress_com_222(skiatest::Reporter* reporter, const char* filename) {
2300 SkPath path; 2312 SkPath path;
2301 path.setFillType(SkPath::kEvenOdd_FillType); 2313 path.setFillType(SkPath::kEvenOdd_FillType);
2302 path.moveTo(1000, 844.329346f); 2314 path.moveTo(1000, 844.329346f);
2303 path.quadTo(998, 847.250427f, 998, 851); 2315 path.quadTo(998, 847.250427f, 998, 851);
2304 path.lineTo(998, 852); 2316 path.lineTo(998, 852);
2305 path.quadTo(998, 855.749573f, 1000, 858.670654f); 2317 path.quadTo(998, 855.749573f, 1000, 858.670654f);
2306 path.lineTo(1000, 844.329346f); 2318 path.lineTo(1000, 844.329346f);
(...skipping 432 matching lines...) Expand 10 before | Expand all | Expand 10 after
2739 pathB.lineTo(127.666672f, 163.666672f); 2751 pathB.lineTo(127.666672f, 163.666672f);
2740 pathB.lineTo(127.666672f, 163.666672f); 2752 pathB.lineTo(127.666672f, 163.666672f);
2741 pathB.lineTo(127.666672f, 163.666672f); 2753 pathB.lineTo(127.666672f, 163.666672f);
2742 pathB.lineTo(90, 163.666672f); 2754 pathB.lineTo(90, 163.666672f);
2743 pathB.lineTo(90, 163.666672f); 2755 pathB.lineTo(90, 163.666672f);
2744 pathB.lineTo(90, 163.666672f); 2756 pathB.lineTo(90, 163.666672f);
2745 pathB.close(); 2757 pathB.close();
2746 testPathOp(reporter, path, pathB, kDifference_PathOp, filename); 2758 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2747 } 2759 }
2748 2760
2761 static void skpwww_wartepop_blogspot_com_br_6a(skiatest::Reporter* reporter, con st char* filename) {
2762 SkPath path;
2763 path.setFillType(SkPath::kEvenOdd_FillType);
2764 path.moveTo(90.9763107f, 153.309662f);
2765 path.quadTo(91.9526215f, 152.333344f, 93.3333359f, 152.333344f);
2766 path.lineTo(124.666672f, 152.333344f);
2767 path.quadTo(126.047379f, 152.333344f, 127.023689f, 153.309662f);
2768 path.quadTo(128, 154.285965f, 128, 155.666672f);
2769 path.lineTo(128, 163.666672f);
2770 path.lineTo(90, 163.666672f);
2771 path.lineTo(90, 155.666672f);
2772 path.quadTo(90, 154.285965f, 90.9763107f, 153.309662f);
2773 path.close();
2774 SkPath pathB;
2775 pathB.setFillType(SkPath::kWinding_FillType);
2776 pathB.moveTo(90, 163.666672f);
2777 pathB.lineTo(90, 155.666672f);
2778 pathB.quadTo(90, 154.285965f, 90.9763107f, 153.309662f);
2779 pathB.quadTo(91.9526215f, 152.333344f, 93.3333359f, 152.333344f);
2780 pathB.lineTo(124.666672f, 152.333344f);
2781 pathB.quadTo(125.909309f, 152.333344f, 126.787994f, 153.309662f);
2782 pathB.quadTo(127.666672f, 154.285965f, 127.666672f, 155.666672f);
2783 pathB.lineTo(127.666672f, 163.666672f);
2784 pathB.lineTo(127.666672f, 163.666672f);
2785 pathB.lineTo(127.666672f, 163.666672f);
2786 pathB.lineTo(90, 163.666672f);
2787 pathB.lineTo(90, 163.666672f);
2788 pathB.lineTo(90, 163.666672f);
2789 pathB.close();
2790 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2791 }
2792
2749 // !simple->isClosed() 2793 // !simple->isClosed()
2750 static void skpwww_odia_com_br_26(skiatest::Reporter* reporter, const char* file name) { 2794 static void skpwww_odia_com_br_26(skiatest::Reporter* reporter, const char* file name) {
2751 SkPath path; 2795 SkPath path;
2752 path.setFillType(SkPath::kEvenOdd_FillType); 2796 path.setFillType(SkPath::kEvenOdd_FillType);
2753 path.moveTo(360.740479f, 741.040771f); 2797 path.moveTo(360.740479f, 741.040771f);
2754 path.quadTo(360.378967f, 741, 360, 741); 2798 path.quadTo(360.378967f, 741, 360, 741);
2755 path.quadTo(359.159821f, 741, 358.403076f, 741.200745f); 2799 path.quadTo(359.159821f, 741, 358.403076f, 741.200745f);
2756 path.quadTo(357.649658f, 741.415833f, 356.92746f, 741.846436f); 2800 path.quadTo(357.649658f, 741.415833f, 356.92746f, 741.846436f);
2757 path.quadTo(356.600769f, 742.041199f, 356.310211f, 742.262268f); 2801 path.quadTo(356.600769f, 742.041199f, 356.310211f, 742.262268f);
2758 path.quadTo(356.025513f, 742.489197f, 355.757355f, 742.757385f); 2802 path.quadTo(356.025513f, 742.489197f, 355.757355f, 742.757385f);
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2861 path.close(); 2905 path.close();
2862 SkPath pathB; 2906 SkPath pathB;
2863 pathB.setFillType(SkPath::kWinding_FillType); 2907 pathB.setFillType(SkPath::kWinding_FillType);
2864 pathB.moveTo(10105, 2511); 2908 pathB.moveTo(10105, 2511);
2865 pathB.lineTo(10105, 2509.98999f); 2909 pathB.lineTo(10105, 2509.98999f);
2866 pathB.lineTo(10123, 2510); 2910 pathB.lineTo(10123, 2510);
2867 pathB.lineTo(10123, 2511); 2911 pathB.lineTo(10123, 2511);
2868 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2912 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2869 } 2913 }
2870 2914
2871 // hangs in find top
2872 #if TRY_NEW_TESTS
2873 static void skpwww_thaienews_blogspot_com_36(skiatest::Reporter* reporter, const char* filename) { 2915 static void skpwww_thaienews_blogspot_com_36(skiatest::Reporter* reporter, const char* filename) {
2874 SkPath path; 2916 SkPath path;
2875 path.setFillType(SkPath::kEvenOdd_FillType); 2917 path.setFillType(SkPath::kEvenOdd_FillType);
2876 path.moveTo(429.994995f, 6268); 2918 path.moveTo(429.994995f, 6268);
2877 path.lineTo(430, 2187); 2919 path.lineTo(430, 2187);
2878 path.lineTo(430.5f, 2187); 2920 path.lineTo(430.5f, 2187);
2879 path.lineTo(430.5f, 6268); 2921 path.lineTo(430.5f, 6268);
2880 path.lineTo(429.994995f, 6268); 2922 path.lineTo(429.994995f, 6268);
2881 path.close(); 2923 path.close();
2882 SkPath pathB; 2924 SkPath pathB;
2883 pathB.setFillType(SkPath::kWinding_FillType); 2925 pathB.setFillType(SkPath::kWinding_FillType);
2884 pathB.moveTo(430.5f, 2187); 2926 pathB.moveTo(430.5f, 2187);
2885 pathB.lineTo(429.994995f, 2187); 2927 pathB.lineTo(429.994995f, 2187);
2886 pathB.lineTo(430, 6268); 2928 pathB.lineTo(430, 6268);
2887 pathB.lineTo(430.5f, 6268); 2929 pathB.lineTo(430.5f, 6268);
2888 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2930 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2889 } 2931 }
2890 #endif
2891 2932
2892 // hangs
2893 static void skpwww_fashionscandal_com_94(skiatest::Reporter* reporter, const cha r* filename) { 2933 static void skpwww_fashionscandal_com_94(skiatest::Reporter* reporter, const cha r* filename) {
2894 SkPath path; 2934 SkPath path;
2895 path.setFillType(SkPath::kEvenOdd_FillType); 2935 path.setFillType(SkPath::kEvenOdd_FillType);
2896 path.moveTo(25.9107456f, 272.577423f); 2936 path.moveTo(25.9107456f, 272.577423f);
2897 path.quadTo(26.1548233f, 272.333344f, 26.5000019f, 272.333344f); 2937 path.quadTo(26.1548233f, 272.333344f, 26.5000019f, 272.333344f);
2898 path.lineTo(131.166672f, 272.333344f); 2938 path.lineTo(131.166672f, 272.333344f);
2899 path.quadTo(131.511841f, 272.333344f, 131.75592f, 272.577423f); 2939 path.quadTo(131.511841f, 272.333344f, 131.75592f, 272.577423f);
2900 path.quadTo(132, 272.821503f, 132, 273.166687f); 2940 path.quadTo(132, 272.821503f, 132, 273.166687f);
2901 path.lineTo(132, 417.166656f); 2941 path.lineTo(132, 417.166656f);
2902 path.quadTo(132, 417.511841f, 131.75592f, 417.75592f); 2942 path.quadTo(132, 417.511841f, 131.75592f, 417.75592f);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
2955 path.close(); 2995 path.close();
2956 SkPath pathB; 2996 SkPath pathB;
2957 pathB.setFillType(SkPath::kWinding_FillType); 2997 pathB.setFillType(SkPath::kWinding_FillType);
2958 pathB.moveTo(276, 7703); 2998 pathB.moveTo(276, 7703);
2959 pathB.lineTo(277.01001f, 7703); 2999 pathB.lineTo(277.01001f, 7703);
2960 pathB.lineTo(277, 9600); 3000 pathB.lineTo(277, 9600);
2961 pathB.lineTo(276, 9600); 3001 pathB.lineTo(276, 9600);
2962 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 3002 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2963 } 3003 }
2964 3004
2965 // checkSmall / addTPair / addT assert
2966 #if TRY_NEW_TESTS
2967 static void skpwww_uniquefx_net_442(skiatest::Reporter* reporter, const char* fi lename) { 3005 static void skpwww_uniquefx_net_442(skiatest::Reporter* reporter, const char* fi lename) {
2968 SkPath path; 3006 SkPath path;
2969 path.setFillType(SkPath::kEvenOdd_FillType); 3007 path.setFillType(SkPath::kEvenOdd_FillType);
2970 path.moveTo(960, 306); 3008 path.moveTo(960, 306);
2971 path.lineTo(960, 305); 3009 path.lineTo(960, 305);
2972 path.lineTo(1000, 305); 3010 path.lineTo(1000, 305);
2973 path.lineTo(1000, 306.708527f); 3011 path.lineTo(1000, 306.708527f);
2974 path.lineTo(960, 306); 3012 path.lineTo(960, 306);
2975 path.close(); 3013 path.close();
2976 SkPath pathB; 3014 SkPath pathB;
2977 pathB.setFillType(SkPath::kWinding_FillType); 3015 pathB.setFillType(SkPath::kWinding_FillType);
2978 pathB.moveTo(960, 305); 3016 pathB.moveTo(960, 305);
2979 pathB.lineTo(958.997253f, 306.002747f); 3017 pathB.lineTo(958.997253f, 306.002747f);
2980 pathB.lineTo(1017, 307); 3018 pathB.lineTo(1017, 307);
2981 pathB.lineTo(1019, 305); 3019 pathB.lineTo(1019, 305);
2982 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 3020 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2983 } 3021 }
2984 #endif
2985 3022
2986 // rightAngleWinding
2987 #if TRY_NEW_TESTS
2988 static void skpwww_kitcheninspirations_wordpress_com_32(skiatest::Reporter* repo rter, const char* filename) { 3023 static void skpwww_kitcheninspirations_wordpress_com_32(skiatest::Reporter* repo rter, const char* filename) {
2989 SkPath path; 3024 SkPath path;
2990 path.setFillType(SkPath::kEvenOdd_FillType); 3025 path.setFillType(SkPath::kEvenOdd_FillType);
2991 path.moveTo(47.1666679f, 19651.334f); 3026 path.moveTo(47.1666679f, 19651.334f);
2992 path.lineTo(65.8333359f, 19651.332f); 3027 path.lineTo(65.8333359f, 19651.332f);
2993 path.lineTo(65.8333359f, 19651.5f); 3028 path.lineTo(65.8333359f, 19651.5f);
2994 path.lineTo(47.1666679f, 19651.5f); 3029 path.lineTo(47.1666679f, 19651.5f);
2995 path.lineTo(47.1666679f, 19651.334f); 3030 path.lineTo(47.1666679f, 19651.334f);
2996 path.close(); 3031 path.close();
2997 SkPath pathB; 3032 SkPath pathB;
2998 pathB.setFillType(SkPath::kWinding_FillType); 3033 pathB.setFillType(SkPath::kWinding_FillType);
2999 pathB.moveTo(47.1666679f, 19651.5f); 3034 pathB.moveTo(47.1666679f, 19651.5f);
3000 pathB.lineTo(47.1666679f, 19651.332f); 3035 pathB.lineTo(47.1666679f, 19651.332f);
3001 pathB.lineTo(65.8333359f, 19651.334f); 3036 pathB.lineTo(65.8333359f, 19651.334f);
3002 pathB.lineTo(65.8333359f, 19651.5f); 3037 pathB.lineTo(65.8333359f, 19651.5f);
3003 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 3038 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3004 } 3039 }
3040
3041 static void skpwww_educationalcraft_com_4(skiatest::Reporter* reporter, const ch ar* filename) {
3042 SkPath path;
3043 path.setFillType(SkPath::kEvenOdd_FillType);
3044 path.moveTo(941, 1494);
3045 path.lineTo(941, 1464);
3046 path.lineTo(985, 1464);
3047 path.lineTo(985, 1494);
3048 path.lineTo(941, 1494);
3049 path.close();
3050 SkPath pathB;
3051 pathB.setFillType(SkPath::kWinding_FillType);
3052 pathB.moveTo(979.211975f, 1480.45496f);
3053 pathB.cubicTo(979.211975f, 1480.45496f, 976.348999f, 1479.68506f, 977.495972 f, 1475.59497f);
3054 pathB.cubicTo(977.497009f, 1475.59497f, 981.072021f, 1477.88501f, 979.211975 f, 1480.45496f);
3055 pathB.close();
3056 pathB.moveTo(977.854004f, 1484.453f);
3057 pathB.cubicTo(977.854004f, 1484.453f, 975.265991f, 1483.26099f, 976.713989f, 1479.35205f);
3058 pathB.cubicTo(976.713989f, 1479.35303f, 979.84198f, 1482.23499f, 977.854004f , 1484.453f);
3059 pathB.close();
3060 pathB.moveTo(980.226013f, 1476.229f);
3061 pathB.cubicTo(980.226013f, 1476.229f, 977.078003f, 1476.349f, 977.234985f, 1 471.97095f);
3062 pathB.cubicTo(977.234985f, 1471.97095f, 980.666992f, 1473.12903f, 980.226013 f, 1476.229f);
3063 pathB.close();
3064 pathB.moveTo(984.546021f, 1478.31494f);
3065 pathB.cubicTo(984.546021f, 1478.31494f, 983.187988f, 1481.93396f, 980.026001 f, 1481.276f);
3066 pathB.cubicTo(980.026978f, 1481.276f, 979.554993f, 1478.38904f, 984.546021f, 1478.31494f);
3067 pathB.close();
3068 pathB.moveTo(978.989014f, 1484.198f);
3069 pathB.cubicTo(978.989014f, 1484.198f, 979.094971f, 1481.33496f, 983.786011f, 1481.823f);
3070 pathB.cubicTo(983.786011f, 1481.823f, 982.070007f, 1485.49805f, 978.989014f, 1484.198f);
3071 pathB.close();
3072 pathB.moveTo(976.393005f, 1486.86804f);
3073 pathB.cubicTo(976.393005f, 1486.86804f, 976.719971f, 1484.06494f, 981.679016 f, 1485.37f);
3074 pathB.cubicTo(981.679016f, 1485.37f, 979.169983f, 1488.40796f, 976.393005f, 1486.86804f);
3075 pathB.close();
3076 pathB.moveTo(969.156982f, 1490.40002f);
3077 pathB.cubicTo(969.156982f, 1490.40002f, 971.478027f, 1488.23596f, 974.869995 f, 1491.21399f);
3078 pathB.cubicTo(974.869995f, 1491.21497f, 970.828003f, 1493.026f, 969.156982f, 1490.40002f);
3079 pathB.close();
3080 pathB.moveTo(972.825012f, 1483.93701f);
3081 pathB.cubicTo(972.825012f, 1483.93701f, 973.971985f, 1487.98401f, 971.161987 f, 1488.94604f);
3082 pathB.cubicTo(971.161987f, 1488.94495f, 969.278015f, 1486.37097f, 972.825012 f, 1483.93701f);
3083 pathB.close();
3084 pathB.moveTo(965.60199f, 1489.98499f);
3085 pathB.cubicTo(965.60199f, 1489.98499f, 964.879028f, 1487.19202f, 969.864014f , 1486.75f);
3086 pathB.cubicTo(969.864014f, 1486.75f, 968.749023f, 1490.672f, 965.60199f, 148 9.98499f);
3087 pathB.close();
3088 pathB.moveTo(970.666992f, 1492.81604f);
3089 pathB.cubicTo(970.666992f, 1492.81604f, 967.327026f, 1494.49695f, 964.999023 f, 1491.56299f);
3090 pathB.cubicTo(964.999023f, 1491.56299f, 967.304016f, 1489.43896f, 970.666992 f, 1492.81604f);
3091 pathB.close();
3092 pathB.moveTo(968.343994f, 1481.53796f);
3093 pathB.cubicTo(971.573975f, 1479.94995f, 971.687988f, 1476.78601f, 971.687988 f, 1476.78601f);
3094 pathB.lineTo(971.393982f, 1466.83398f);
3095 pathB.lineTo(954.960999f, 1466.83398f);
3096 pathB.lineTo(954.666016f, 1476.78601f);
3097 pathB.cubicTo(954.666016f, 1476.78601f, 954.780029f, 1479.94995f, 958.008972 f, 1481.53796f);
3098 pathB.cubicTo(960.781006f, 1482.90295f, 962.166992f, 1484.77698f, 962.166992 f, 1484.77698f);
3099 pathB.cubicTo(962.166992f, 1484.77698f, 962.747986f, 1485.70105f, 963.177979 f, 1485.70105f);
3100 pathB.cubicTo(963.606995f, 1485.70105f, 964.185974f, 1484.77698f, 964.185974 f, 1484.77698f);
3101 pathB.cubicTo(964.185974f, 1484.77698f, 965.573975f, 1482.90295f, 968.343994 f, 1481.53796f);
3102 pathB.close();
3103 pathB.moveTo(963.215027f, 1486.67004f);
3104 pathB.cubicTo(962.744995f, 1486.67004f, 962.106995f, 1485.65405f, 962.106995 f, 1485.65405f);
3105 pathB.cubicTo(962.106995f, 1485.65405f, 960.585022f, 1483.59595f, 957.539001 f, 1482.09705f);
3106 pathB.cubicTo(953.991028f, 1480.35205f, 953.867004f, 1476.87598f, 953.867004 f, 1476.87598f);
3107 pathB.lineTo(954.190002f, 1465.94397f);
3108 pathB.lineTo(972.23999f, 1465.94397f);
3109 pathB.lineTo(972.565002f, 1476.87695f);
3110 pathB.cubicTo(972.565002f, 1476.87695f, 972.440979f, 1480.35303f, 968.891968 f, 1482.09802f);
3111 pathB.cubicTo(965.846008f, 1483.59705f, 964.325012f, 1485.65503f, 964.325012 f, 1485.65503f);
3112 pathB.cubicTo(964.325012f, 1485.65503f, 963.687012f, 1486.67004f, 963.215027 f, 1486.67004f);
3113 pathB.close();
3114 pathB.moveTo(960.68103f, 1489.98499f);
3115 pathB.cubicTo(957.533997f, 1490.672f, 956.417969f, 1486.75f, 956.417969f, 14 86.75f);
3116 pathB.cubicTo(961.403015f, 1487.19202f, 960.68103f, 1489.98499f, 960.68103f, 1489.98499f);
3117 pathB.close();
3118 pathB.moveTo(963.143005f, 1489.59802f);
3119 pathB.cubicTo(963.763f, 1489.59802f, 964.265015f, 1490.09998f, 964.265015f, 1490.72095f);
3120 pathB.cubicTo(964.265015f, 1491.34204f, 963.763f, 1491.84399f, 963.143005f, 1491.84399f);
3121 pathB.cubicTo(962.521973f, 1491.84399f, 962.02002f, 1491.34204f, 962.02002f, 1490.72095f);
3122 pathB.cubicTo(962.02002f, 1490.09998f, 962.521973f, 1489.59802f, 963.143005f , 1489.59802f);
3123 pathB.close();
3124 pathB.moveTo(961.283997f, 1491.56299f);
3125 pathB.cubicTo(958.953979f, 1494.49695f, 955.61499f, 1492.81604f, 955.61499f, 1492.81604f);
3126 pathB.cubicTo(958.97699f, 1489.43896f, 961.283997f, 1491.56299f, 961.283997f , 1491.56299f);
3127 pathB.close();
3128 pathB.moveTo(957.127014f, 1490.40002f);
3129 pathB.cubicTo(955.455017f, 1493.026f, 951.414001f, 1491.21399f, 951.414001f, 1491.21399f);
3130 pathB.cubicTo(954.802979f, 1488.23596f, 957.127014f, 1490.40002f, 957.127014 f, 1490.40002f);
3131 pathB.close();
3132 pathB.moveTo(949.890991f, 1486.86804f);
3133 pathB.cubicTo(947.112976f, 1488.40796f, 944.604004f, 1485.37f, 944.604004f, 1485.37f);
3134 pathB.cubicTo(949.562012f, 1484.06494f, 949.890991f, 1486.86804f, 949.890991 f, 1486.86804f);
3135 pathB.close();
3136 pathB.moveTo(947.070984f, 1480.45496f);
3137 pathB.cubicTo(945.211975f, 1477.88501f, 948.786011f, 1475.59497f, 948.786011 f, 1475.59497f);
3138 pathB.cubicTo(949.934021f, 1479.68506f, 947.070984f, 1480.45496f, 947.070984 f, 1480.45496f);
3139 pathB.close();
3140 pathB.moveTo(946.054016f, 1476.229f);
3141 pathB.cubicTo(945.61499f, 1473.12903f, 949.046997f, 1471.97095f, 949.046997f , 1471.97095f);
3142 pathB.cubicTo(949.205994f, 1476.349f, 946.054016f, 1476.229f, 946.054016f, 1 476.229f);
3143 pathB.close();
3144 pathB.moveTo(948.427002f, 1484.453f);
3145 pathB.cubicTo(946.440002f, 1482.23499f, 949.567993f, 1479.35205f, 949.567993 f, 1479.35205f);
3146 pathB.cubicTo(951.015991f, 1483.26099f, 948.427002f, 1484.453f, 948.427002f, 1484.453f);
3147 pathB.close();
3148 pathB.moveTo(947.294006f, 1484.198f);
3149 pathB.cubicTo(944.210999f, 1485.49805f, 942.495972f, 1481.823f, 942.495972f, 1481.823f);
3150 pathB.cubicTo(947.187988f, 1481.33496f, 947.294006f, 1484.198f, 947.294006f, 1484.198f);
3151 pathB.close();
3152 pathB.moveTo(946.255005f, 1481.276f);
3153 pathB.cubicTo(943.094971f, 1481.93396f, 941.736023f, 1478.31494f, 941.736023 f, 1478.31494f);
3154 pathB.cubicTo(946.728027f, 1478.38904f, 946.255005f, 1481.276f, 946.255005f, 1481.276f);
3155 pathB.close();
3156 pathB.moveTo(945.312988f, 1478.18005f);
3157 pathB.cubicTo(942.052979f, 1477.80103f, 942.651001f, 1473.87805f, 942.651001 f, 1473.87805f);
3158 pathB.cubicTo(946.562988f, 1475.66199f, 945.312988f, 1478.18005f, 945.312988 f, 1478.18005f);
3159 pathB.close();
3160 pathB.moveTo(945.382019f, 1474.328f);
3161 pathB.cubicTo(942.924011f, 1472.729f, 944.492004f, 1469.48706f, 944.492004f, 1469.48706f);
3162 pathB.cubicTo(947.388977f, 1471.95703f, 945.382019f, 1474.328f, 945.382019f, 1474.328f);
3163 pathB.close();
3164 pathB.moveTo(946.797974f, 1470.27405f);
3165 pathB.cubicTo(944.664978f, 1467.90198f, 947.083984f, 1465.50598f, 947.083984 f, 1465.50598f);
3166 pathB.cubicTo(949.145996f, 1468.82605f, 946.797974f, 1470.27405f, 946.797974 f, 1470.27405f);
3167 pathB.close();
3168 pathB.moveTo(947.392029f, 1471.64197f);
3169 pathB.cubicTo(947.624023f, 1468.56299f, 951.361023f, 1468.29199f, 951.361023 f, 1468.29199f);
3170 pathB.cubicTo(950.554016f, 1471.98499f, 947.392029f, 1471.64197f, 947.392029 f, 1471.64197f);
3171 pathB.close();
3172 pathB.moveTo(948.64801f, 1468.15002f);
3173 pathB.cubicTo(948.638977f, 1465.22095f, 952.265991f, 1464.46399f, 952.265991 f, 1464.46399f);
3174 pathB.cubicTo(951.672974f, 1468.53101f, 948.64801f, 1468.15002f, 948.64801f, 1468.15002f);
3175 pathB.close();
3176 pathB.moveTo(951.176025f, 1486.97803f);
3177 pathB.cubicTo(948.963013f, 1484.62f, 951.361023f, 1481.77698f, 951.361023f, 1481.77698f);
3178 pathB.cubicTo(953.734985f, 1485.48596f, 951.176025f, 1486.97803f, 951.176025 f, 1486.97803f);
3179 pathB.close();
3180 pathB.moveTo(947.51001f, 1488.53101f);
3181 pathB.cubicTo(947.51001f, 1488.53101f, 951.596985f, 1486.32202f, 953.234009f , 1489.08997f);
3182 pathB.cubicTo(953.234009f, 1489.08997f, 951.158997f, 1491.03601f, 947.51001f , 1488.53101f);
3183 pathB.close();
3184 pathB.moveTo(955.120972f, 1488.94495f);
3185 pathB.cubicTo(952.309021f, 1487.98303f, 953.458984f, 1483.93604f, 953.458984 f, 1483.93604f);
3186 pathB.cubicTo(957.004028f, 1486.37097f, 955.120972f, 1488.94495f, 955.120972 f, 1488.94495f);
3187 pathB.close();
3188 pathB.moveTo(978.770996f, 1488.53101f);
3189 pathB.cubicTo(975.122986f, 1491.03601f, 973.047974f, 1489.08997f, 973.047974 f, 1489.08997f);
3190 pathB.cubicTo(974.684998f, 1486.32202f, 978.770996f, 1488.53101f, 978.770996 f, 1488.53101f);
3191 pathB.close();
3192 pathB.moveTo(975.106995f, 1486.97803f);
3193 pathB.cubicTo(975.106995f, 1486.97803f, 972.546997f, 1485.48706f, 974.919983 f, 1481.77698f);
3194 pathB.cubicTo(974.919983f, 1481.776f, 977.31897f, 1484.61902f, 975.106995f, 1486.97803f);
3195 pathB.close();
3196 pathB.moveTo(974.016968f, 1464.46399f);
3197 pathB.cubicTo(974.016968f, 1464.46399f, 977.643982f, 1465.22095f, 977.633972 f, 1468.15002f);
3198 pathB.cubicTo(977.633972f, 1468.15002f, 974.611023f, 1468.53101f, 974.016968 f, 1464.46399f);
3199 pathB.close();
3200 pathB.moveTo(974.919983f, 1468.29199f);
3201 pathB.cubicTo(974.919983f, 1468.29199f, 978.658997f, 1468.56299f, 978.890015 f, 1471.64197f);
3202 pathB.cubicTo(978.890015f, 1471.64197f, 975.72699f, 1471.98499f, 974.919983f , 1468.29199f);
3203 pathB.close();
3204 pathB.moveTo(979.197998f, 1465.50598f);
3205 pathB.cubicTo(979.197998f, 1465.50598f, 981.619019f, 1467.90198f, 979.481995 f, 1470.27405f);
3206 pathB.cubicTo(979.481995f, 1470.27405f, 977.138f, 1468.82605f, 979.197998f, 1465.50598f);
3207 pathB.close();
3208 pathB.moveTo(980.900024f, 1474.328f);
3209 pathB.cubicTo(980.900024f, 1474.328f, 978.893005f, 1471.95703f, 981.791016f, 1469.48706f);
3210 pathB.cubicTo(981.791016f, 1469.48596f, 983.358032f, 1472.729f, 980.900024f, 1474.328f);
3211 pathB.close();
3212 pathB.moveTo(980.968994f, 1478.18005f);
3213 pathB.cubicTo(980.968994f, 1478.18005f, 979.718018f, 1475.66199f, 983.632019 f, 1473.87805f);
3214 pathB.cubicTo(983.632019f, 1473.87805f, 984.229004f, 1477.80103f, 980.968994 f, 1478.18005f);
3215 pathB.close();
3216 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3217 }
3218
3219 static void skpwww_narayana_publishers_com_194(skiatest::Reporter* reporter, con st char* filename) {
3220 SkPath path;
3221 path.setFillType(SkPath::kEvenOdd_FillType);
3222 path.moveTo(1083.34314f, 445.65686f);
3223 path.quadTo(1081, 443.313721f, 1081, 440);
3224 path.lineTo(1257, 440);
3225 path.quadTo(1257, 443.313721f, 1254.65686f, 445.65686f);
3226 path.quadTo(1252.31372f, 448, 1249, 448);
3227 path.lineTo(1089, 448);
3228 path.quadTo(1085.68628f, 448, 1083.34314f, 445.65686f);
3229 path.close();
3230 path.moveTo(1083, 441);
3231 path.lineTo(1255, 441);
3232 path.quadTo(1255, 443.071075f, 1253.53552f, 444.535522f);
3233 path.quadTo(1252.07104f, 446, 1250, 446);
3234 path.lineTo(1088, 446);
3235 path.quadTo(1085.92896f, 446, 1084.46448f, 444.535522f);
3236 path.quadTo(1083, 443.071075f, 1083, 441);
3237 path.close();
3238 SkPath pathB;
3239 pathB.setFillType(SkPath::kWinding_FillType);
3240 pathB.moveTo(1081, 440);
3241 pathB.lineTo(1082, 440);
3242 pathB.lineTo(1090.01001f, 448);
3243 pathB.lineTo(1081, 448);
3244 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3245 }
3246
3247 static void skpwww_cooksnaps_com_17(skiatest::Reporter* reporter, const char* fi lename) {
3248 SkPath path;
3249 path.setFillType(SkPath::kEvenOdd_FillType);
3250 path.moveTo(170.340179f, 176);
3251 path.lineTo(166, 176);
3252 path.quadTo(161.964188f, 176, 158.299957f, 176.896912f);
3253 path.quadTo(154.678162f, 177.952271f, 151.183014f, 179.9702f);
3254 path.lineTo(150.316986f, 180.4702f);
3255 path.quadTo(146.175812f, 182.861099f, 143.115921f, 186.081696f);
3256 path.quadTo(140.693939f, 188.70134f, 138.99472f, 191.620407f);
3257 path.quadTo(137.316833f, 194.550888f, 136.259338f, 197.957367f);
3258 path.quadTo(135, 202.217865f, 135, 207);
3259 path.lineTo(135, 208);
3260 path.quadTo(135, 212.035751f, 135.896912f, 215.699997f);
3261 path.quadTo(136.952286f, 219.321869f, 138.9702f, 222.816986f);
3262 path.lineTo(139.4702f, 223.683014f);
3263 path.quadTo(141.861099f, 227.824188f, 145.081696f, 230.884079f);
3264 path.quadTo(147.70134f, 233.306061f, 150.620407f, 235.00528f);
3265 path.quadTo(153.550888f, 236.683167f, 156.957367f, 237.740662f);
3266 path.quadTo(161.217865f, 239, 166, 239);
3267 path.lineTo(170.482162f, 239);
3268 path.quadTo(176.307037f, 238.210968f, 181.816986f, 235.0298f);
3269 path.lineTo(182.683014f, 234.5298f);
3270 path.quadTo(182.686462f, 234.527817f, 182.689896f, 234.525818f);
3271 path.quadTo(193.804352f, 228.105652f, 197.126709f, 215.70639f);
3272 path.quadTo(200.450104f, 203.303314f, 194.0298f, 192.183014f);
3273 path.lineTo(193.5298f, 191.316986f);
3274 path.quadTo(187.109497f, 180.196686f, 174.706406f, 176.873276f);
3275 path.quadTo(172.503067f, 176.282898f, 170.340179f, 176);
3276 path.close();
3277 SkPath pathB;
3278 pathB.setFillType(SkPath::kWinding_FillType);
3279 pathB.moveTo(139.4702f, 223.683014f);
3280 pathB.lineTo(138.9702f, 222.816986f);
3281 pathB.quadTo(132.549896f, 211.696686f, 135.873291f, 199.293594f);
3282 pathB.quadTo(139.196686f, 186.890503f, 150.316986f, 180.4702f);
3283 pathB.lineTo(151.183014f, 179.9702f);
3284 pathB.quadTo(162.303314f, 173.549896f, 174.706406f, 176.873276f);
3285 pathB.quadTo(187.109497f, 180.196686f, 193.5298f, 191.316986f);
3286 pathB.lineTo(194.0298f, 192.183014f);
3287 pathB.quadTo(200.450104f, 203.303314f, 197.126709f, 215.70639f);
3288 pathB.quadTo(193.803314f, 228.109497f, 182.683014f, 234.5298f);
3289 pathB.lineTo(181.816986f, 235.0298f);
3290 pathB.quadTo(170.696686f, 241.450104f, 158.293594f, 238.126709f);
3291 pathB.quadTo(145.890503f, 234.803314f, 139.4702f, 223.683014f);
3292 pathB.close();
3293 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3294 }
3295
3296 static void skpwww_swapspacesystems_com_5(skiatest::Reporter* reporter, const ch ar* filename) {
3297 SkPath path;
3298 path.setFillType(SkPath::kEvenOdd_FillType);
3299 path.moveTo(819.050781f, 5539.72412f);
3300 path.quadTo(819.651672f, 5539.1543f, 820.479858f, 5539.17578f);
3301 path.lineTo(1191.35278f, 5548.8877f);
3302 path.quadTo(1192.18091f, 5548.90918f, 1192.7511f, 5549.50977f);
3303 path.quadTo(1193.32141f, 5550.11133f, 1193.29968f, 5550.93945f);
3304 path.lineTo(1186.57214f, 5807.85107f);
3305 path.quadTo(1186.55054f, 5808.6792f, 1185.94958f, 5809.24951f);
3306 path.quadTo(1185.34863f, 5809.81982f, 1184.52051f, 5809.79834f);
3307 path.lineTo(813.647705f, 5800.08643f);
3308 path.quadTo(812.819519f, 5800.06494f, 812.249268f, 5799.46387f);
3309 path.quadTo(811.679016f, 5798.86279f, 811.700684f, 5798.03467f);
3310 path.lineTo(818.428162f, 5541.12305f);
3311 path.quadTo(818.44989f, 5540.29492f, 819.050781f, 5539.72412f);
3312 path.close();
3313 SkPath pathB;
3314 pathB.setFillType(SkPath::kWinding_FillType);
3315 pathB.moveTo(818.48053f, 5539.12354f);
3316 pathB.lineTo(1193.35205f, 5548.93994f);
3317 pathB.lineTo(1186.5199f, 5809.85059f);
3318 pathB.lineTo(811.648376f, 5800.03418f);
3319 pathB.close();
3320 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3321 }
3322
3323 static void skpwww_kitcheninspirations_wordpress_com_66(skiatest::Reporter* repo rter, const char* filename) {
3324 SkPath path;
3325 path.setFillType(SkPath::kEvenOdd_FillType);
3326 path.moveTo(47.1666679f, 27820.668f);
3327 path.lineTo(60.8333359f, 27820.668f);
3328 path.lineTo(60.8333359f, 27820.498f);
3329 path.lineTo(47.1666679f, 27820.5f);
3330 path.lineTo(47.1666679f, 27820.668f);
3331 path.close();
3332 SkPath pathB;
3333 pathB.setFillType(SkPath::kWinding_FillType);
3334 pathB.moveTo(47.1666679f, 27820.668f);
3335 pathB.lineTo(47.1666679f, 27820.498f);
3336 pathB.lineTo(60.8333359f, 27820.5f);
3337 pathB.lineTo(60.8333359f, 27820.668f);
3338 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3339 }
3340
3341 static void skpwww_etiqadd_com_2464(skiatest::Reporter* reporter, const char* fi lename) {
3342 SkPath path;
3343 path.setFillType(SkPath::kEvenOdd_FillType);
3344 path.moveTo(630.378662f, 1293.42896f);
3345 path.quadTo(631.257385f, 1292.55029f, 632.5f, 1292.55029f);
3346 path.quadTo(633.742615f, 1292.55029f, 634.621338f, 1293.42896f);
3347 path.lineTo(639.571045f, 1298.37866f);
3348 path.quadTo(640.449768f, 1299.25732f, 640.449707f, 1300.5f);
3349 path.quadTo(640.449768f, 1301.74268f, 639.571045f, 1302.62134f);
3350 path.lineTo(634.621338f, 1307.57104f);
3351 path.quadTo(633.742615f, 1308.44971f, 632.5f, 1308.44971f);
3352 path.quadTo(631.257385f, 1308.44971f, 630.378662f, 1307.57104f);
3353 path.lineTo(625.428955f, 1302.62134f);
3354 path.quadTo(624.550232f, 1301.74268f, 624.550293f, 1300.5f);
3355 path.quadTo(624.550232f, 1299.25732f, 625.428955f, 1298.37866f);
3356 path.lineTo(630.378662f, 1293.42896f);
3357 path.close();
3358 SkPath pathB;
3359 pathB.setFillType(SkPath::kWinding_FillType);
3360 pathB.moveTo(632.5f, 1291.30762f);
3361 pathB.lineTo(641.692383f, 1300.5f);
3362 pathB.lineTo(632.5f, 1309.69238f);
3363 pathB.lineTo(623.307617f, 1300.5f);
3364 pathB.close();
3365 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3366 }
3367
3368 static void skpwww_narayana_verlag_de_194(skiatest::Reporter* reporter, const ch ar* filename) {
3369 SkPath path;
3370 path.setFillType(SkPath::kEvenOdd_FillType);
3371 path.moveTo(1083.34314f, 513.65686f);
3372 path.quadTo(1081, 511.313721f, 1081, 508);
3373 path.lineTo(1257, 508);
3374 path.quadTo(1257, 511.313721f, 1254.65686f, 513.65686f);
3375 path.quadTo(1252.31372f, 516, 1249, 516);
3376 path.lineTo(1089, 516);
3377 path.quadTo(1085.68628f, 516, 1083.34314f, 513.65686f);
3378 path.close();
3379 path.moveTo(1083, 509);
3380 path.lineTo(1255, 509);
3381 path.quadTo(1255, 511.071075f, 1253.53552f, 512.535522f);
3382 path.quadTo(1252.07104f, 514, 1250, 514);
3383 path.lineTo(1088, 514);
3384 path.quadTo(1085.92896f, 514, 1084.46448f, 512.535522f);
3385 path.quadTo(1083, 511.071075f, 1083, 509);
3386 path.close();
3387 SkPath pathB;
3388 pathB.setFillType(SkPath::kWinding_FillType);
3389 pathB.moveTo(1081, 508);
3390 pathB.lineTo(1082, 508);
3391 pathB.lineTo(1090.01001f, 516);
3392 pathB.lineTo(1081, 516);
3393 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3394 }
3395
3396 static void skpwww_americascup_com_108(skiatest::Reporter* reporter, const char* filename) {
3397 SkPath path;
3398 path.setFillType(SkPath::kEvenOdd_FillType);
3399 path.moveTo(999.454102f, 689.17157f);
3400 path.quadTo(1001.172f, 688, 1002.82886f, 688);
3401 path.lineTo(1013.82886f, 688);
3402 path.lineTo(1002.17114f, 713);
3403 path.lineTo(991.171143f, 713);
3404 path.quadTo(989.514282f, 713, 988.889038f, 711.82843f);
3405 path.quadTo(988.263794f, 710.65686f, 989.036377f, 709);
3406 path.lineTo(996.963623f, 692);
3407 path.quadTo(997.736206f, 690.34314f, 999.454102f, 689.17157f);
3408 path.close();
3409 SkPath pathB;
3410 pathB.setFillType(SkPath::kWinding_FillType);
3411 pathB.moveTo(998.828857f, 688);
3412 pathB.lineTo(1013.82886f, 688);
3413 pathB.lineTo(1002.17114f, 713);
3414 pathB.lineTo(987.171143f, 713);
3415 pathB.close();
3416 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3417 }
3418
3419 static void skpwww_vantageproduction_com_109(skiatest::Reporter* reporter, const char* filename) {
3420 SkPath path;
3421 path.setFillType(SkPath::kEvenOdd_FillType);
3422 path.moveTo(794.514709f, 759.485291f);
3423 path.quadTo(791, 755.970581f, 791, 751);
3424 path.lineTo(1133, 751);
3425 path.quadTo(1133, 755.970581f, 1129.48523f, 759.485291f);
3426 path.quadTo(1125.97058f, 763, 1121, 763);
3427 path.lineTo(803, 763);
3428 path.quadTo(798.029419f, 763, 794.514709f, 759.485291f);
3429 path.close();
3430 path.moveTo(793, 752);
3431 path.lineTo(1131, 752);
3432 path.quadTo(1131, 755.727905f, 1128.36401f, 758.363953f);
3433 path.quadTo(1125.72791f, 761, 1122, 761);
3434 path.lineTo(802, 761);
3435 path.quadTo(798.272095f, 761, 795.636047f, 758.363953f);
3436 path.quadTo(793, 755.727905f, 793, 752);
3437 path.close();
3438 SkPath pathB;
3439 pathB.setFillType(SkPath::kWinding_FillType);
3440 pathB.moveTo(791, 751);
3441 pathB.lineTo(792, 751);
3442 pathB.lineTo(804.01001f, 763);
3443 pathB.lineTo(791, 763);
3444 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3445 }
3446
3447 static void skpwww_aceinfographics_com_106(skiatest::Reporter* reporter, const c har* filename) {
3448 SkPath path;
3449 path.setFillType(SkPath::kEvenOdd_FillType);
3450 path.moveTo(166.878677f, 7638.87891f);
3451 path.quadTo(166, 7639.75732f, 166, 7641);
3452 path.lineTo(166, 11577);
3453 path.quadTo(166, 11578.2422f, 166.878677f, 11579.1211f);
3454 path.quadTo(167.388f, 11579.6309f, 168.019989f, 11579.8447f);
3455 path.lineTo(168.019974f, 11576.2979f);
3456 path.quadTo(168, 11576.1533f, 168, 11576);
3457 path.lineTo(168, 7642);
3458 path.lineTo(168.000015f, 7641.99316f);
3459 path.lineTo(168, 7640);
3460 path.lineTo(166.878677f, 7638.87891f);
3461 path.close();
3462 SkPath pathB;
3463 pathB.setFillType(SkPath::kWinding_FillType);
3464 pathB.moveTo(166, 7638);
3465 pathB.lineTo(168.020004f, 7635.97998f);
3466 pathB.lineTo(168, 11578);
3467 pathB.lineTo(166, 11580);
3468 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3469 }
3470
3471 static void skpwww_tcmevents_org_13(skiatest::Reporter* reporter, const char* fi lename) {
3472 SkPath path;
3473 path.setFillType(SkPath::kEvenOdd_FillType);
3474 path.moveTo(465.951904f, 547.960144f);
3475 path.quadTo(465.66571f, 546.867371f, 465.404938f, 546);
3476 path.lineTo(465.504089f, 546);
3477 path.quadTo(465.670349f, 546.601257f, 465.84668f, 547.288391f);
3478 path.quadTo(467.274506f, 552.852356f, 468.506836f, 560.718567f);
3479 path.quadTo(467.336121f, 553.24585f, 465.951904f, 547.960144f);
3480 path.close();
3481 path.moveTo(470.591064f, 574.024353f);
3482 path.quadTo(474.844055f, 601.176025f, 471.728271f, 620.364502f);
3483 path.quadTo(470.567017f, 627.515991f, 468.635742f, 632);
3484 path.lineTo(469.106812f, 632);
3485 path.quadTo(470.791504f, 627.638672f, 471.833496f, 621.036255f);
3486 path.quadTo(474.905701f, 601.569519f, 470.591064f, 574.024353f);
3487 path.close();
3488 SkPath pathB;
3489 pathB.setFillType(SkPath::kWinding_FillType);
3490 pathB.moveTo(322.992462f, 541.475708f);
3491 pathB.lineTo(465.531616f, 541.724426f);
3492 pathB.lineTo(468.507751f, 560.724426f);
3493 pathB.lineTo(325.968597f, 560.475708f);
3494 pathB.close();
3495 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3496 }
3497
3498 static void skpwww_paseoitaigara_com_br_56(skiatest::Reporter* reporter, const c har* filename) {
3499 SkPath path;
3500 path.setFillType(SkPath::kEvenOdd_FillType);
3501 path.moveTo(633.147217f, 1247);
3502 path.lineTo(718, 1162.14722f);
3503 path.lineTo(802.852783f, 1247);
3504 path.lineTo(718, 1331.85278f);
3505 path.lineTo(633.147217f, 1247);
3506 path.close();
3507 SkPath pathB;
3508 pathB.setFillType(SkPath::kWinding_FillType);
3509 pathB.moveTo(635.268494f, 1244.87866f);
3510 pathB.lineTo(715.878662f, 1164.26855f);
3511 pathB.quadTo(716.757385f, 1163.38989f, 718, 1163.38989f);
3512 pathB.quadTo(719.242615f, 1163.38989f, 720.121338f, 1164.26855f);
3513 pathB.lineTo(800.731506f, 1244.87866f);
3514 pathB.quadTo(801.610168f, 1245.75732f, 801.610168f, 1247);
3515 pathB.quadTo(801.610229f, 1248.24268f, 800.731445f, 1249.12134f);
3516 pathB.lineTo(720.121338f, 1329.73145f);
3517 pathB.quadTo(719.242676f, 1330.61011f, 718, 1330.61011f);
3518 pathB.quadTo(716.757385f, 1330.61011f, 715.878723f, 1329.73145f);
3519 pathB.lineTo(635.268555f, 1249.12134f);
3520 pathB.quadTo(634.389832f, 1248.24268f, 634.389832f, 1247);
3521 pathB.quadTo(634.389832f, 1245.75732f, 635.268494f, 1244.87866f);
3522 pathB.close();
3523 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3524 }
3525
3526 static void skpwww_mortgagemarketguide_com_109(skiatest::Reporter* reporter, con st char* filename) {
3527 SkPath path;
3528 path.setFillType(SkPath::kEvenOdd_FillType);
3529 path.moveTo(816.514709f, 781.485291f);
3530 path.quadTo(813, 777.970581f, 813, 773);
3531 path.lineTo(1133, 773);
3532 path.quadTo(1133, 777.970581f, 1129.48523f, 781.485291f);
3533 path.quadTo(1125.97058f, 785, 1121, 785);
3534 path.lineTo(825, 785);
3535 path.quadTo(820.029419f, 785, 816.514709f, 781.485291f);
3536 path.close();
3537 path.moveTo(815, 774);
3538 path.lineTo(1131, 774);
3539 path.quadTo(1131, 777.727905f, 1128.36401f, 780.363953f);
3540 path.quadTo(1125.72791f, 783, 1122, 783);
3541 path.lineTo(824, 783);
3542 path.quadTo(820.272095f, 783, 817.636047f, 780.363953f);
3543 path.quadTo(815, 777.727905f, 815, 774);
3544 path.close();
3545 SkPath pathB;
3546 pathB.setFillType(SkPath::kWinding_FillType);
3547 pathB.moveTo(813, 773);
3548 pathB.lineTo(814, 773);
3549 pathB.lineTo(826.01001f, 785);
3550 pathB.lineTo(813, 785);
3551 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3552 }
3553
3554 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
3555
3556 static struct TestDesc tests[] = {
3557 TEST(skpwww_wartepop_blogspot_com_br_6),
3558 TEST(skpwww_wartepop_blogspot_com_br_6a),
3559 TEST(skpwww_cooksnaps_com_32a),
3560 #if TRY_NEW_TESTS
3561 TEST(skpwww_argus_presse_fr_41),
3005 #endif 3562 #endif
3006 3563 TEST(skpwww_cooksnaps_com_17),
3007 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; 3564 TEST(skpwww_cooksnaps_com_32),
3008 3565 TEST(skpwww_kitcheninspirations_wordpress_com_66),
3009 static struct TestDesc tests[] = { 3566 TEST(skpwww_tcmevents_org_13),
3010 #if TRY_NEW_TESTS 3567 TEST(skpwww_narayana_publishers_com_194),
3011 TEST(skpwww_kitcheninspirations_wordpress_com_32), // rightanglewinding 3568 TEST(skpwww_swapspacesystems_com_5),
3012 #endif 3569 TEST(skpwww_vantageproduction_com_109),
3013 #if TRY_NEW_TESTS 3570 TEST(skpwww_americascup_com_108),
3014 TEST(skpwww_uniquefx_net_442), // checkSmall / addTPair / addT assert 3571 TEST(skpwww_narayana_verlag_de_194),
3015 #endif 3572 TEST(skpwww_etiqadd_com_2464),
3573 TEST(skpwww_paseoitaigara_com_br_56),
3574 TEST(skpwww_mortgagemarketguide_com_109),
3575 TEST(skpwww_aceinfographics_com_106),
3576 TEST(skpwww_educationalcraft_com_4),
3577 TEST(skpwww_kitcheninspirations_wordpress_com_32),
3578 TEST(skpwww_artblart_com_8),
3579 TEST(skpwww_docgelo_com_66),
3580 TEST(skpwww_uniquefx_net_442),
3016 TEST(skpwww_defense_studies_blogspot_com_64), 3581 TEST(skpwww_defense_studies_blogspot_com_64),
3017 TEST(skpwww_kenlevine_blogspot_com_28), 3582 TEST(skpwww_kenlevine_blogspot_com_28),
3018 TEST(skpwww_fashionscandal_com_94), 3583 TEST(skpwww_fashionscandal_com_94),
3019 #if TRY_NEW_TESTS 3584 TEST(skpwww_thaienews_blogspot_com_36),
3020 TEST(skpwww_thaienews_blogspot_com_36), // completes but fails to produce c orrect output
3021 #endif
3022 TEST(skpwww_galaxystwo_com_4), 3585 TEST(skpwww_galaxystwo_com_4),
3023 TEST(skpwww_catingueiraonline_com_352), 3586 TEST(skpwww_catingueiraonline_com_352),
3024 TEST(skpwww_evolvehq_com_210), 3587 TEST(skpwww_evolvehq_com_210),
3025 TEST(skpwww_odia_com_br_26), // asserts expecting isClosed 3588 TEST(skpwww_odia_com_br_26),
3026 TEST(skpwww_wartepop_blogspot_com_br_6), // asserts expecting isClosed
3027 TEST(skpwww_lokado_de_173), 3589 TEST(skpwww_lokado_de_173),
3028 TEST(skpwww_seopack_blogspot_com_2153), 3590 TEST(skpwww_seopack_blogspot_com_2153),
3029 TEST(skpwww_partsdata_de_53), 3591 TEST(skpwww_partsdata_de_53),
3030 TEST(skpwww_simplysaru_com_40), 3592 TEST(skpwww_simplysaru_com_40),
3031 TEST(skpwww_jessicaslens_wordpress_com_222), 3593 TEST(skpwww_jessicaslens_wordpress_com_222),
3032 #if TRY_NEW_TESTS
3033 TEST(skpwww_artblart_com_8), // rightanglewinding
3034 #endif
3035 TEST(skpwww_kpopexplorer_net_22), 3594 TEST(skpwww_kpopexplorer_net_22),
3036 #if TRY_NEW_TESTS 3595 TEST(skpwww_tunero_de_24),
3037 TEST(skpwww_docgelo_com_66), // rightanglewinding
3038 #endif
3039 #if TRY_NEW_TESTS // nearly coincident curves -- maybe angle is written before coincidence detected?
3040 TEST(skpwww_tunero_de_24), // has both winding and oppWinding set to zero i n markWinding
3041 #endif
3042 TEST(skpwww_karnivool_com_au_11), 3596 TEST(skpwww_karnivool_com_au_11),
3043 TEST(skpwww_pindosiya_com_99), 3597 TEST(skpwww_pindosiya_com_99),
3044 TEST(skpwww_contextualnewsfeeds_com_346), // asserts expecting isClosed 3598 TEST(skpwww_contextualnewsfeeds_com_346),
3045 TEST(skpwww_cooksnaps_com_32), // asserts expecting isClosed 3599 TEST(skpwww_helha_be_109),
3046 #if TRY_NEW_TESTS_IS_CLOSED 3600 TEST(skpwww_phototransferapp_com_24),
3047 TEST(skpwww_helha_be_109), // asserts expecting isClosed 3601 TEST(skpwww_phototransferapp_com_24x),
3048 TEST(skpwww_phototransferapp_com_24), // asserts expecting isClosed 3602 TEST(skpwww_gruposejaumdivulgador_com_br_4),
3049 #endif
3050 #if TRY_NEW_TESTS
3051 TEST(skpwww_gruposejaumdivulgador_com_br_4), // span already marked done is futher marked coin
3052 #endif
3053 TEST(skpwww_hubbyscook_com_22), 3603 TEST(skpwww_hubbyscook_com_22),
3054 #if TRY_NEW_TESTS
3055 TEST(skpwww_argus_presse_fr_41), // rightanglewinding
3056 #endif
3057 TEST(skpwww_maturesupertube_com_21), 3604 TEST(skpwww_maturesupertube_com_21),
3058 TEST(skpwww_getgold_jp_731), 3605 TEST(skpwww_getgold_jp_731),
3059 TEST(skpwww_trashness_com_36), 3606 TEST(skpwww_trashness_com_36),
3060 TEST(skpwww_exystence_net_61), 3607 TEST(skpwww_exystence_net_61),
3061 TEST(skpwww_320kbps_net_2231), 3608 TEST(skpwww_320kbps_net_2231),
3062 TEST(skpwww_heartiste_wordpress_com_86), 3609 TEST(skpwww_heartiste_wordpress_com_86),
3063 TEST(skpwww_hairjobsearch_com_31), 3610 TEST(skpwww_hairjobsearch_com_31),
3064 TEST(skpwww_alucinados_net_101), 3611 TEST(skpwww_alucinados_net_101),
3065 TEST(skpnamecheap_com_405), 3612 TEST(skpnamecheap_com_405),
3066 TEST(skpelpais_com_18), 3613 TEST(skpelpais_com_18),
3067 TEST(skpwww_cityads_ru_249), 3614 TEST(skpwww_cityads_ru_249),
3068 TEST(skpwww_alrakoba_net_62), 3615 TEST(skpwww_alrakoba_net_62),
3069 TEST(skpwww_dealnews_com_315), 3616 TEST(skpwww_dealnews_com_315),
3070 TEST(skpwww_inmotionhosting_com_9), 3617 TEST(skpwww_inmotionhosting_com_9),
3071 TEST(skpskpicture14), 3618 TEST(skpskpicture14),
3072 TEST(skpskpicture15), 3619 TEST(skpskpicture15),
3073 TEST(skpwww_meb_gov_tr_6), 3620 TEST(skpwww_meb_gov_tr_6),
3074 TEST(skpwww_sciality_com_101), 3621 TEST(skpwww_sciality_com_101),
3075 TEST(skpwww_booking_com_68), // similar to lavoixdunord 3622 TEST(skpwww_booking_com_68),
3076 TEST(skpwww_despegar_com_mx_272), // similar to lavoixdunord 3623 TEST(skpwww_despegar_com_mx_272),
3077 TEST(skpwww_lavoixdunord_fr_11), // not quite coincident, sorting line/cubi c fails 3624 TEST(skpwww_lavoixdunord_fr_11),
3078 TEST(skppptv_com_62), // cubic have nearly identical tangents, sort incorre ctly 3625 TEST(skppptv_com_62),
3079 TEST(skppchappy_com_au102), 3626 TEST(skppchappy_com_au102),
3080 TEST(skpsciality_com161), 3627 TEST(skpsciality_com161),
3081 TEST(skpi_gino_com16), 3628 TEST(skpi_gino_com16),
3082 TEST(skpnaoxrane_ru23), // see test for failure evaluation 3629 TEST(skpnaoxrane_ru23),
3083 TEST(skptcmevents_org23), // see test for (partial) failure evaluation 3630 TEST(skptcmevents_org23),
3084 TEST(skpredbullskatearcade_es16), // cubic have nearly identical tangents, sort incorrectly 3631 TEST(skpredbullskatearcade_es16),
3085 TEST(skpfinanzasdigital_com9), // cubic/quad tangents too close to sort 3632 TEST(skpfinanzasdigital_com9),
3086 TEST(skpgithub_io_26), 3633 TEST(skpgithub_io_26),
3087 TEST(skpgithub_io_25), 3634 TEST(skpgithub_io_25),
3088 TEST(skpwww_meb_gov_tr_5), 3635 TEST(skpwww_meb_gov_tr_5),
3089 TEST(skpwww_sciality_com_100), 3636 TEST(skpwww_sciality_com_100),
3090 TEST(skpwww_joomla_org_23), 3637 TEST(skpwww_joomla_org_23),
3091 TEST(skpwww_macrumors_com_131), 3638 TEST(skpwww_macrumors_com_131),
3092 TEST(skpwww_briian_com_34), 3639 TEST(skpwww_briian_com_34),
3093 TEST(skpwww_leadpages_net_84), 3640 TEST(skpwww_leadpages_net_84),
3094 TEST(skpwww_fj_p_com_22), 3641 TEST(skpwww_fj_p_com_22),
3095 TEST(skppartainasdemo250_org56), 3642 TEST(skppartainasdemo250_org56),
(...skipping 23 matching lines...) Expand all
3119 3666
3120 static bool runReverse = false; 3667 static bool runReverse = false;
3121 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; 3668 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
3122 3669
3123 DEF_TEST(PathOpsSkp, reporter) { 3670 DEF_TEST(PathOpsSkp, reporter) {
3124 #if DEBUG_SHOW_TEST_NAME 3671 #if DEBUG_SHOW_TEST_NAME
3125 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); 3672 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH);
3126 #endif 3673 #endif
3127 RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse); 3674 RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse);
3128 } 3675 }
OLDNEW
« no previous file with comments | « tests/PathOpsSkpClipTest.cpp ('k') | tools/pathops_sorter.htm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698