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

Side by Side Diff: tests/PathOpsSkpTest.cpp

Issue 1002693002: pathops version two (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: fix arm 64 inspired coincident handling Created 5 years, 9 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/PathOpsSimplifyTest.cpp ('k') | tests/PathOpsTSectDebug.h » ('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
(...skipping 878 matching lines...) Expand 10 before | Expand all | Expand 10 after
889 path.close(); 889 path.close();
890 SkPath pathB; 890 SkPath pathB;
891 pathB.setFillType(SkPath::kWinding_FillType); 891 pathB.setFillType(SkPath::kWinding_FillType);
892 pathB.moveTo(405.592621f, 909.435547f); 892 pathB.moveTo(405.592621f, 909.435547f);
893 pathB.lineTo(390.578583f, 867.014099f); 893 pathB.lineTo(390.578583f, 867.014099f);
894 pathB.lineTo(433, 852.000061f); 894 pathB.lineTo(433, 852.000061f);
895 pathB.lineTo(490.435486f, 879.40741f); 895 pathB.lineTo(490.435486f, 879.40741f);
896 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 896 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
897 } 897 }
898 898
899 /* this cubic/quad pair
900 c = 430,280 430,278.895416 473.876068,278 528,278
901 q = 430,280 430.009796,277.101196 458.703552,275.050262
902 only intersect at the shared point (430,280)
903 they sort backwards because the tangent from pt[0] to control pt[1]
904 c' = (0.00000000000000000, -1.1045837402343750)
905 q' = (0.0097961425781250000, -2.8988037109375000)
906 suggests that the quad is counterclockwise of the cubic, when the reverse is tr ue
907 the angle code is fooled because the control pt[1] of both the quad and cubic
908 is far away from cubic cntl [2] and quad pt [2].
909 Maybe in angle setup, this instability can be detected to suppress sorting on t he initial tangent
910 Or the error term can be passed to NearRay that is magnified by the distance fr om the next ctrl?
911 */
912 static void skpnaoxrane_ru23(skiatest::Reporter* reporter, const char* filename) { 899 static void skpnaoxrane_ru23(skiatest::Reporter* reporter, const char* filename) {
913 SkPath path; 900 SkPath path;
914 path.setFillType(SkPath::kEvenOdd_FillType); 901 path.setFillType(SkPath::kEvenOdd_FillType);
915 path.moveTo(458.703552f, 275.050262f); 902 path.moveTo(458.703552f, 275.050262f);
916 path.quadTo(487.41687f, 273.000702f, 528, 273); 903 path.quadTo(487.41687f, 273.000702f, 528, 273);
917 path.lineTo(529, 273); 904 path.lineTo(529, 273);
918 path.quadTo(530.242371f, 273.000305f, 531.121338f, 273.878693f); 905 path.quadTo(530.242371f, 273.000305f, 531.121338f, 273.878693f);
919 path.quadTo(531.999695f, 274.75766f, 532, 276); 906 path.quadTo(531.999695f, 274.75766f, 532, 276);
920 path.lineTo(532, 378); 907 path.lineTo(532, 378);
921 path.quadTo(531.990173f, 380.898804f, 503.296448f, 382.949738f); 908 path.quadTo(531.990173f, 380.898804f, 503.296448f, 382.949738f);
(...skipping 12 matching lines...) Expand all
934 pathB.lineTo(532, 378); 921 pathB.lineTo(532, 378);
935 pathB.cubicTo(532, 379.104584f, 488.123932f, 380, 434, 380); 922 pathB.cubicTo(532, 379.104584f, 488.123932f, 380, 434, 380);
936 pathB.lineTo(433, 380); 923 pathB.lineTo(433, 380);
937 pathB.cubicTo(431.34314f, 380, 430, 380, 430, 380); 924 pathB.cubicTo(431.34314f, 380, 430, 380, 430, 380);
938 pathB.lineTo(430, 280); 925 pathB.lineTo(430, 280);
939 pathB.cubicTo(430, 278.895416f, 473.876068f, 278, 528, 278); 926 pathB.cubicTo(430, 278.895416f, 473.876068f, 278, 528, 278);
940 pathB.close(); 927 pathB.close();
941 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 928 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
942 } 929 }
943 930
944 /* didn't investigate thoroughly, but looks to be missorting quad and cubic
945 {{468.507751,560.724426}, {467.275146,552.856262}, {465.84668,547.288391}}
946 {{463.779907,542.671143}, {464.829529,542.672974}, {466.946289,550.755676}, {468.507751,560.724426}}
947 decision maker is case 14 leftLessThanRight
948 */
949 static void skptcmevents_org23(skiatest::Reporter* reporter, const char* filenam e) { 931 static void skptcmevents_org23(skiatest::Reporter* reporter, const char* filenam e) {
950 SkPath path; 932 SkPath path;
951 path.setFillType(SkPath::kEvenOdd_FillType); 933 path.setFillType(SkPath::kEvenOdd_FillType);
952 path.moveTo(465.503998f, 546); 934 path.moveTo(465.503998f, 546);
953 path.lineTo(347, 546); 935 path.lineTo(347, 546);
954 path.lineTo(347, 632); 936 path.lineTo(347, 632);
955 path.lineTo(469.104248f, 632); 937 path.lineTo(469.104248f, 632);
956 path.quadTo(470.79007f, 627.638672f, 471.833496f, 621.036255f); 938 path.quadTo(470.79007f, 627.638672f, 471.833496f, 621.036255f);
957 path.quadTo(474.902588f, 601.562866f, 470.591064f, 574.024353f); 939 path.quadTo(474.902588f, 601.562866f, 470.591064f, 574.024353f);
958 path.lineTo(468.507751f, 560.724426f); 940 path.lineTo(468.507751f, 560.724426f);
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1072 pathB.moveTo(154, 671); 1054 pathB.moveTo(154, 671);
1073 pathB.lineTo(188, 671); 1055 pathB.lineTo(188, 671);
1074 pathB.cubicTo(190.761429f, 671, 193, 672.790833f, 193, 675); 1056 pathB.cubicTo(190.761429f, 671, 193, 672.790833f, 193, 675);
1075 pathB.lineTo(193, 710); 1057 pathB.lineTo(193, 710);
1076 pathB.cubicTo(193, 712.761414f, 190.761429f, 715, 188, 715); 1058 pathB.cubicTo(193, 712.761414f, 190.761429f, 715, 188, 715);
1077 pathB.lineTo(154, 715); 1059 pathB.lineTo(154, 715);
1078 pathB.cubicTo(151.238571f, 715, 149, 712.761414f, 149, 710); 1060 pathB.cubicTo(151.238571f, 715, 149, 712.761414f, 149, 710);
1079 pathB.lineTo(149, 675); 1061 pathB.lineTo(149, 675);
1080 pathB.cubicTo(149, 672.790833f, 151.238571f, 671, 154, 671); 1062 pathB.cubicTo(149, 672.790833f, 151.238571f, 671, 154, 671);
1081 pathB.close(); 1063 pathB.close();
1082 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1064 testPathOpCheck(reporter, path, pathB, kIntersect_PathOp, filename, FLAGS_ru nFail);
1083 } 1065 }
1084 1066
1085 static void skpcyclist_friends_gr52(skiatest::Reporter* reporter, const char* fi lename) { 1067 static void skpcyclist_friends_gr52(skiatest::Reporter* reporter, const char* fi lename) {
1086 SkPath path; 1068 SkPath path;
1087 path.setFillType(SkPath::kEvenOdd_FillType); 1069 path.setFillType(SkPath::kEvenOdd_FillType);
1088 path.moveTo(50, 182); 1070 path.moveTo(50, 182);
1089 path.lineTo(1215, 182); 1071 path.lineTo(1215, 182);
1090 path.lineTo(1215, 202); 1072 path.lineTo(1215, 202);
1091 path.quadTo(1214.99951f, 204.070572f, 1213.53552f, 205.535538f); 1073 path.quadTo(1214.99951f, 204.070572f, 1213.53552f, 205.535538f);
1092 path.quadTo(1212.07056f, 206.999496f, 1210, 207); 1074 path.quadTo(1212.07056f, 206.999496f, 1210, 207);
1093 path.lineTo(55, 207); 1075 path.lineTo(55, 207);
1094 path.quadTo(52.9294319f, 206.999496f, 51.4644661f, 205.535538f); 1076 path.quadTo(52.9294319f, 206.999496f, 51.4644661f, 205.535538f);
1095 path.quadTo(50.0004997f, 204.070572f, 50, 202); 1077 path.quadTo(50.0004997f, 204.070572f, 50, 202);
1096 path.lineTo(50, 182); 1078 path.lineTo(50, 182);
1097 path.close(); 1079 path.close();
1098 SkPath pathB; 1080 SkPath pathB;
1099 pathB.setFillType(SkPath::kInverseWinding_FillType); 1081 pathB.setFillType(SkPath::kInverseWinding_FillType);
1100 pathB.moveTo(50, 183); 1082 pathB.moveTo(50, 183);
1101 pathB.lineTo(1215, 183); 1083 pathB.lineTo(1215, 183);
1102 pathB.lineTo(1215, 202); 1084 pathB.lineTo(1215, 202);
1103 pathB.cubicTo(1215, 204.761429f, 1212.76147f, 207, 1210, 207); 1085 pathB.cubicTo(1215, 204.761429f, 1212.76147f, 207, 1210, 207);
1104 pathB.lineTo(55, 207); 1086 pathB.lineTo(55, 207);
1105 pathB.cubicTo(52.238575f, 207, 50, 204.761429f, 50, 202); 1087 pathB.cubicTo(52.238575f, 207, 50, 204.761429f, 50, 202);
1106 pathB.lineTo(50, 183); 1088 pathB.lineTo(50, 183);
1107 pathB.close(); 1089 pathB.close();
1090 // FIXME: this generates quads and cubics that are (correctly) not coinciden t unlike the old code
1091 // however, somewhere the angles are sorted incorrectly and the winding is c omputed to be -1/-2
1092 // but I can't find the error
1108 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1093 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1109 } 1094 }
1110 1095
1111 /* cubic ends just above opp line */
1112 static void skpwww_fj_p_com_22(skiatest::Reporter* reporter, const char* filenam e) { 1096 static void skpwww_fj_p_com_22(skiatest::Reporter* reporter, const char* filenam e) {
1113 SkPath path; 1097 SkPath path;
1114 path.setFillType(SkPath::kEvenOdd_FillType); 1098 path.setFillType(SkPath::kEvenOdd_FillType);
1115 path.moveTo(172, 201); 1099 path.moveTo(172, 201);
1116 path.lineTo(172, 202); 1100 path.lineTo(172, 202);
1117 path.lineTo(220, 202); 1101 path.lineTo(220, 202);
1118 path.cubicTo(221.65686f, 202, 223, 200.65686f, 223, 199); 1102 path.cubicTo(221.65686f, 202, 223, 200.65686f, 223, 199);
1119 path.cubicTo(223, 200.104568f, 221.65686f, 201, 220, 201); 1103 path.cubicTo(223, 200.104568f, 221.65686f, 201, 220, 201);
1120 path.lineTo(172, 201); 1104 path.lineTo(172, 201);
1121 path.close(); 1105 path.close();
1122 SkPath pathB; 1106 SkPath pathB;
1123 pathB.setFillType(SkPath::kWinding_FillType); 1107 pathB.setFillType(SkPath::kWinding_FillType);
1124 pathB.moveTo(161, 202); 1108 pathB.moveTo(161, 202);
1125 pathB.lineTo(161, 199); 1109 pathB.lineTo(161, 199);
1126 pathB.lineTo(223, 199.000015f); 1110 pathB.lineTo(223, 199.000015f);
1127 pathB.lineTo(223, 202); 1111 pathB.lineTo(223, 202);
1128 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1112 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1129 } 1113 }
1130 1114
1131 // pair of lines are not quite coincident, so sorting line/cubic fails (i think)
1132 static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter, const char* filename) { 1115 static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter, const char* filename) {
1133 SkPath path; 1116 SkPath path;
1134 path.setFillType(SkPath::kEvenOdd_FillType); 1117 path.setFillType(SkPath::kEvenOdd_FillType);
1135 path.moveTo(806, 57); 1118 path.moveTo(806, 57);
1136 path.cubicTo(806, 55.3431473f, 807.34314f, 54, 809, 54); 1119 path.cubicTo(806, 55.3431473f, 807.34314f, 54, 809, 54);
1137 path.lineTo(930, 54); 1120 path.lineTo(930, 54);
1138 path.cubicTo(931.65686f, 54, 933, 55.3431473f, 933, 57); 1121 path.cubicTo(931.65686f, 54, 933, 55.3431473f, 933, 57);
1139 path.lineTo(933, 91); 1122 path.lineTo(933, 91);
1140 path.cubicTo(933, 92.6568527f, 931.65686f, 94, 930, 94); 1123 path.cubicTo(933, 92.6568527f, 931.65686f, 94, 930, 94);
1141 path.lineTo(809, 94); 1124 path.lineTo(809, 94);
(...skipping 12 matching lines...) Expand all
1154 path.close(); 1137 path.close();
1155 SkPath pathB; 1138 SkPath pathB;
1156 pathB.setFillType(SkPath::kWinding_FillType); 1139 pathB.setFillType(SkPath::kWinding_FillType);
1157 pathB.moveTo(806, 54); 1140 pathB.moveTo(806, 54);
1158 pathB.lineTo(808, 56); 1141 pathB.lineTo(808, 56);
1159 pathB.lineTo(935.02002f, 56.0200005f); 1142 pathB.lineTo(935.02002f, 56.0200005f);
1160 pathB.lineTo(933, 54); 1143 pathB.lineTo(933, 54);
1161 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1144 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1162 } 1145 }
1163 1146
1164 // pair of curves have nearly the same initial tangent but are sorting by
1165 // that alone sorts them incorrectly. Need to detect that tangents are nearly
1166 // identical and not reliable by themselves
1167 static void skppptv_com_62(skiatest::Reporter* reporter, const char* filename) { 1147 static void skppptv_com_62(skiatest::Reporter* reporter, const char* filename) {
1168 SkPath path; 1148 SkPath path;
1169 path.setFillType(SkPath::kEvenOdd_FillType); 1149 path.setFillType(SkPath::kEvenOdd_FillType);
1170 path.moveTo(173, 5342); 1150 path.moveTo(173, 5342);
1171 path.quadTo(171.343536f, 5342.00049f, 170.17157f, 5343.17139f); 1151 path.quadTo(171.343536f, 5342.00049f, 170.17157f, 5343.17139f);
1172 path.quadTo(169.000397f, 5344.34375f, 169, 5346); 1152 path.quadTo(169.000397f, 5344.34375f, 169, 5346);
1173 path.lineTo(169, 5372); 1153 path.lineTo(169, 5372);
1174 path.lineTo(234, 5372); 1154 path.lineTo(234, 5372);
1175 path.lineTo(234, 5346); 1155 path.lineTo(234, 5346);
1176 path.quadTo(233.999603f, 5344.34375f, 232.82843f, 5343.17139f); 1156 path.quadTo(233.999603f, 5344.34375f, 232.82843f, 5343.17139f);
1177 path.quadTo(231.656464f, 5342.00049f, 230, 5342); 1157 path.quadTo(231.656464f, 5342.00049f, 230, 5342);
1178 path.lineTo(173, 5342); 1158 path.lineTo(173, 5342);
1179 path.close(); 1159 path.close();
1180 SkPath pathB; 1160 SkPath pathB;
1181 pathB.setFillType(SkPath::kInverseWinding_FillType); 1161 pathB.setFillType(SkPath::kInverseWinding_FillType);
1182 pathB.moveTo(173, 5342); 1162 pathB.moveTo(173, 5342);
1183 pathB.lineTo(230, 5342); 1163 pathB.lineTo(230, 5342);
1184 pathB.cubicTo(231.65686f, 5342, 233, 5343.79102f, 233, 5346); 1164 pathB.cubicTo(231.65686f, 5342, 233, 5343.79102f, 233, 5346);
1185 pathB.lineTo(233, 5372); 1165 pathB.lineTo(233, 5372);
1186 pathB.lineTo(169, 5372); 1166 pathB.lineTo(169, 5372);
1187 pathB.lineTo(169, 5346); 1167 pathB.lineTo(169, 5346);
1188 pathB.cubicTo(169, 5343.79102f, 170.790863f, 5342, 173, 5342); 1168 pathB.cubicTo(169, 5343.79102f, 170.790863f, 5342, 173, 5342);
1189 pathB.close(); 1169 pathB.close();
1190 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1170 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1191 } 1171 }
1192 1172
1193 // nearly identical to lavoixdunord -- to not-quite-coincident lines
1194 static void skpwww_booking_com_68(skiatest::Reporter* reporter, const char* file name) { 1173 static void skpwww_booking_com_68(skiatest::Reporter* reporter, const char* file name) {
1195 SkPath path; 1174 SkPath path;
1196 path.setFillType(SkPath::kEvenOdd_FillType); 1175 path.setFillType(SkPath::kEvenOdd_FillType);
1197 path.moveTo(90, 187); 1176 path.moveTo(90, 187);
1198 path.cubicTo(90, 185.34314f, 91.3431473f, 184, 93, 184); 1177 path.cubicTo(90, 185.34314f, 91.3431473f, 184, 93, 184);
1199 path.lineTo(588, 184); 1178 path.lineTo(588, 184);
1200 path.cubicTo(589.65686f, 184, 591, 185.34314f, 591, 187); 1179 path.cubicTo(589.65686f, 184, 591, 185.34314f, 591, 187);
1201 path.lineTo(591, 218); 1180 path.lineTo(591, 218);
1202 path.cubicTo(591, 219.65686f, 589.65686f, 221, 588, 221); 1181 path.cubicTo(591, 219.65686f, 589.65686f, 221, 588, 221);
1203 path.lineTo(93, 221); 1182 path.lineTo(93, 221);
(...skipping 12 matching lines...) Expand all
1216 path.close(); 1195 path.close();
1217 SkPath pathB; 1196 SkPath pathB;
1218 pathB.setFillType(SkPath::kWinding_FillType); 1197 pathB.setFillType(SkPath::kWinding_FillType);
1219 pathB.moveTo(90, 184); 1198 pathB.moveTo(90, 184);
1220 pathB.lineTo(92, 186); 1199 pathB.lineTo(92, 186);
1221 pathB.lineTo(593.02002f, 186.020004f); 1200 pathB.lineTo(593.02002f, 186.020004f);
1222 pathB.lineTo(591, 184); 1201 pathB.lineTo(591, 184);
1223 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1202 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1224 } 1203 }
1225 1204
1226 // visually looks like lavoixdunord and www_booking_com
1227 static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter, const char* filename) { 1205 static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter, const char* filename) {
1228 SkPath path; 1206 SkPath path;
1229 path.setFillType(SkPath::kEvenOdd_FillType); 1207 path.setFillType(SkPath::kEvenOdd_FillType);
1230 path.moveTo(635, 1788); 1208 path.moveTo(635, 1788);
1231 path.cubicTo(635, 1786.34314f, 636.34314f, 1785, 638, 1785); 1209 path.cubicTo(635, 1786.34314f, 636.34314f, 1785, 638, 1785);
1232 path.lineTo(832, 1785); 1210 path.lineTo(832, 1785);
1233 path.cubicTo(833.65686f, 1785, 835, 1786.34314f, 835, 1788); 1211 path.cubicTo(833.65686f, 1785, 835, 1786.34314f, 835, 1788);
1234 path.lineTo(835, 1812); 1212 path.lineTo(835, 1812);
1235 path.cubicTo(835, 1813.65686f, 833.65686f, 1815, 832, 1815); 1213 path.cubicTo(835, 1813.65686f, 833.65686f, 1815, 832, 1815);
1236 path.lineTo(638, 1815); 1214 path.lineTo(638, 1815);
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
1576 pathB.lineTo(320, 165); 1554 pathB.lineTo(320, 165);
1577 pathB.cubicTo(321.65686f, 165, 323, 166.34314f, 323, 168); 1555 pathB.cubicTo(321.65686f, 165, 323, 166.34314f, 323, 168);
1578 pathB.lineTo(323, 192); 1556 pathB.lineTo(323, 192);
1579 pathB.lineTo(-317, 192); 1557 pathB.lineTo(-317, 192);
1580 pathB.lineTo(-317, 168); 1558 pathB.lineTo(-317, 168);
1581 pathB.cubicTo(-317, 166.34314f, -315.65686f, 165, -314, 165); 1559 pathB.cubicTo(-317, 166.34314f, -315.65686f, 165, -314, 165);
1582 pathB.close(); 1560 pathB.close();
1583 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1561 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1584 } 1562 }
1585 1563
1586 /* Three edges are partially coincident. Only one of the three knows about the o ther two.
1587 Subsequently, when the angle loop is created, it misses one of the edges.
1588 After coincident edges are processed, probably need a check-and-correct that makes sure the
1589 coincidences are all self-consistent.
1590 */
1591 static void skpelpais_com_18(skiatest::Reporter* reporter, const char* filename) { 1564 static void skpelpais_com_18(skiatest::Reporter* reporter, const char* filename) {
1592 SkPath path; 1565 SkPath path;
1593 path.setFillType(SkPath::kEvenOdd_FillType); 1566 path.setFillType(SkPath::kEvenOdd_FillType);
1594 path.moveTo(183, 8507); 1567 path.moveTo(183, 8507);
1595 path.lineTo(552, 8506.99023f); 1568 path.lineTo(552, 8506.99023f);
1596 path.lineTo(552, 8508); 1569 path.lineTo(552, 8508);
1597 path.lineTo(183, 8508); 1570 path.lineTo(183, 8508);
1598 path.lineTo(183, 8507); 1571 path.lineTo(183, 8507);
1599 path.close(); 1572 path.close();
1600 SkPath pathB; 1573 SkPath pathB;
1601 pathB.setFillType(SkPath::kWinding_FillType); 1574 pathB.setFillType(SkPath::kWinding_FillType);
1602 pathB.moveTo(183, 8508); 1575 pathB.moveTo(183, 8508);
1603 pathB.lineTo(183, 8506.99023f); 1576 pathB.lineTo(183, 8506.99023f);
1604 pathB.lineTo(552, 8507); 1577 pathB.lineTo(552, 8507);
1605 pathB.lineTo(552, 8508); 1578 pathB.lineTo(552, 8508);
1606 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1579 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1607 } 1580 }
1608 1581
1609 /* this generates a pair of lines that are essentially coincident; but the next line at a right
1610 angle is not treated as if it intersects at the same point.
1611 There are several of options:
1612 move the intersection of the right angle line to the coincident point (shou ld 'near' do this?
1613 construct another coincident pair from the right angle line to the coincide nt point
1614 treat the intersection as simple and not coincident
1615 */
1616 static void skpnamecheap_com_405(skiatest::Reporter* reporter, const char* filen ame) { 1582 static void skpnamecheap_com_405(skiatest::Reporter* reporter, const char* filen ame) {
1617 SkPath path; 1583 SkPath path;
1618 path.setFillType(SkPath::kEvenOdd_FillType); 1584 path.setFillType(SkPath::kEvenOdd_FillType);
1619 path.moveTo(140, 1000); 1585 path.moveTo(140, 1000);
1620 path.lineTo(140, 842); 1586 path.lineTo(140, 842);
1621 path.lineTo(141, 842); 1587 path.lineTo(141, 842);
1622 path.lineTo(141.14502f, 1000); 1588 path.lineTo(141.14502f, 1000);
1623 path.lineTo(140, 1000); 1589 path.lineTo(140, 1000);
1624 path.close(); 1590 path.close();
1625 SkPath pathB; 1591 SkPath pathB;
1626 pathB.setFillType(SkPath::kWinding_FillType); 1592 pathB.setFillType(SkPath::kWinding_FillType);
1627 pathB.moveTo(140, 842); 1593 pathB.moveTo(140, 842);
1628 pathB.lineTo(141.008835f, 837.9646f); 1594 pathB.lineTo(141.008835f, 837.9646f);
1629 pathB.lineTo(141.235291f, 1109.05884f); 1595 pathB.lineTo(141.235291f, 1109.05884f);
1630 pathB.lineTo(140, 1114); 1596 pathB.lineTo(140, 1114);
1631 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1597 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1632 } 1598 }
1633 1599
1634 // fails on angle insert -- haven't investigated yet
1635 static void skpwww_alrakoba_net_62(skiatest::Reporter* reporter, const char* fil ename) { 1600 static void skpwww_alrakoba_net_62(skiatest::Reporter* reporter, const char* fil ename) {
1636 SkPath path; 1601 SkPath path;
1637 path.setFillType(SkPath::kEvenOdd_FillType); 1602 path.setFillType(SkPath::kEvenOdd_FillType);
1638 path.moveTo(134.34314f, 9802.34277f); 1603 path.moveTo(134.34314f, 9802.34277f);
1639 path.quadTo(132, 9804.68652f, 132, 9808); 1604 path.quadTo(132, 9804.68652f, 132, 9808);
1640 path.lineTo(132, 9822); 1605 path.lineTo(132, 9822);
1641 path.quadTo(132, 9825.31348f, 134.34314f, 9827.65723f); 1606 path.quadTo(132, 9825.31348f, 134.34314f, 9827.65723f);
1642 path.quadTo(136.686295f, 9830, 140, 9830); 1607 path.quadTo(136.686295f, 9830, 140, 9830);
1643 path.lineTo(140.028473f, 9830); 1608 path.lineTo(140.028473f, 9830);
1644 path.lineTo(139.877213f, 9828.90723f); 1609 path.lineTo(139.877213f, 9828.90723f);
1645 path.quadTo(137.692032f, 9828.5332f, 136.050247f, 9826.65723f); 1610 path.quadTo(137.692032f, 9828.5332f, 136.050247f, 9826.65723f);
1646 path.quadTo(134, 9824.31348f, 134, 9821); 1611 path.quadTo(134, 9824.31348f, 134, 9821);
1647 path.lineTo(134, 9809); 1612 path.lineTo(134, 9809);
1648 path.quadTo(134, 9806.10059f, 136.050247f, 9804.0498f); 1613 path.quadTo(134, 9806.10059f, 136.050247f, 9804.0498f);
1649 path.lineTo(134.34314f, 9802.34277f); 1614 path.lineTo(134.34314f, 9802.34277f);
1650 path.close(); 1615 path.close();
1651 SkPath pathB; 1616 SkPath pathB;
1652 pathB.setFillType(SkPath::kWinding_FillType); 1617 pathB.setFillType(SkPath::kWinding_FillType);
1653 pathB.moveTo(132, 9800); 1618 pathB.moveTo(132, 9800);
1654 pathB.lineTo(135.962357f, 9800); 1619 pathB.lineTo(135.962357f, 9800);
1655 pathB.lineTo(140, 9830); 1620 pathB.lineTo(140, 9830);
1656 pathB.lineTo(132, 9830); 1621 pathB.lineTo(132, 9830);
1657 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1622 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1658 } 1623 }
1659 1624
1660 /* asserts in alignSpanState looks like a coincident related bug */
1661 static void skpwww_cityads_ru_249(skiatest::Reporter* reporter, const char* file name) { 1625 static void skpwww_cityads_ru_249(skiatest::Reporter* reporter, const char* file name) {
1662 SkPath path; 1626 SkPath path;
1663 path.setFillType(SkPath::kEvenOdd_FillType); 1627 path.setFillType(SkPath::kEvenOdd_FillType);
1664 path.moveTo(817.464478f, 11.4644661f); 1628 path.moveTo(817.464478f, 11.4644661f);
1665 path.quadTo(818.928955f, 10, 821, 10); 1629 path.quadTo(818.928955f, 10, 821, 10);
1666 path.lineTo(998, 10); 1630 path.lineTo(998, 10);
1667 path.quadTo(999.082947f, 10, 1000, 10.4003992f); 1631 path.quadTo(999.082947f, 10, 1000, 10.4003992f);
1668 path.lineTo(1000, 13.3527431f); 1632 path.lineTo(1000, 13.3527431f);
1669 path.quadTo(999.917603f, 13.2607508f, 999.82843f, 13.1715727f); 1633 path.quadTo(999.917603f, 13.2607508f, 999.82843f, 13.1715727f);
1670 path.quadTo(998.65686f, 12, 997, 12); 1634 path.quadTo(998.65686f, 12, 997, 12);
(...skipping 16 matching lines...) Expand all
1687 path.close(); 1651 path.close();
1688 SkPath pathB; 1652 SkPath pathB;
1689 pathB.setFillType(SkPath::kWinding_FillType); 1653 pathB.setFillType(SkPath::kWinding_FillType);
1690 pathB.moveTo(1003, 10); 1654 pathB.moveTo(1003, 10);
1691 pathB.lineTo(1000, 13); 1655 pathB.lineTo(1000, 13);
1692 pathB.lineTo(999.969971f, 37.0299988f); 1656 pathB.lineTo(999.969971f, 37.0299988f);
1693 pathB.lineTo(1003, 34); 1657 pathB.lineTo(1003, 34);
1694 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1658 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1695 } 1659 }
1696 1660
1697 // fails on angle insert
1698 static void skpwww_dealnews_com_315(skiatest::Reporter* reporter, const char* fi lename) { 1661 static void skpwww_dealnews_com_315(skiatest::Reporter* reporter, const char* fi lename) {
1699 SkPath path; 1662 SkPath path;
1700 path.setFillType(SkPath::kEvenOdd_FillType); 1663 path.setFillType(SkPath::kEvenOdd_FillType);
1701 path.moveTo(966.464478f, 4261.46436f); 1664 path.moveTo(966.464478f, 4261.46436f);
1702 path.quadTo(965, 4262.92871f, 965, 4265); 1665 path.quadTo(965, 4262.92871f, 965, 4265);
1703 path.lineTo(965, 4276); 1666 path.lineTo(965, 4276);
1704 path.quadTo(965, 4278.07129f, 966.464478f, 4279.53564f); 1667 path.quadTo(965, 4278.07129f, 966.464478f, 4279.53564f);
1705 path.quadTo(967.928955f, 4281, 970, 4281); 1668 path.quadTo(967.928955f, 4281, 970, 4281);
1706 path.lineTo(970.020325f, 4281); 1669 path.lineTo(970.020325f, 4281);
1707 path.lineTo(969.887512f, 4279.81641f); 1670 path.lineTo(969.887512f, 4279.81641f);
1708 path.quadTo(968.928284f, 4279.48145f, 968.17157f, 4278.53564f); 1671 path.quadTo(968.928284f, 4279.48145f, 968.17157f, 4278.53564f);
1709 path.quadTo(967, 4277.07129f, 967, 4275); 1672 path.quadTo(967, 4277.07129f, 967, 4275);
1710 path.lineTo(967, 4266); 1673 path.lineTo(967, 4266);
1711 path.quadTo(967, 4264.44287f, 968.035217f, 4263.31396f); 1674 path.quadTo(967, 4264.44287f, 968.035217f, 4263.31396f);
1712 path.lineTo(968, 4263); 1675 path.lineTo(968, 4263);
1713 path.lineTo(966.464478f, 4261.46436f); 1676 path.lineTo(966.464478f, 4261.46436f);
1714 path.close(); 1677 path.close();
1715 SkPath pathB; 1678 SkPath pathB;
1716 pathB.setFillType(SkPath::kWinding_FillType); 1679 pathB.setFillType(SkPath::kWinding_FillType);
1717 pathB.moveTo(965, 4260); 1680 pathB.moveTo(965, 4260);
1718 pathB.lineTo(967.716675f, 4260); 1681 pathB.lineTo(967.716675f, 4260);
1719 pathB.lineTo(970, 4281); 1682 pathB.lineTo(970, 4281);
1720 pathB.lineTo(965, 4281); 1683 pathB.lineTo(965, 4281);
1721 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1684 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1722 } 1685 }
1723 1686
1724 // fails in intersections insert
1725 static void skpwww_inmotionhosting_com_9(skiatest::Reporter* reporter, const cha r* filename) { 1687 static void skpwww_inmotionhosting_com_9(skiatest::Reporter* reporter, const cha r* filename) {
1726 SkPath path; 1688 SkPath path;
1727 path.setFillType(SkPath::kEvenOdd_FillType); 1689 path.setFillType(SkPath::kEvenOdd_FillType);
1728 path.moveTo(991.633911f, 1839); 1690 path.moveTo(991.633911f, 1839);
1729 path.lineTo(964.265015f, 1839); 1691 path.lineTo(964.265015f, 1839);
1730 path.lineTo(963.734985f, 1893.73242f); 1692 path.lineTo(963.734985f, 1893.73242f);
1731 path.lineTo(991.3703f, 1894); 1693 path.lineTo(991.3703f, 1894);
1732 path.lineTo(1018.23492f, 1894); 1694 path.lineTo(1018.23492f, 1894);
1733 path.lineTo(1018.76501f, 1839.2627f); 1695 path.lineTo(1018.76501f, 1839.2627f);
1734 path.lineTo(991.638184f, 1839); 1696 path.lineTo(991.638184f, 1839);
(...skipping 24 matching lines...) Expand all
1759 path.close(); 1721 path.close();
1760 SkPath pathB; 1722 SkPath pathB;
1761 pathB.setFillType(SkPath::kWinding_FillType); 1723 pathB.setFillType(SkPath::kWinding_FillType);
1762 pathB.moveTo(1131, 1163); 1724 pathB.moveTo(1131, 1163);
1763 pathB.lineTo(-43515.8555f, -177415.594f); 1725 pathB.lineTo(-43515.8555f, -177415.594f);
1764 pathB.lineTo(1129.76465f, 1173.05884f); 1726 pathB.lineTo(1129.76465f, 1173.05884f);
1765 pathB.lineTo(1131, 1178); 1727 pathB.lineTo(1131, 1178);
1766 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1728 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1767 } 1729 }
1768 1730
1769 // /SkOpContour.cpp:278: failed assertion "!approximately_negative(oEndT - oStar tT)
1770 static void skpwww_hairjobsearch_com_31(skiatest::Reporter* reporter, const char * filename) { 1731 static void skpwww_hairjobsearch_com_31(skiatest::Reporter* reporter, const char * filename) {
1771 SkPath path; 1732 SkPath path;
1772 path.setFillType(SkPath::kEvenOdd_FillType); 1733 path.setFillType(SkPath::kEvenOdd_FillType);
1773 path.moveTo(143.292892f, 0.707106769f); 1734 path.moveTo(143.292892f, 0.707106769f);
1774 path.quadTo(143, 0.414213538f, 143, 0); 1735 path.quadTo(143, 0.414213538f, 143, 0);
1775 path.lineTo(1123, 0); 1736 path.lineTo(1123, 0);
1776 path.quadTo(1123, 0.414213538f, 1122.70715f, 0.707106769f); 1737 path.quadTo(1123, 0.414213538f, 1122.70715f, 0.707106769f);
1777 path.quadTo(1122.41418f, 1, 1122, 1); 1738 path.quadTo(1122.41418f, 1, 1122, 1);
1778 path.lineTo(144, 1); 1739 path.lineTo(144, 1);
1779 path.quadTo(143.585785f, 1, 143.292892f, 0.707106769f); 1740 path.quadTo(143.585785f, 1, 143.292892f, 0.707106769f);
1780 path.close(); 1741 path.close();
1781 SkPath pathB; 1742 SkPath pathB;
1782 pathB.setFillType(SkPath::kWinding_FillType); 1743 pathB.setFillType(SkPath::kWinding_FillType);
1783 pathB.moveTo(143, 1); 1744 pathB.moveTo(143, 1);
1784 pathB.lineTo(144, 0); 1745 pathB.lineTo(144, 0);
1785 pathB.lineTo(1122, 0); 1746 pathB.lineTo(1122, 0);
1786 pathB.lineTo(1123, 1); 1747 pathB.lineTo(1123, 1);
1787 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1748 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1788 } 1749 }
1789 1750
1790 // SkOpSegment::checkSmallCoincidence; line 1958 SkASSERT(span.fWindValue);
1791 static void skpwww_heartiste_wordpress_com_86(skiatest::Reporter* reporter, cons t char* filename) { 1751 static void skpwww_heartiste_wordpress_com_86(skiatest::Reporter* reporter, cons t char* filename) {
1792 SkPath path; 1752 SkPath path;
1793 path.setFillType(SkPath::kEvenOdd_FillType); 1753 path.setFillType(SkPath::kEvenOdd_FillType);
1794 path.moveTo(741, 9432); 1754 path.moveTo(741, 9432);
1795 path.lineTo(761, 9431.99023f); 1755 path.lineTo(761, 9431.99023f);
1796 path.lineTo(761, 9433); 1756 path.lineTo(761, 9433);
1797 path.lineTo(741, 9433); 1757 path.lineTo(741, 9433);
1798 path.lineTo(741, 9432); 1758 path.lineTo(741, 9432);
1799 path.close(); 1759 path.close();
1800 SkPath pathB; 1760 SkPath pathB;
(...skipping 17 matching lines...) Expand all
1818 SkPath pathB; 1778 SkPath pathB;
1819 pathB.setFillType(SkPath::kWinding_FillType); 1779 pathB.setFillType(SkPath::kWinding_FillType);
1820 pathB.moveTo(165, 343.000031f); 1780 pathB.moveTo(165, 343.000031f);
1821 pathB.lineTo(1000, 343.000031f); 1781 pathB.lineTo(1000, 343.000031f);
1822 pathB.lineTo(1000, 364.869904f); 1782 pathB.lineTo(1000, 364.869904f);
1823 pathB.lineTo(165, 364.869904f); 1783 pathB.lineTo(165, 364.869904f);
1824 pathB.close(); 1784 pathB.close();
1825 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1785 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1826 } 1786 }
1827 1787
1828 // SkOpSegment::checkSmallCoincidence; line 1958 SkASSERT(span.fWindValue);
1829 static void skpwww_320kbps_net_2231(skiatest::Reporter* reporter, const char* fi lename) { 1788 static void skpwww_320kbps_net_2231(skiatest::Reporter* reporter, const char* fi lename) {
1830 SkPath path; 1789 SkPath path;
1831 path.setFillType(SkPath::kEvenOdd_FillType); 1790 path.setFillType(SkPath::kEvenOdd_FillType);
1832 path.moveTo(838, 9125); 1791 path.moveTo(838, 9125);
1833 path.lineTo(862, 9124.99023f); 1792 path.lineTo(862, 9124.99023f);
1834 path.lineTo(862, 9126); 1793 path.lineTo(862, 9126);
1835 path.lineTo(838, 9126); 1794 path.lineTo(838, 9126);
1836 path.lineTo(838, 9125); 1795 path.lineTo(838, 9125);
1837 path.close(); 1796 path.close();
1838 SkPath pathB; 1797 SkPath pathB;
1839 pathB.setFillType(SkPath::kWinding_FillType); 1798 pathB.setFillType(SkPath::kWinding_FillType);
1840 pathB.moveTo(838, 9126); 1799 pathB.moveTo(838, 9126);
1841 pathB.lineTo(838, 9124.99023f); 1800 pathB.lineTo(838, 9124.99023f);
1842 pathB.lineTo(862, 9125); 1801 pathB.lineTo(862, 9125);
1843 pathB.lineTo(862, 9126); 1802 pathB.lineTo(862, 9126);
1844 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1803 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1845 } 1804 }
1846 1805
1847 // debugValidateLoop loop sum fails
1848 static void skpwww_exystence_net_61(skiatest::Reporter* reporter, const char* fi lename) { 1806 static void skpwww_exystence_net_61(skiatest::Reporter* reporter, const char* fi lename) {
1849 SkPath path; 1807 SkPath path;
1850 path.setFillType(SkPath::kEvenOdd_FillType); 1808 path.setFillType(SkPath::kEvenOdd_FillType);
1851 path.moveTo(143, 9075); 1809 path.moveTo(143, 9075);
1852 path.lineTo(316, 9075); 1810 path.lineTo(316, 9075);
1853 path.lineTo(316, 9073.99023f); 1811 path.lineTo(316, 9073.99023f);
1854 path.lineTo(143, 9074); 1812 path.lineTo(143, 9074);
1855 path.lineTo(143, 9075); 1813 path.lineTo(143, 9075);
1856 path.close(); 1814 path.close();
1857 SkPath pathB; 1815 SkPath pathB;
1858 pathB.setFillType(SkPath::kWinding_FillType); 1816 pathB.setFillType(SkPath::kWinding_FillType);
1859 pathB.moveTo(143, 9075); 1817 pathB.moveTo(143, 9075);
1860 pathB.lineTo(143, 9073.99023f); 1818 pathB.lineTo(143, 9073.99023f);
1861 pathB.lineTo(316, 9074); 1819 pathB.lineTo(316, 9074);
1862 pathB.lineTo(316, 9075); 1820 pathB.lineTo(316, 9075);
1863 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1821 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1864 } 1822 }
1865 1823
1866 // debugValidateLoop loop sum fails
1867 static void skpwww_trashness_com_36(skiatest::Reporter* reporter, const char* fi lename) { 1824 static void skpwww_trashness_com_36(skiatest::Reporter* reporter, const char* fi lename) {
1868 SkPath path; 1825 SkPath path;
1869 path.setFillType(SkPath::kEvenOdd_FillType); 1826 path.setFillType(SkPath::kEvenOdd_FillType);
1870 path.moveTo(541.5f, 4835.99512f); 1827 path.moveTo(541.5f, 4835.99512f);
1871 path.lineTo(91.5f, 4836); 1828 path.lineTo(91.5f, 4836);
1872 path.lineTo(91.5f, 4836.5f); 1829 path.lineTo(91.5f, 4836.5f);
1873 path.lineTo(541.5f, 4836.5f); 1830 path.lineTo(541.5f, 4836.5f);
1874 path.lineTo(541.5f, 4835.99512f); 1831 path.lineTo(541.5f, 4835.99512f);
1875 path.close(); 1832 path.close();
1876 SkPath pathB; 1833 SkPath pathB;
1877 pathB.setFillType(SkPath::kWinding_FillType); 1834 pathB.setFillType(SkPath::kWinding_FillType);
1878 pathB.moveTo(91.5f, 4836.5f); 1835 pathB.moveTo(91.5f, 4836.5f);
1879 pathB.lineTo(91.5f, 4835.99512f); 1836 pathB.lineTo(91.5f, 4835.99512f);
1880 pathB.lineTo(541.5f, 4836); 1837 pathB.lineTo(541.5f, 4836);
1881 pathB.lineTo(541.5f, 4836.5f); 1838 pathB.lineTo(541.5f, 4836.5f);
1882 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1839 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1883 } 1840 }
1884 1841
1885 // SkIntersections::lineVertical fUsed >= fMax
1886 static void skpwww_getgold_jp_731(skiatest::Reporter* reporter, const char* file name) { 1842 static void skpwww_getgold_jp_731(skiatest::Reporter* reporter, const char* file name) {
1887 SkPath path; 1843 SkPath path;
1888 path.setFillType(SkPath::kEvenOdd_FillType); 1844 path.setFillType(SkPath::kEvenOdd_FillType);
1889 path.moveTo(284.878693f, 10134.8789f); 1845 path.moveTo(284.878693f, 10134.8789f);
1890 path.quadTo(284, 10135.7578f, 284, 10137); 1846 path.quadTo(284, 10135.7578f, 284, 10137);
1891 path.lineTo(284, 10216); 1847 path.lineTo(284, 10216);
1892 path.quadTo(284, 10217.2422f, 284.878693f, 10218.1211f); 1848 path.quadTo(284, 10217.2422f, 284.878693f, 10218.1211f);
1893 path.quadTo(285.125122f, 10218.3672f, 285.40213f, 10218.5459f); 1849 path.quadTo(285.125122f, 10218.3672f, 285.40213f, 10218.5459f);
1894 path.lineTo(286, 10138); 1850 path.lineTo(286, 10138);
1895 path.lineTo(286, 10136); 1851 path.lineTo(286, 10136);
1896 path.lineTo(284.878693f, 10134.8789f); 1852 path.lineTo(284.878693f, 10134.8789f);
1897 path.close(); 1853 path.close();
1898 SkPath pathB; 1854 SkPath pathB;
1899 pathB.setFillType(SkPath::kWinding_FillType); 1855 pathB.setFillType(SkPath::kWinding_FillType);
1900 pathB.moveTo(284, 10134); 1856 pathB.moveTo(284, 10134);
1901 pathB.lineTo(286.05957f, 10129.8809f); 1857 pathB.lineTo(286.05957f, 10129.8809f);
1902 pathB.lineTo(285.399994f, 10216.2002f); 1858 pathB.lineTo(285.399994f, 10216.2002f);
1903 pathB.lineTo(284, 10219); 1859 pathB.lineTo(284, 10219);
1904 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1860 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1905 } 1861 }
1906 1862
1907 // SkOpContour::calcPartialCoincidentWinding SkASSERT(!approximately_negative(en dT - startT));
1908 static void skpwww_maturesupertube_com_21(skiatest::Reporter* reporter, const ch ar* filename) { 1863 static void skpwww_maturesupertube_com_21(skiatest::Reporter* reporter, const ch ar* filename) {
1909 SkPath path; 1864 SkPath path;
1910 path.setFillType(SkPath::kEvenOdd_FillType); 1865 path.setFillType(SkPath::kEvenOdd_FillType);
1911 path.moveTo(3.17157292f, 11831.1719f); 1866 path.moveTo(3.17157292f, 11831.1719f);
1912 path.quadTo(4.34314585f, 11830, 6, 11830); 1867 path.quadTo(4.34314585f, 11830, 6, 11830);
1913 path.lineTo(1259, 11830); 1868 path.lineTo(1259, 11830);
1914 path.quadTo(1260.65686f, 11830, 1261.82837f, 11831.1719f); 1869 path.quadTo(1260.65686f, 11830, 1261.82837f, 11831.1719f);
1915 path.quadTo(1263, 11832.3428f, 1263, 11834); 1870 path.quadTo(1263, 11832.3428f, 1263, 11834);
1916 path.lineTo(1263, 11848); 1871 path.lineTo(1263, 11848);
1917 path.quadTo(1263, 11849.6572f, 1261.82837f, 11850.8281f); 1872 path.quadTo(1263, 11849.6572f, 1261.82837f, 11850.8281f);
(...skipping 20 matching lines...) Expand all
1938 path.close(); 1893 path.close();
1939 SkPath pathB; 1894 SkPath pathB;
1940 pathB.setFillType(SkPath::kWinding_FillType); 1895 pathB.setFillType(SkPath::kWinding_FillType);
1941 pathB.moveTo(2, 11830); 1896 pathB.moveTo(2, 11830);
1942 pathB.lineTo(4.5f, 11832.5f); 1897 pathB.lineTo(4.5f, 11832.5f);
1943 pathB.lineTo(1260.5f, 11832.5f); 1898 pathB.lineTo(1260.5f, 11832.5f);
1944 pathB.lineTo(1263, 11830); 1899 pathB.lineTo(1263, 11830);
1945 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1900 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1946 } 1901 }
1947 1902
1948 // can't find winding of remaining vertical edges
1949 static void skpwww_hubbyscook_com_22(skiatest::Reporter* reporter, const char* f ilename) { 1903 static void skpwww_hubbyscook_com_22(skiatest::Reporter* reporter, const char* f ilename) {
1950 SkPath path; 1904 SkPath path;
1951 path.setFillType(SkPath::kEvenOdd_FillType); 1905 path.setFillType(SkPath::kEvenOdd_FillType);
1952 path.moveTo(1000, 902.329346f); 1906 path.moveTo(1000, 902.329346f);
1953 path.quadTo(998, 905.250427f, 998, 909); 1907 path.quadTo(998, 905.250427f, 998, 909);
1954 path.lineTo(998, 910); 1908 path.lineTo(998, 910);
1955 path.quadTo(998, 913.749573f, 1000, 916.670654f); 1909 path.quadTo(998, 913.749573f, 1000, 916.670654f);
1956 path.lineTo(1000, 902.329346f); 1910 path.lineTo(1000, 902.329346f);
1957 path.close(); 1911 path.close();
1958 SkPath pathB; 1912 SkPath pathB;
(...skipping 27 matching lines...) Expand all
1986 SkPath pathB; 1940 SkPath pathB;
1987 pathB.setFillType(SkPath::kWinding_FillType); 1941 pathB.setFillType(SkPath::kWinding_FillType);
1988 pathB.moveTo(611, 0); 1942 pathB.moveTo(611, 0);
1989 pathB.lineTo(1084, 0); 1943 pathB.lineTo(1084, 0);
1990 pathB.lineTo(1084, 469); 1944 pathB.lineTo(1084, 469);
1991 pathB.lineTo(611, 469); 1945 pathB.lineTo(611, 469);
1992 pathB.close(); 1946 pathB.close();
1993 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 1947 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1994 } 1948 }
1995 1949
1996 // asserts in bridgeOp simple->isClosed()
1997 static void skpwww_phototransferapp_com_24(skiatest::Reporter* reporter, const c har* filename) { 1950 static void skpwww_phototransferapp_com_24(skiatest::Reporter* reporter, const c har* filename) {
1998 SkPath path; 1951 SkPath path;
1999 path.setFillType(SkPath::kEvenOdd_FillType); 1952 path.setFillType(SkPath::kEvenOdd_FillType);
2000 path.moveTo(85.6091843f, 5.92893219f); 1953 path.moveTo(85.6091843f, 5.92893219f);
2001 path.quadTo(89.6041641f, 3, 93.7462997f, 3); 1954 path.quadTo(89.6041641f, 3, 93.7462997f, 3);
2002 path.lineTo(1212.74634f, 3); 1955 path.lineTo(1212.74634f, 3);
2003 path.quadTo(1216.88843f, 3, 1218.75134f, 5.92893219f); 1956 path.quadTo(1216.88843f, 3, 1218.75134f, 5.92893219f);
2004 path.quadTo(1220.61414f, 8.85775471f, 1219.10669f, 12.9996767f); 1957 path.quadTo(1220.61414f, 8.85775471f, 1219.10669f, 12.9996767f);
2005 path.quadTo(1220.46338f, 9.27196693f, 1218.4939f, 6.63603878f); 1958 path.quadTo(1220.46338f, 9.27196693f, 1218.4939f, 6.63603878f);
2006 path.quadTo(1216.52441f, 4, 1212.38232f, 4); 1959 path.quadTo(1216.52441f, 4, 1212.38232f, 4);
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
2127 path.quadTo(485.175385f, 182.861359f, 482.115265f, 186.082397f); 2080 path.quadTo(485.175385f, 182.861359f, 482.115265f, 186.082397f);
2128 SkPath pathB; 2081 SkPath pathB;
2129 pathB.setFillType(SkPath::kWinding_FillType); 2082 pathB.setFillType(SkPath::kWinding_FillType);
2130 pathB.moveTo(474.873322f, 199.293594f); 2083 pathB.moveTo(474.873322f, 199.293594f);
2131 pathB.quadTo(478.196686f, 186.890503f, 489.316986f, 180.4702f); 2084 pathB.quadTo(478.196686f, 186.890503f, 489.316986f, 180.4702f);
2132 pathB.lineTo(490.183014f, 179.9702f); 2085 pathB.lineTo(490.183014f, 179.9702f);
2133 pathB.quadTo(501.303345f, 173.549896f, 513.706421f, 176.873276f); 2086 pathB.quadTo(501.303345f, 173.549896f, 513.706421f, 176.873276f);
2134 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2087 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2135 } 2088 }
2136 2089
2137 // !simple->isClosed()
2138 static void skpwww_contextualnewsfeeds_com_346(skiatest::Reporter* reporter, con st char* filename) { 2090 static void skpwww_contextualnewsfeeds_com_346(skiatest::Reporter* reporter, con st char* filename) {
2139 SkPath path; 2091 SkPath path;
2140 path.setFillType(SkPath::kEvenOdd_FillType); 2092 path.setFillType(SkPath::kEvenOdd_FillType);
2141 path.moveTo(460.257355f, 1202.27808f); 2093 path.moveTo(460.257355f, 1202.27808f);
2142 path.lineTo(460.257355f, 1204.27808f); 2094 path.lineTo(460.257355f, 1204.27808f);
2143 path.quadTo(461.081207f, 1204.27808f, 461.665161f, 1203.69873f); 2095 path.quadTo(461.081207f, 1204.27808f, 461.665161f, 1203.69873f);
2144 path.lineTo(461.67157f, 1203.69238f); 2096 path.lineTo(461.67157f, 1203.69238f);
2145 path.lineTo(466.621307f, 1198.74268f); 2097 path.lineTo(466.621307f, 1198.74268f);
2146 path.quadTo(466.623993f, 1198.73999f, 466.626648f, 1198.7373f); 2098 path.quadTo(466.623993f, 1198.73999f, 466.626648f, 1198.7373f);
2147 path.quadTo(466.914185f, 1198.44604f, 466.914185f, 1198.03552f); 2099 path.quadTo(466.914185f, 1198.44604f, 466.914185f, 1198.03552f);
2148 path.quadTo(466.914215f, 1197.62122f, 466.621307f, 1197.32837f); 2100 path.quadTo(466.914215f, 1197.62122f, 466.621307f, 1197.32837f);
2149 path.lineTo(465.914215f, 1196.62122f); 2101 path.lineTo(465.914215f, 1196.62122f);
2150 path.lineTo(460.257355f, 1202.27808f); 2102 path.lineTo(460.257355f, 1202.27808f);
2151 path.close(); 2103 path.close();
2152 SkPath pathB; 2104 SkPath pathB;
2153 pathB.setFillType(SkPath::kWinding_FillType); 2105 pathB.setFillType(SkPath::kWinding_FillType);
2154 pathB.moveTo(460.257355f, 1205.10657f); 2106 pathB.moveTo(460.257355f, 1205.10657f);
2155 pathB.lineTo(458.828979f, 1203.67822f); 2107 pathB.lineTo(458.828979f, 1203.67822f);
2156 pathB.lineTo(465.914215f, 1196.62122f); 2108 pathB.lineTo(465.914215f, 1196.62122f);
2157 pathB.lineTo(467.32843f, 1198.03552f); 2109 pathB.lineTo(467.32843f, 1198.03552f);
2158 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2110 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2159 } 2111 }
2160 2112
2161 // line quad intersection SkIntersections::assert
2162 static void skpwww_pindosiya_com_99(skiatest::Reporter* reporter, const char* fi lename) { 2113 static void skpwww_pindosiya_com_99(skiatest::Reporter* reporter, const char* fi lename) {
2163 SkPath path; 2114 SkPath path;
2164 path.setFillType(SkPath::kEvenOdd_FillType); 2115 path.setFillType(SkPath::kEvenOdd_FillType);
2165 path.moveTo(899.17157f, 548.17157f); 2116 path.moveTo(899.17157f, 548.17157f);
2166 path.quadTo(898, 549.34314f, 898, 551); 2117 path.quadTo(898, 549.34314f, 898, 551);
2167 path.lineTo(898, 556); 2118 path.lineTo(898, 556);
2168 path.lineTo(899.027283f, 556); 2119 path.lineTo(899.027283f, 556);
2169 path.lineTo(900.02356f, 551.602844f); 2120 path.lineTo(900.02356f, 551.602844f);
2170 path.quadTo(900.06073f, 551.297058f, 900.156555f, 551.015747f); 2121 path.quadTo(900.06073f, 551.297058f, 900.156555f, 551.015747f);
2171 path.lineTo(900.5f, 549.5f); 2122 path.lineTo(900.5f, 549.5f);
2172 path.lineTo(899.17157f, 548.17157f); 2123 path.lineTo(899.17157f, 548.17157f);
2173 path.close(); 2124 path.close();
2174 SkPath pathB; 2125 SkPath pathB;
2175 pathB.setFillType(SkPath::kWinding_FillType); 2126 pathB.setFillType(SkPath::kWinding_FillType);
2176 pathB.moveTo(898, 547); 2127 pathB.moveTo(898, 547);
2177 pathB.lineTo(901.086914f, 547); 2128 pathB.lineTo(901.086914f, 547);
2178 pathB.lineTo(899, 556); 2129 pathB.lineTo(899, 556);
2179 pathB.lineTo(898, 556); 2130 pathB.lineTo(898, 556);
2180 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2131 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2181 } 2132 }
2182 2133
2183 // SkOpAngle::setSector SkASSERT(fSectorStart >= 0);
2184 static void skpwww_karnivool_com_au_11(skiatest::Reporter* reporter, const char* filename) { 2134 static void skpwww_karnivool_com_au_11(skiatest::Reporter* reporter, const char* filename) {
2185 SkPath path; 2135 SkPath path;
2186 path.setFillType(SkPath::kEvenOdd_FillType); 2136 path.setFillType(SkPath::kEvenOdd_FillType);
2187 path.moveTo(0, 1431); 2137 path.moveTo(0, 1431);
2188 path.lineTo(0, 775); 2138 path.lineTo(0, 775);
2189 path.lineTo(1265, 775); 2139 path.lineTo(1265, 775);
2190 path.lineTo(1265, 1431); 2140 path.lineTo(1265, 1431);
2191 path.lineTo(0, 1431); 2141 path.lineTo(0, 1431);
2192 path.close(); 2142 path.close();
2193 SkPath pathB; 2143 SkPath pathB;
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
2296 path.close(); 2246 path.close();
2297 SkPath pathB; 2247 SkPath pathB;
2298 pathB.setFillType(SkPath::kWinding_FillType); 2248 pathB.setFillType(SkPath::kWinding_FillType);
2299 pathB.moveTo(22.5f, 24527.5f); 2249 pathB.moveTo(22.5f, 24527.5f);
2300 pathB.lineTo(22.5f, 24527.248f); 2250 pathB.lineTo(22.5f, 24527.248f);
2301 pathB.lineTo(45, 24527.25f); 2251 pathB.lineTo(45, 24527.25f);
2302 pathB.lineTo(45, 24527.5f); 2252 pathB.lineTo(45, 24527.5f);
2303 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2253 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2304 } 2254 }
2305 2255
2306 // joinCoincidence / findT / assert
2307 static void skpwww_jessicaslens_wordpress_com_222(skiatest::Reporter* reporter, const char* filename) { 2256 static void skpwww_jessicaslens_wordpress_com_222(skiatest::Reporter* reporter, const char* filename) {
2308 SkPath path; 2257 SkPath path;
2309 path.setFillType(SkPath::kEvenOdd_FillType); 2258 path.setFillType(SkPath::kEvenOdd_FillType);
2310 path.moveTo(1000, 844.329346f); 2259 path.moveTo(1000, 844.329346f);
2311 path.quadTo(998, 847.250427f, 998, 851); 2260 path.quadTo(998, 847.250427f, 998, 851);
2312 path.lineTo(998, 852); 2261 path.lineTo(998, 852);
2313 path.quadTo(998, 855.749573f, 1000, 858.670654f); 2262 path.quadTo(998, 855.749573f, 1000, 858.670654f);
2314 path.lineTo(1000, 844.329346f); 2263 path.lineTo(1000, 844.329346f);
2315 path.close(); 2264 path.close();
2316 SkPath pathB; 2265 SkPath pathB;
2317 pathB.setFillType(SkPath::kWinding_FillType); 2266 pathB.setFillType(SkPath::kWinding_FillType);
2318 pathB.moveTo(998, 852); 2267 pathB.moveTo(998, 852);
2319 pathB.lineTo(998, 851); 2268 pathB.lineTo(998, 851);
2320 pathB.quadTo(998, 846.029419f, 1001.51471f, 842.514709f); 2269 pathB.quadTo(998, 846.029419f, 1001.51471f, 842.514709f);
2321 pathB.quadTo(1005.02942f, 839, 1010, 839); 2270 pathB.quadTo(1005.02942f, 839, 1010, 839);
2322 pathB.lineTo(1011, 839); 2271 pathB.lineTo(1011, 839);
2323 pathB.quadTo(1015.14215f, 839, 1018.07104f, 842.514709f); 2272 pathB.quadTo(1015.14215f, 839, 1018.07104f, 842.514709f);
2324 pathB.quadTo(1021, 846.029419f, 1021, 851); 2273 pathB.quadTo(1021, 846.029419f, 1021, 851);
2325 pathB.lineTo(1021, 852); 2274 pathB.lineTo(1021, 852);
2326 pathB.quadTo(1021, 856.142151f, 1018.07104f, 859.071045f); 2275 pathB.quadTo(1021, 856.142151f, 1018.07104f, 859.071045f);
2327 pathB.quadTo(1015.14215f, 862, 1011, 862); 2276 pathB.quadTo(1015.14215f, 862, 1011, 862);
2328 pathB.lineTo(1010, 862); 2277 pathB.lineTo(1010, 862);
2329 pathB.quadTo(1005.02942f, 862, 1001.51471f, 859.071045f); 2278 pathB.quadTo(1005.02942f, 862, 1001.51471f, 859.071045f);
2330 pathB.quadTo(998, 856.142151f, 998, 852); 2279 pathB.quadTo(998, 856.142151f, 998, 852);
2331 pathB.close(); 2280 pathB.close();
2332 testPathOp(reporter, path, pathB, kDifference_PathOp, filename); 2281 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2333 } 2282 }
2334 2283
2335 // joinCoincidence / findT / assert
2336 static void skpwww_simplysaru_com_40(skiatest::Reporter* reporter, const char* f ilename) { 2284 static void skpwww_simplysaru_com_40(skiatest::Reporter* reporter, const char* f ilename) {
2337 SkPath path; 2285 SkPath path;
2338 path.setFillType(SkPath::kEvenOdd_FillType); 2286 path.setFillType(SkPath::kEvenOdd_FillType);
2339 path.moveTo(1000, 866.329346f); 2287 path.moveTo(1000, 866.329346f);
2340 path.quadTo(998, 869.250427f, 998, 873); 2288 path.quadTo(998, 869.250427f, 998, 873);
2341 path.lineTo(998, 874); 2289 path.lineTo(998, 874);
2342 path.quadTo(998, 877.749573f, 1000, 880.670654f); 2290 path.quadTo(998, 877.749573f, 1000, 880.670654f);
2343 path.lineTo(1000, 866.329346f); 2291 path.lineTo(1000, 866.329346f);
2344 path.close(); 2292 path.close();
2345 SkPath pathB; 2293 SkPath pathB;
2346 pathB.setFillType(SkPath::kWinding_FillType); 2294 pathB.setFillType(SkPath::kWinding_FillType);
2347 pathB.moveTo(998, 874); 2295 pathB.moveTo(998, 874);
2348 pathB.lineTo(998, 873); 2296 pathB.lineTo(998, 873);
2349 pathB.quadTo(998, 868.029419f, 1001.51471f, 864.514709f); 2297 pathB.quadTo(998, 868.029419f, 1001.51471f, 864.514709f);
2350 pathB.quadTo(1005.02942f, 861, 1010, 861); 2298 pathB.quadTo(1005.02942f, 861, 1010, 861);
2351 pathB.lineTo(1011, 861); 2299 pathB.lineTo(1011, 861);
2352 pathB.quadTo(1015.14215f, 861, 1018.07104f, 864.514709f); 2300 pathB.quadTo(1015.14215f, 861, 1018.07104f, 864.514709f);
2353 pathB.quadTo(1021, 868.029419f, 1021, 873); 2301 pathB.quadTo(1021, 868.029419f, 1021, 873);
2354 pathB.lineTo(1021, 874); 2302 pathB.lineTo(1021, 874);
2355 pathB.quadTo(1021, 878.142151f, 1018.07104f, 881.071045f); 2303 pathB.quadTo(1021, 878.142151f, 1018.07104f, 881.071045f);
2356 pathB.quadTo(1015.14215f, 884, 1011, 884); 2304 pathB.quadTo(1015.14215f, 884, 1011, 884);
2357 pathB.lineTo(1010, 884); 2305 pathB.lineTo(1010, 884);
2358 pathB.quadTo(1005.02942f, 884, 1001.51471f, 881.071045f); 2306 pathB.quadTo(1005.02942f, 884, 1001.51471f, 881.071045f);
2359 pathB.quadTo(998, 878.142151f, 998, 874); 2307 pathB.quadTo(998, 878.142151f, 998, 874);
2360 pathB.close(); 2308 pathB.close();
2361 testPathOp(reporter, path, pathB, kDifference_PathOp, filename); 2309 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2362 } 2310 }
2363 2311
2364 // cubic-cubic intersection reduce checkLinear assert
2365 static void skpwww_partsdata_de_53(skiatest::Reporter* reporter, const char* fil ename) { 2312 static void skpwww_partsdata_de_53(skiatest::Reporter* reporter, const char* fil ename) {
2366 SkPath path; 2313 SkPath path;
2367 path.setFillType(SkPath::kEvenOdd_FillType); 2314 path.setFillType(SkPath::kEvenOdd_FillType);
2368 path.moveTo(407, 119); 2315 path.moveTo(407, 119);
2369 path.lineTo(407, 28); 2316 path.lineTo(407, 28);
2370 path.lineTo(647, 28); 2317 path.lineTo(647, 28);
2371 path.lineTo(647, 119); 2318 path.lineTo(647, 119);
2372 path.lineTo(407, 119); 2319 path.lineTo(407, 119);
2373 path.close(); 2320 path.close();
2374 SkPath pathB; 2321 SkPath pathB;
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after
2653 pathB.lineTo(630.581177f, 44.7682648f); 2600 pathB.lineTo(630.581177f, 44.7682648f);
2654 pathB.cubicTo(630.702515f, 44.8293152f, 630.831787f, 44.9108353f, 630.967163 f, 45.0124512f); 2601 pathB.cubicTo(630.702515f, 44.8293152f, 630.831787f, 44.9108353f, 630.967163 f, 45.0124512f);
2655 pathB.cubicTo(631.149902f, 45.1497116f, 631.322815f, 45.3301926f, 631.480225 f, 45.5493507f); 2602 pathB.cubicTo(631.149902f, 45.1497116f, 631.322815f, 45.3301926f, 631.480225 f, 45.5493507f);
2656 pathB.cubicTo(631.639038f, 45.7704048f, 631.77478f, 46.0453033f, 631.884399f , 46.3656998f); 2603 pathB.cubicTo(631.639038f, 45.7704048f, 631.77478f, 46.0453033f, 631.884399f , 46.3656998f);
2657 pathB.cubicTo(631.989807f, 46.6754761f, 632.04364f, 47.0436478f, 632.04364f, 47.4595947f); 2604 pathB.cubicTo(631.989807f, 46.6754761f, 632.04364f, 47.0436478f, 632.04364f, 47.4595947f);
2658 pathB.cubicTo(632.042847f, 47.949852f, 631.916565f, 48.3282623f, 631.656494f , 48.6171875f); 2605 pathB.cubicTo(632.042847f, 47.949852f, 631.916565f, 48.3282623f, 631.656494f , 48.6171875f);
2659 pathB.close(); 2606 pathB.close();
2660 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2607 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2661 } 2608 }
2662 2609
2663 // SkOpAngle::setSector SkASSERT(fSectorStart >= 0);
2664 static void skpwww_seopack_blogspot_com_2153(skiatest::Reporter* reporter, const char* filename) { 2610 static void skpwww_seopack_blogspot_com_2153(skiatest::Reporter* reporter, const char* filename) {
2665 SkPath path; 2611 SkPath path;
2666 path.setFillType(SkPath::kEvenOdd_FillType); 2612 path.setFillType(SkPath::kEvenOdd_FillType);
2667 path.moveTo(999.892212f, 246); 2613 path.moveTo(999.892212f, 246);
2668 path.lineTo(927.340759f, 245.505722f); 2614 path.lineTo(927.340759f, 245.505722f);
2669 path.quadTo(928.068054f, 246, 929, 246); 2615 path.quadTo(928.068054f, 246, 929, 246);
2670 path.lineTo(999.892212f, 246); 2616 path.lineTo(999.892212f, 246);
2671 path.close(); 2617 path.close();
2672 path.moveTo(927.340759f, 245.505722f); 2618 path.moveTo(927.340759f, 245.505722f);
2673 path.lineTo(926.5f, 245.5f); 2619 path.lineTo(926.5f, 245.5f);
2674 path.lineTo(925.17157f, 246.82843f); 2620 path.lineTo(925.17157f, 246.82843f);
2675 path.quadTo(926.34314f, 248, 928, 248); 2621 path.quadTo(926.34314f, 248, 928, 248);
2676 path.lineTo(1000, 248); 2622 path.lineTo(1000, 248);
2677 path.lineTo(1000, 246); 2623 path.lineTo(1000, 246);
2678 SkPath pathB; 2624 SkPath pathB;
2679 pathB.setFillType(SkPath::kWinding_FillType); 2625 pathB.setFillType(SkPath::kWinding_FillType);
2680 pathB.moveTo(924, 248); 2626 pathB.moveTo(924, 248);
2681 pathB.lineTo(924, 245.472672f); 2627 pathB.lineTo(924, 245.472672f);
2682 pathB.lineTo(1143, 247); 2628 pathB.lineTo(1143, 247);
2683 pathB.lineTo(1143, 248); 2629 pathB.lineTo(1143, 248);
2684 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2630 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2685 } 2631 }
2686 2632
2687 // joinCoincidence / findT / assert
2688 static void skpwww_lokado_de_173(skiatest::Reporter* reporter, const char* filen ame) { 2633 static void skpwww_lokado_de_173(skiatest::Reporter* reporter, const char* filen ame) {
2689 SkPath path; 2634 SkPath path;
2690 path.setFillType(SkPath::kEvenOdd_FillType); 2635 path.setFillType(SkPath::kEvenOdd_FillType);
2691 path.moveTo(1000, 896.991394f); 2636 path.moveTo(1000, 896.991394f);
2692 path.quadTo(999.789917f, 896.718872f, 999.535522f, 896.464478f); 2637 path.quadTo(999.789917f, 896.718872f, 999.535522f, 896.464478f);
2693 path.quadTo(998.071045f, 895, 996, 895); 2638 path.quadTo(998.071045f, 895, 996, 895);
2694 path.lineTo(956, 895); 2639 path.lineTo(956, 895);
2695 path.quadTo(951.857849f, 895, 948.928955f, 897.928955f); 2640 path.quadTo(951.857849f, 895, 948.928955f, 897.928955f);
2696 path.quadTo(946, 900.857849f, 946, 905); 2641 path.quadTo(946, 900.857849f, 946, 905);
2697 path.lineTo(946, 906); 2642 path.lineTo(946, 906);
(...skipping 16 matching lines...) Expand all
2714 pathB.lineTo(1001, 911); 2659 pathB.lineTo(1001, 911);
2715 pathB.quadTo(1001, 913.071045f, 999.535522f, 914.535522f); 2660 pathB.quadTo(1001, 913.071045f, 999.535522f, 914.535522f);
2716 pathB.quadTo(998.071045f, 916, 996, 916); 2661 pathB.quadTo(998.071045f, 916, 996, 916);
2717 pathB.lineTo(956, 916); 2662 pathB.lineTo(956, 916);
2718 pathB.quadTo(951.857849f, 916, 948.928955f, 913.071045f); 2663 pathB.quadTo(951.857849f, 916, 948.928955f, 913.071045f);
2719 pathB.quadTo(946, 910.142151f, 946, 906); 2664 pathB.quadTo(946, 910.142151f, 946, 906);
2720 pathB.close(); 2665 pathB.close();
2721 testPathOp(reporter, path, pathB, kDifference_PathOp, filename); 2666 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2722 } 2667 }
2723 2668
2724 // !simple->isClosed()
2725 static void skpwww_wartepop_blogspot_com_br_6(skiatest::Reporter* reporter, cons t char* filename) { 2669 static void skpwww_wartepop_blogspot_com_br_6(skiatest::Reporter* reporter, cons t char* filename) {
2726 SkPath path; 2670 SkPath path;
2727 path.setFillType(SkPath::kEvenOdd_FillType); 2671 path.setFillType(SkPath::kEvenOdd_FillType);
2728 path.moveTo(90.9763107f, 153.309662f); 2672 path.moveTo(90.9763107f, 153.309662f);
2729 path.quadTo(91.9526215f, 152.333344f, 93.3333359f, 152.333344f); 2673 path.quadTo(91.9526215f, 152.333344f, 93.3333359f, 152.333344f);
2730 path.lineTo(124.666664f, 152.333344f); 2674 path.lineTo(124.666664f, 152.333344f);
2731 path.quadTo(126.047379f, 152.333344f, 127.023689f, 153.309662f); 2675 path.quadTo(126.047379f, 152.333344f, 127.023689f, 153.309662f);
2732 path.quadTo(128, 154.285965f, 128, 155.666672f); 2676 path.quadTo(128, 154.285965f, 128, 155.666672f);
2733 path.lineTo(128, 163.666672f); 2677 path.lineTo(128, 163.666672f);
2734 path.lineTo(90, 163.666672f); 2678 path.lineTo(90, 163.666672f);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2779 pathB.lineTo(127.666672f, 163.666672f); 2723 pathB.lineTo(127.666672f, 163.666672f);
2780 pathB.lineTo(127.666672f, 163.666672f); 2724 pathB.lineTo(127.666672f, 163.666672f);
2781 pathB.lineTo(127.666672f, 163.666672f); 2725 pathB.lineTo(127.666672f, 163.666672f);
2782 pathB.lineTo(90, 163.666672f); 2726 pathB.lineTo(90, 163.666672f);
2783 pathB.lineTo(90, 163.666672f); 2727 pathB.lineTo(90, 163.666672f);
2784 pathB.lineTo(90, 163.666672f); 2728 pathB.lineTo(90, 163.666672f);
2785 pathB.close(); 2729 pathB.close();
2786 testPathOp(reporter, path, pathB, kDifference_PathOp, filename); 2730 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2787 } 2731 }
2788 2732
2789 // !simple->isClosed()
2790 static void skpwww_odia_com_br_26(skiatest::Reporter* reporter, const char* file name) { 2733 static void skpwww_odia_com_br_26(skiatest::Reporter* reporter, const char* file name) {
2791 SkPath path; 2734 SkPath path;
2792 path.setFillType(SkPath::kEvenOdd_FillType); 2735 path.setFillType(SkPath::kEvenOdd_FillType);
2793 path.moveTo(360.740479f, 741.040771f); 2736 path.moveTo(360.740479f, 741.040771f);
2794 path.quadTo(360.378967f, 741, 360, 741); 2737 path.quadTo(360.378967f, 741, 360, 741);
2795 path.quadTo(359.159821f, 741, 358.403076f, 741.200745f); 2738 path.quadTo(359.159821f, 741, 358.403076f, 741.200745f);
2796 path.quadTo(357.649658f, 741.415833f, 356.92746f, 741.846436f); 2739 path.quadTo(357.649658f, 741.415833f, 356.92746f, 741.846436f);
2797 path.quadTo(356.600769f, 742.041199f, 356.310211f, 742.262268f); 2740 path.quadTo(356.600769f, 742.041199f, 356.310211f, 742.262268f);
2798 path.quadTo(356.025513f, 742.489197f, 355.757355f, 742.757385f); 2741 path.quadTo(356.025513f, 742.489197f, 355.757355f, 742.757385f);
2799 path.quadTo(355.16394f, 743.350769f, 354.770874f, 744.027283f); 2742 path.quadTo(355.16394f, 743.350769f, 354.770874f, 744.027283f);
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
2863 pathB.lineTo(311, 1171); 2806 pathB.lineTo(311, 1171);
2864 pathB.quadTo(311, 1172.24268f, 310.121307f, 1173.12134f); 2807 pathB.quadTo(311, 1172.24268f, 310.121307f, 1173.12134f);
2865 pathB.quadTo(309.242645f, 1174, 308, 1174); 2808 pathB.quadTo(309.242645f, 1174, 308, 1174);
2866 pathB.lineTo(172, 1174); 2809 pathB.lineTo(172, 1174);
2867 pathB.quadTo(171.17157f, 1174, 170.585785f, 1173.12134f); 2810 pathB.quadTo(171.17157f, 1174, 170.585785f, 1173.12134f);
2868 pathB.quadTo(170, 1172.24268f, 170, 1171); 2811 pathB.quadTo(170, 1172.24268f, 170, 1171);
2869 pathB.close(); 2812 pathB.close();
2870 testPathOp(reporter, path, pathB, kDifference_PathOp, filename); 2813 testPathOp(reporter, path, pathB, kDifference_PathOp, filename);
2871 } 2814 }
2872 2815
2873 // hangs
2874 static void skpwww_catingueiraonline_com_352(skiatest::Reporter* reporter, const char* filename) { 2816 static void skpwww_catingueiraonline_com_352(skiatest::Reporter* reporter, const char* filename) {
2875 SkPath path; 2817 SkPath path;
2876 path.setFillType(SkPath::kEvenOdd_FillType); 2818 path.setFillType(SkPath::kEvenOdd_FillType);
2877 path.moveTo(443, 8292); 2819 path.moveTo(443, 8292);
2878 path.lineTo(443, 8140); 2820 path.lineTo(443, 8140);
2879 path.lineTo(444, 8140); 2821 path.lineTo(444, 8140);
2880 path.lineTo(444.01001f, 8292); 2822 path.lineTo(444.01001f, 8292);
2881 path.lineTo(443, 8292); 2823 path.lineTo(443, 8292);
2882 path.close(); 2824 path.close();
2883 SkPath pathB; 2825 SkPath pathB;
2884 pathB.setFillType(SkPath::kWinding_FillType); 2826 pathB.setFillType(SkPath::kWinding_FillType);
2885 pathB.moveTo(443, 8140); 2827 pathB.moveTo(443, 8140);
2886 pathB.lineTo(444.01001f, 8140); 2828 pathB.lineTo(444.01001f, 8140);
2887 pathB.lineTo(444, 8292); 2829 pathB.lineTo(444, 8292);
2888 pathB.lineTo(443, 8292); 2830 pathB.lineTo(443, 8292);
2889 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 2831 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
2890 } 2832 }
2891 2833
2892 // hangs
2893 static void skpwww_galaxystwo_com_4(skiatest::Reporter* reporter, const char* fi lename) { 2834 static void skpwww_galaxystwo_com_4(skiatest::Reporter* reporter, const char* fi lename) {
2894 SkPath path; 2835 SkPath path;
2895 path.setFillType(SkPath::kEvenOdd_FillType); 2836 path.setFillType(SkPath::kEvenOdd_FillType);
2896 path.moveTo(10105, 2510); 2837 path.moveTo(10105, 2510);
2897 path.lineTo(10123, 2509.98999f); 2838 path.lineTo(10123, 2509.98999f);
2898 path.lineTo(10123, 2511); 2839 path.lineTo(10123, 2511);
2899 path.lineTo(10105, 2511); 2840 path.lineTo(10105, 2511);
2900 path.lineTo(10105, 2510); 2841 path.lineTo(10105, 2510);
2901 path.close(); 2842 path.close();
2902 SkPath pathB; 2843 SkPath pathB;
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after
3606 pathB.moveTo(4981.99902f, 1590); 3547 pathB.moveTo(4981.99902f, 1590);
3607 pathB.quadTo(4981.99902f, 1617.75232f, 4962.375f, 1637.3761f); 3548 pathB.quadTo(4981.99902f, 1617.75232f, 4962.375f, 1637.3761f);
3608 pathB.quadTo(4942.75146f, 1657, 4914.99902f, 1657); 3549 pathB.quadTo(4942.75146f, 1657, 4914.99902f, 1657);
3609 pathB.quadTo(4887.24658f, 1657, 4867.62305f, 1637.3761f); 3550 pathB.quadTo(4887.24658f, 1657, 4867.62305f, 1637.3761f);
3610 pathB.quadTo(4847.99902f, 1617.75232f, 4847.99902f, 1590); 3551 pathB.quadTo(4847.99902f, 1617.75232f, 4847.99902f, 1590);
3611 pathB.quadTo(4847.99902f, 1562.24768f, 4867.62305f, 1542.6239f); 3552 pathB.quadTo(4847.99902f, 1562.24768f, 4867.62305f, 1542.6239f);
3612 pathB.quadTo(4887.24658f, 1523, 4914.99902f, 1523); 3553 pathB.quadTo(4887.24658f, 1523, 4914.99902f, 1523);
3613 pathB.quadTo(4942.75146f, 1523, 4962.375f, 1542.6239f); 3554 pathB.quadTo(4942.75146f, 1523, 4962.375f, 1542.6239f);
3614 pathB.quadTo(4981.99902f, 1562.24768f, 4981.99902f, 1590); 3555 pathB.quadTo(4981.99902f, 1562.24768f, 4981.99902f, 1590);
3615 pathB.close(); 3556 pathB.close();
3616 if (FLAGS_runFail) { 3557 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3617 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3618 } else {
3619 // INVESTIGATE : why this normal test takes fail case (test has never wo rked)
3620 testPathFailOp(reporter, path, pathB, kIntersect_PathOp, filename);
3621 }
3622 } 3558 }
3623 3559
3624 static void skpwww_alamdi_com_3(skiatest::Reporter* reporter, const char* filena me) { 3560 static void skpwww_alamdi_com_3(skiatest::Reporter* reporter, const char* filena me) {
3625 SkPath path; 3561 SkPath path;
3626 path.setFillType(SkPath::kEvenOdd_FillType); 3562 path.setFillType(SkPath::kEvenOdd_FillType);
3627 path.moveTo(10210.8789f, 5315.87891f); 3563 path.moveTo(10210.8789f, 5315.87891f);
3628 path.quadTo(10211.7578f, 5315, 10213, 5315); 3564 path.quadTo(10211.7578f, 5315, 10213, 5315);
3629 path.lineTo(10230, 5315); 3565 path.lineTo(10230, 5315);
3630 path.quadTo(10231.2422f, 5315, 10232.1211f, 5315.87891f); 3566 path.quadTo(10231.2422f, 5315, 10232.1211f, 5315.87891f);
3631 path.quadTo(10233, 5316.75732f, 10233, 5318); 3567 path.quadTo(10233, 5316.75732f, 10233, 5318);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
3700 path.close(); 3636 path.close();
3701 SkPath pathB; 3637 SkPath pathB;
3702 pathB.setFillType(SkPath::kWinding_FillType); 3638 pathB.setFillType(SkPath::kWinding_FillType);
3703 pathB.moveTo(808, 11703); 3639 pathB.moveTo(808, 11703);
3704 pathB.lineTo(809.5f, 11701.5f); 3640 pathB.lineTo(809.5f, 11701.5f);
3705 pathB.lineTo(1062.91907f, 11687.0811f); 3641 pathB.lineTo(1062.91907f, 11687.0811f);
3706 pathB.lineTo(1047, 11703); 3642 pathB.lineTo(1047, 11703);
3707 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 3643 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3708 } 3644 }
3709 3645
3710 // addSimpleAngle: failed assertion "index == count() - 2"
3711 static void skpwww_shinydemos_com_5(skiatest::Reporter* reporter, const char* fi lename) { 3646 static void skpwww_shinydemos_com_5(skiatest::Reporter* reporter, const char* fi lename) {
3712 SkPath path; 3647 SkPath path;
3713 path.setFillType(SkPath::kEvenOdd_FillType); 3648 path.setFillType(SkPath::kEvenOdd_FillType);
3714 path.moveTo(205.884888f, 648.203857f); 3649 path.moveTo(205.884888f, 648.203857f);
3715 path.lineTo(771.570374f, 82.5183716f); 3650 path.lineTo(771.570374f, 82.5183716f);
3716 path.lineTo(1110.98169f, 421.929626f); 3651 path.lineTo(1110.98169f, 421.929626f);
3717 path.lineTo(545.296143f, 987.615112f); 3652 path.lineTo(545.296143f, 987.615112f);
3718 path.lineTo(205.884888f, 648.203857f); 3653 path.lineTo(205.884888f, 648.203857f);
3719 path.close(); 3654 path.close();
3720 SkPath pathB; 3655 SkPath pathB;
3721 pathB.setFillType(SkPath::kWinding_FillType); 3656 pathB.setFillType(SkPath::kWinding_FillType);
3722 pathB.moveTo(771.570374f, 82.5183716f); 3657 pathB.moveTo(771.570374f, 82.5183716f);
3723 pathB.lineTo(1110.98169f, 421.929626f); 3658 pathB.lineTo(1110.98169f, 421.929626f);
3724 pathB.lineTo(545.296204f, 987.615051f); 3659 pathB.lineTo(545.296204f, 987.615051f);
3725 pathB.lineTo(205.884949f, 648.203796f); 3660 pathB.lineTo(205.884949f, 648.203796f);
3726 pathB.close(); 3661 pathB.close();
3727 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 3662 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3728 } 3663 }
3729 3664
3730 // addTCoincident oPeek = &other->fTs[++oPeekIndex];
3731 static void skpwww_lptemp_com_3(skiatest::Reporter* reporter, const char* filena me) { 3665 static void skpwww_lptemp_com_3(skiatest::Reporter* reporter, const char* filena me) {
3732 SkPath path; 3666 SkPath path;
3733 path.setFillType(SkPath::kEvenOdd_FillType); 3667 path.setFillType(SkPath::kEvenOdd_FillType);
3734 path.moveTo(78.6429825f, 1394.30969f); 3668 path.moveTo(78.6429825f, 1394.30969f);
3735 path.quadTo(79.6192932f, 1393.33337f, 81.0000076f, 1393.33337f); 3669 path.quadTo(79.6192932f, 1393.33337f, 81.0000076f, 1393.33337f);
3736 path.lineTo(341, 1393.33337f); 3670 path.lineTo(341, 1393.33337f);
3737 path.quadTo(342.380707f, 1393.33337f, 343.357025f, 1394.30969f); 3671 path.quadTo(342.380707f, 1393.33337f, 343.357025f, 1394.30969f);
3738 path.quadTo(344.333344f, 1395.28601f, 344.333344f, 1396.66675f); 3672 path.quadTo(344.333344f, 1395.28601f, 344.333344f, 1396.66675f);
3739 path.lineTo(344.333344f, 1465.66663f); 3673 path.lineTo(344.333344f, 1465.66663f);
3740 path.quadTo(344.333344f, 1467.04736f, 343.357025f, 1468.02368f); 3674 path.quadTo(344.333344f, 1467.04736f, 343.357025f, 1468.02368f);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
3774 SkPath pathB; 3708 SkPath pathB;
3775 pathB.setFillType(SkPath::kWinding_FillType); 3709 pathB.setFillType(SkPath::kWinding_FillType);
3776 pathB.moveTo(771.570374f, 82.5183716f); 3710 pathB.moveTo(771.570374f, 82.5183716f);
3777 pathB.lineTo(1110.98169f, 421.929626f); 3711 pathB.lineTo(1110.98169f, 421.929626f);
3778 pathB.lineTo(545.296204f, 987.615051f); 3712 pathB.lineTo(545.296204f, 987.615051f);
3779 pathB.lineTo(205.884949f, 648.203796f); 3713 pathB.lineTo(205.884949f, 648.203796f);
3780 pathB.close(); 3714 pathB.close();
3781 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); 3715 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3782 } 3716 }
3783 3717
3784 // SkOpSegment.cpp:4398: failed assertion "!span->fDone"
3785 static void skpwww_lptemp_com_5(skiatest::Reporter* reporter, const char* filena me) { 3718 static void skpwww_lptemp_com_5(skiatest::Reporter* reporter, const char* filena me) {
3786 if (/* 0 && */ !FLAGS_runFail) { // has never worked MUST BE FIXED BEFORE N EXT CHECKIN
3787 return;
3788 }
3789 SkPath path; 3719 SkPath path;
3790 path.setFillType(SkPath::kEvenOdd_FillType); 3720 path.setFillType(SkPath::kEvenOdd_FillType);
3791 path.moveTo(78.6429825f, 3150.97632f); 3721 path.moveTo(78.6429825f, 3150.97632f);
3792 path.quadTo(79.6192932f, 3150, 81.0000076f, 3150); 3722 path.quadTo(79.6192932f, 3150, 81.0000076f, 3150);
3793 path.lineTo(341, 3150); 3723 path.lineTo(341, 3150);
3794 path.quadTo(342.380707f, 3150, 343.357025f, 3150.97632f); 3724 path.quadTo(342.380707f, 3150, 343.357025f, 3150.97632f);
3795 path.quadTo(344.333344f, 3151.95264f, 344.333344f, 3153.33325f); 3725 path.quadTo(344.333344f, 3151.95264f, 344.333344f, 3153.33325f);
3796 path.lineTo(344.333344f, 5205.3335f); 3726 path.lineTo(344.333344f, 5205.3335f);
3797 path.quadTo(344.333344f, 5206.71436f, 343.357025f, 5207.69092f); 3727 path.quadTo(344.333344f, 5206.71436f, 343.357025f, 5207.69092f);
3798 path.quadTo(342.380707f, 5208.66699f, 341, 5208.66699f); 3728 path.quadTo(342.380707f, 5208.66699f, 341, 5208.66699f);
3799 path.lineTo(81.0000076f, 5208.66699f); 3729 path.lineTo(81.0000076f, 5208.66699f);
3800 path.quadTo(79.6192932f, 5208.66699f, 78.6429825f, 5207.69092f); 3730 path.quadTo(79.6192932f, 5208.66699f, 78.6429825f, 5207.69092f);
3801 path.quadTo(77.6666718f, 5206.71436f, 77.6666718f, 5205.3335f); 3731 path.quadTo(77.6666718f, 5206.71436f, 77.6666718f, 5205.3335f);
3802 path.lineTo(77.6666718f, 3153.33325f); 3732 path.lineTo(77.6666718f, 3153.33325f);
3803 path.quadTo(77.6666718f, 3151.95264f, 78.6429825f, 3150.97632f); 3733 path.quadTo(77.6666718f, 3151.95264f, 78.6429825f, 3150.97632f);
3804 path.close(); 3734 path.close();
3805 SkPath pathB; 3735 SkPath pathB;
3806 pathB.setFillType(SkPath::kEvenOdd_FillType); 3736 pathB.setFillType(SkPath::kEvenOdd_FillType);
3807 pathB.moveTo(81, 3150); 3737 pathB.moveTo(81, 3150);
3808 pathB.lineTo(341, 3150); 3738 pathB.lineTo(341, 3150);
3809 pathB.cubicTo(342.840942f, 3150, 344.333344f, 3151.49268f, 344.333344f, 3153 .3335f); 3739 pathB.cubicTo(342.840942f, 3150, 344.333344f, 3151.49268f, 344.333344f, 3153 .3335f);
3810 pathB.lineTo(344.333344f, 5205.3335f); 3740 pathB.lineTo(344.333344f, 5205.3335f);
3811 pathB.cubicTo(344.333344f, 5206.99023f, 342.840942f, 5208.3335f, 341, 5208.3 335f); 3741 pathB.cubicTo(344.333344f, 5206.99023f, 342.840942f, 5208.3335f, 341, 5208.3 335f);
3812 pathB.lineTo(81, 5208.3335f); 3742 pathB.lineTo(81, 5208.3335f);
3813 pathB.cubicTo(79.15905f, 5208.3335f, 77.6666718f, 5206.99023f, 77.6666718f, 5205.3335f); 3743 pathB.cubicTo(79.15905f, 5208.3335f, 77.6666718f, 5206.99023f, 77.6666718f, 5205.3335f);
3814 pathB.lineTo(77.6666718f, 3153.3335f); 3744 pathB.lineTo(77.6666718f, 3153.3335f);
3815 pathB.cubicTo(77.6666718f, 3151.49268f, 79.15905f, 3150, 81, 3150); 3745 pathB.cubicTo(77.6666718f, 3151.49268f, 79.15905f, 3150, 81, 3150);
3816 pathB.close(); 3746 pathB.close();
3817 testPathOpCheck(reporter, path, pathB, kIntersect_PathOp, filename, FLAGS_ru nFail); 3747 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3818 } 3748 }
3819 3749
3750 static void skpwww_educationalcraft_com_4a(skiatest::Reporter* reporter, const c har* filename) {
3751 SkPath path;
3752 path.setFillType(SkPath::kEvenOdd_FillType);
3753 path.moveTo(941, 1494);
3754 path.lineTo(941, 1464);
3755 path.lineTo(985, 1464);
3756 path.lineTo(985, 1494);
3757 path.lineTo(941, 1494);
3758 path.close();
3759 SkPath pathB;
3760 pathB.setFillType(SkPath::kWinding_FillType);
3761
3762 pathB.moveTo(984.546021f, 1478.31494f);
3763 pathB.cubicTo(984.546021f, 1478.31494f, 984.543213f, 1478.32239f, 984.537598f, 1 478.33655f);
3764 pathB.cubicTo(984.419006f, 1478.63477f, 983.044373f, 1481.90405f, 980.026001f, 1 481.276f);
3765 pathB.cubicTo(980.026001f, 1481.276f, 980.02594f, 1481.27576f, 980.025879f, 1481 .27527f);
3766 pathB.cubicTo(980.018494f, 1481.22131f, 979.602478f, 1478.38831f, 984.546021f, 1 478.31494f);
3767 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
3768
3769 }
3770
3771 static void (*skipTest)(skiatest::Reporter* , const char* filename) = 0;
3820 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; 3772 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
3773 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
3821 3774
3822 static struct TestDesc tests[] = { 3775 static struct TestDesc tests[] = {
3776 TEST(skpwww_educationalcraft_com_4a),
3823 TEST(skpwww_lptemp_com_3), 3777 TEST(skpwww_lptemp_com_3),
3824 TEST(skpwww_shinydemos_com_5), 3778 TEST(skpwww_shinydemos_com_5),
3825 TEST(skpwww_lptemp_com_5), 3779 TEST(skpwww_lptemp_com_5),
3826 TEST(skpwww_shinydemos_com_15), 3780 TEST(skpwww_shinydemos_com_15),
3827 TEST(skpwww_familysurvivalprotocol_wordpress_com_61), 3781 TEST(skpwww_familysurvivalprotocol_wordpress_com_61),
3828 TEST(skpwww_alamdi_com_3), 3782 TEST(skpwww_alamdi_com_3),
3829 TEST(skpwww_devbridge_com_22), 3783 TEST(skpwww_devbridge_com_22),
3830 TEST(skpwww_firstunitedbank_com_19), 3784 TEST(skpwww_firstunitedbank_com_19),
3831 TEST(skpwww_googleventures_com_32), 3785 TEST(skpwww_googleventures_com_32),
3832 TEST(skpwww_9to5mac_com_64), 3786 TEST(skpwww_9to5mac_com_64),
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
3932 TEST(skpilkoora_com37), 3886 TEST(skpilkoora_com37),
3933 TEST(skpmm4everfriends_com43), 3887 TEST(skpmm4everfriends_com43),
3934 TEST(skpflite_com41), 3888 TEST(skpflite_com41),
3935 TEST(skpcheeseandburger_com225), 3889 TEST(skpcheeseandburger_com225),
3936 TEST(skpeverytechpro_blogspot_com100), 3890 TEST(skpeverytechpro_blogspot_com100),
3937 }; 3891 };
3938 3892
3939 static const size_t testCount = SK_ARRAY_COUNT(tests); 3893 static const size_t testCount = SK_ARRAY_COUNT(tests);
3940 3894
3941 static bool runReverse = false; 3895 static bool runReverse = false;
3942 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
3943 3896
3944 DEF_TEST(PathOpsSkp, reporter) { 3897 DEF_TEST(PathOpsSkp, reporter) {
3945 #if DEBUG_SHOW_TEST_NAME 3898 #if DEBUG_SHOW_TEST_NAME
3946 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); 3899 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH);
3947 #endif 3900 #endif
3948 RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse); 3901 RunTestSet(reporter, tests, testCount, firstTest, skipTest, stopTest, runRev erse);
3949 } 3902 }
OLDNEW
« no previous file with comments | « tests/PathOpsSimplifyTest.cpp ('k') | tests/PathOpsTSectDebug.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698