Index: tests/PathOpsSkpTest.cpp |
diff --git a/tests/PathOpsSkpTest.cpp b/tests/PathOpsSkpTest.cpp |
index 39eb4cbd604c1ffcfce8d7b5e6efdf4cc25559e7..ca86439a9c2b8f52edeb519e0b288e2ef481adfe 100755 |
--- a/tests/PathOpsSkpTest.cpp |
+++ b/tests/PathOpsSkpTest.cpp |
@@ -6,10 +6,9 @@ |
*/ |
#include "PathOpsExtendedTest.h" |
- |
#define TEST(name) { name, #name } |
-static void skpcheeseandburger_com225(skiatest::Reporter* reporter) { |
+static void skpcheeseandburger_com225(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(555, 468); |
@@ -367,10 +366,10 @@ static void skpcheeseandburger_com225(skiatest::Reporter* reporter) { |
pathB.lineTo(716.868225f, 365.046783f); |
pathB.cubicTo(716.868225f, 363.740021f, 716.960083f, 363.043213f, 717.597961f, 362); |
pathB.cubicTo(715.331848f, 363.104095f, 714.19873f, 363.657166f, 711.928711f, 364.782227f); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpeverytechpro_blogspot_com100(skiatest::Reporter* reporter) { |
+static void skpeverytechpro_blogspot_com100(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(1074.29285f, 627.292786f); |
@@ -401,10 +400,10 @@ static void skpeverytechpro_blogspot_com100(skiatest::Reporter* reporter) { |
pathB.lineTo(1075, 628); |
pathB.lineTo(1116.5f, 644.5f); |
pathB.lineTo(1134, 627); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpflite_com41(skiatest::Reporter* reporter) { |
+static void skpflite_com41(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(301.464081f, 424); |
@@ -424,10 +423,10 @@ static void skpflite_com41(skiatest::Reporter* reporter) { |
pathB.lineTo(304.510101f, 438.724121f); |
pathB.lineTo(295.849854f, 433.724121f); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpilkoora_com37(skiatest::Reporter* reporter) { |
+static void skpilkoora_com37(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(818, 157); |
@@ -456,10 +455,10 @@ static void skpilkoora_com37(skiatest::Reporter* reporter) { |
pathB.lineTo(1001.5f, 325.5f); |
pathB.lineTo(1001.5f, 782.5f); |
pathB.lineTo(1185, 966); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpmm4everfriends_com43(skiatest::Reporter* reporter) { |
+static void skpmm4everfriends_com43(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(540.74231f, 215.922546f); |
@@ -479,10 +478,10 @@ static void skpmm4everfriends_com43(skiatest::Reporter* reporter) { |
pathB.lineTo(576.435852f, 247.626068f); |
pathB.lineTo(535.280823f, 235.165573f); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpmtrk_uz27(skiatest::Reporter* reporter) { |
+static void skpmtrk_uz27(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(33, 787); |
@@ -506,10 +505,10 @@ static void skpmtrk_uz27(skiatest::Reporter* reporter) { |
pathB.quadTo(41.7867432f, 802, 37.3919678f, 797.608032f); |
pathB.quadTo(33, 793.213196f, 33, 787); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpfrauen_magazin_com83(skiatest::Reporter* reporter) { |
+static void skpfrauen_magazin_com83(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(808, 886); |
@@ -530,12 +529,10 @@ static void skpfrauen_magazin_com83(skiatest::Reporter* reporter) { |
pathB.lineTo(803, 891); |
pathB.cubicTo(803, 888.238586f, 805.238586f, 886, 808, 886); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#define TRY_BROKEN_TESTS 0 |
-#if TRY_BROKEN_TESTS |
-static void skpi_gino_com16(skiatest::Reporter* reporter) { |
+static void skpi_gino_com16(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(184, 734); |
@@ -557,10 +554,10 @@ static void skpi_gino_com16(skiatest::Reporter* reporter) { |
pathB.cubicTo(61, 789.06897f, 116.068977f, 734, 184, 734); |
pathB.lineTo(185, 734); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skppchappy_com_au102(skiatest::Reporter* reporter) { |
+static void skppchappy_com_au102(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(363, 493); |
@@ -585,10 +582,10 @@ static void skppchappy_com_au102(skiatest::Reporter* reporter) { |
pathB.lineTo(359, 496); |
pathB.cubicTo(359, 494.895416f, 360.34314f, 494, 362, 494); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpsciality_com161(skiatest::Reporter* reporter) { |
+static void skpsciality_com161(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(656, 728); |
@@ -613,11 +610,10 @@ static void skpsciality_com161(skiatest::Reporter* reporter) { |
pathB.lineTo(652, 731); |
pathB.cubicTo(652, 729.895447f, 653.34314f, 729, 655, 729); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#endif |
-static void skpsudoestenegocios_com186(skiatest::Reporter* reporter) { |
+static void skpsudoestenegocios_com186(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(0, 495); |
@@ -644,10 +640,10 @@ static void skpsudoestenegocios_com186(skiatest::Reporter* reporter) { |
pathB.lineTo(24, 471); |
pathB.lineTo(24, 317); |
pathB.lineTo(48, 293); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpthesuburbanite_com213(skiatest::Reporter* reporter) { |
+static void skpthesuburbanite_com213(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(863.439026f, 692); |
@@ -665,10 +661,10 @@ static void skpthesuburbanite_com213(skiatest::Reporter* reporter) { |
pathB.lineTo(866.016724f, 701.620361f); |
pathB.lineTo(785.84491f, 723.102356f); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skphostloco_com11(skiatest::Reporter* reporter) { |
+static void skphostloco_com11(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(6.66133815e-16f, 648); |
@@ -688,10 +684,10 @@ static void skphostloco_com11(skiatest::Reporter* reporter) { |
pathB.lineTo(30, 648); |
pathB.lineTo(0, 648); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpsergeychunkevich_com8(skiatest::Reporter* reporter) { |
+static void skpsergeychunkevich_com8(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(0, 926); |
@@ -710,10 +706,10 @@ static void skpsergeychunkevich_com8(skiatest::Reporter* reporter) { |
pathB.lineTo(34, 371); |
pathB.cubicTo(35.6568565f, 371, 37, 372.34314f, 37, 374); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skptracksflow_com9(skiatest::Reporter* reporter) { |
+static void skptracksflow_com9(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(16, 56); |
@@ -744,10 +740,10 @@ static void skptracksflow_com9(skiatest::Reporter* reporter) { |
pathB.cubicTo(26.0091248f, 64.2129364f, 24.2174377f, 66.0046234f, 22.0072803f, 66.0046234f); |
pathB.cubicTo(19.7970943f, 66.0045929f, 18.0054054f, 64.2129059f, 18.0054054f, 62.0027809f); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpautobutler_dk29(skiatest::Reporter* reporter) { |
+static void skpautobutler_dk29(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(0, 926); |
@@ -763,10 +759,10 @@ static void skpautobutler_dk29(skiatest::Reporter* reporter) { |
pathB.lineTo(8.57224448e-15f, 301); |
pathB.lineTo(6.12303177e-17f, 162); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skponlinecollege_org144(skiatest::Reporter* reporter) { |
+static void skponlinecollege_org144(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(179, 407); |
@@ -791,10 +787,10 @@ static void skponlinecollege_org144(skiatest::Reporter* reporter) { |
pathB.lineTo(177, 410); |
pathB.cubicTo(177, 408.895416f, 177.895432f, 408, 179, 408); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpnational_com_au81(skiatest::Reporter* reporter) { |
+static void skpnational_com_au81(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(807, 817); |
@@ -817,10 +813,10 @@ static void skpnational_com_au81(skiatest::Reporter* reporter) { |
pathB.lineTo(806, 818); |
pathB.cubicTo(806, 817.447693f, 806.447693f, 817, 807, 817); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skprentacheat_com30(skiatest::Reporter* reporter) { |
+static void skprentacheat_com30(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(967, 263); |
@@ -843,10 +839,10 @@ static void skprentacheat_com30(skiatest::Reporter* reporter) { |
pathB.lineTo(966, 264); |
pathB.cubicTo(966, 263.447723f, 966.447693f, 263, 967, 263); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpbreakmystyle_com10(skiatest::Reporter* reporter) { |
+static void skpbreakmystyle_com10(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(271.032867f, -5.32907052e-15f); |
@@ -872,10 +868,10 @@ static void skpbreakmystyle_com10(skiatest::Reporter* reporter) { |
pathB.quadTo(231.516815f, -40, 279.258392f, 7.74160004f); |
pathB.quadTo(327, 55.4831848f, 327, 123); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpsd_graphic_net104(skiatest::Reporter* reporter) { |
+static void skpsd_graphic_net104(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(475.421448f, 836.985962f); |
@@ -897,10 +893,9 @@ static void skpsd_graphic_net104(skiatest::Reporter* reporter) { |
pathB.lineTo(390.578583f, 867.014099f); |
pathB.lineTo(433, 852.000061f); |
pathB.lineTo(490.435486f, 879.40741f); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#if TRY_BROKEN_TESTS |
/* this cubic/quad pair |
c = 430,280 430,278.895416 473.876068,278 528,278 |
q = 430,280 430.009796,277.101196 458.703552,275.050262 |
@@ -914,7 +909,7 @@ static void skpsd_graphic_net104(skiatest::Reporter* reporter) { |
Maybe in angle setup, this instability can be detected to suppress sorting on the initial tangent |
Or the error term can be passed to NearRay that is magnified by the distance from the next ctrl? |
*/ |
-static void skpnaoxrane_ru23(skiatest::Reporter* reporter) { |
+static void skpnaoxrane_ru23(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(458.703552f, 275.050262f); |
@@ -943,7 +938,7 @@ static void skpnaoxrane_ru23(skiatest::Reporter* reporter) { |
pathB.lineTo(430, 280); |
pathB.cubicTo(430, 278.895416f, 473.876068f, 278, 528, 278); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
/* didn't investigate thoroughly, but looks to be missorting quad and cubic |
@@ -951,7 +946,7 @@ static void skpnaoxrane_ru23(skiatest::Reporter* reporter) { |
{{463.779907,542.671143}, {464.829529,542.672974}, {466.946289,550.755676}, {468.507751,560.724426}} |
decision maker is case 14 leftLessThanRight |
*/ |
-static void skptcmevents_org23(skiatest::Reporter* reporter) { |
+static void skptcmevents_org23(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(465.503998f, 546); |
@@ -976,10 +971,10 @@ static void skptcmevents_org23(skiatest::Reporter* reporter) { |
pathB.lineTo(325.968597f, 560.475708f); |
pathB.cubicTo(324.407104f, 550.506958f, 341.01001f, 542.456909f, 363.052246f, 542.495361f); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpredbullskatearcade_es16(skiatest::Reporter* reporter) { |
+static void skpredbullskatearcade_es16(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(936.765625f, 458.965302f); |
@@ -1007,10 +1002,10 @@ static void skpredbullskatearcade_es16(skiatest::Reporter* reporter) { |
pathB.lineTo(652.258179f, 468.503662f); |
pathB.cubicTo(652.520996f, 463.401611f, 656.829834f, 459.128235f, 661.882263f, 458.958862f); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpfinanzasdigital_com9(skiatest::Reporter* reporter) { |
+static void skpfinanzasdigital_com9(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(156, 126); |
@@ -1033,11 +1028,10 @@ static void skpfinanzasdigital_com9(skiatest::Reporter* reporter) { |
pathB.lineTo(153, 130); |
pathB.cubicTo(153, 127.790863f, 154.34314f, 126, 156, 126); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#endif |
-static void skppartainasdemo250_org56(skiatest::Reporter* reporter) { |
+static void skppartainasdemo250_org56(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(182.000015f, 645); |
@@ -1057,10 +1051,10 @@ static void skppartainasdemo250_org56(skiatest::Reporter* reporter) { |
pathB.lineTo(206.748749f, 634.748718f); |
pathB.lineTo(182.000015f, 610); |
pathB.lineTo(132.502533f, 610); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpmlk_com326(skiatest::Reporter* reporter) { |
+static void skpmlk_com326(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(154, 670); |
@@ -1085,10 +1079,10 @@ static void skpmlk_com326(skiatest::Reporter* reporter) { |
pathB.lineTo(149, 675); |
pathB.cubicTo(149, 672.790833f, 151.238571f, 671, 154, 671); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpcyclist_friends_gr52(skiatest::Reporter* reporter) { |
+static void skpcyclist_friends_gr52(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(50, 182); |
@@ -1111,11 +1105,11 @@ static void skpcyclist_friends_gr52(skiatest::Reporter* reporter) { |
pathB.cubicTo(52.238575f, 207, 50, 204.761429f, 50, 202); |
pathB.lineTo(50, 183); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
/* cubic ends just above opp line */ |
-static void skpwww_fj_p_com_22(skiatest::Reporter* reporter) { |
+static void skpwww_fj_p_com_22(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(172, 201); |
@@ -1131,13 +1125,11 @@ static void skpwww_fj_p_com_22(skiatest::Reporter* reporter) { |
pathB.lineTo(161, 199); |
pathB.lineTo(223, 199.000015f); |
pathB.lineTo(223, 202); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#define TRY_SEPT_BROKEN_TESTS 0 |
-#if TRY_SEPT_BROKEN_TESTS |
// pair of lines are not quite coincident, so sorting line/cubic fails (i think) |
-static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter) { |
+static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(806, 57); |
@@ -1166,13 +1158,13 @@ static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter) { |
pathB.lineTo(808, 56); |
pathB.lineTo(935.02002f, 56.0200005f); |
pathB.lineTo(933, 54); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
// pair of curves have nearly the same initial tangent but are sorting by |
// that alone sorts them incorrectly. Need to detect that tangents are nearly |
// identical and not reliable by themselves |
-static void skppptv_com_62(skiatest::Reporter* reporter) { |
+static void skppptv_com_62(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(173, 5342); |
@@ -1195,11 +1187,11 @@ static void skppptv_com_62(skiatest::Reporter* reporter) { |
pathB.lineTo(169, 5346); |
pathB.cubicTo(169, 5343.79102f, 170.790863f, 5342, 173, 5342); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
// nearly identical to lavoixdunord -- to not-quite-coincident lines |
-static void skpwww_booking_com_68(skiatest::Reporter* reporter) { |
+static void skpwww_booking_com_68(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(90, 187); |
@@ -1228,11 +1220,11 @@ static void skpwww_booking_com_68(skiatest::Reporter* reporter) { |
pathB.lineTo(92, 186); |
pathB.lineTo(593.02002f, 186.020004f); |
pathB.lineTo(591, 184); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
// visually looks like lavoixdunord and www_booking_com |
-static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter) { |
+static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(635, 1788); |
@@ -1261,11 +1253,10 @@ static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter) { |
pathB.lineTo(833, 1787); |
pathB.lineTo(832.97998f, 1817.02002f); |
pathB.lineTo(835, 1815); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#endif |
-static void skpwww_joomla_org_23(skiatest::Reporter* reporter) { |
+static void skpwww_joomla_org_23(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(320, 347); |
@@ -1290,10 +1281,10 @@ static void skpwww_joomla_org_23(skiatest::Reporter* reporter) { |
pathB.lineTo(320, 378); |
pathB.lineTo(421, 378.000031f); |
pathB.lineTo(421, 383); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpwww_macrumors_com_131(skiatest::Reporter* reporter) { |
+static void skpwww_macrumors_com_131(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(136, 14089); |
@@ -1316,10 +1307,10 @@ static void skpwww_macrumors_com_131(skiatest::Reporter* reporter) { |
pathB.cubicTo(137.790863f, 14093, 136, 14091.209f, 136, 14089); |
pathB.lineTo(136, 14057); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpwww_leadpages_net_84(skiatest::Reporter* reporter) { |
+static void skpwww_leadpages_net_84(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(377.1716f, 5910.17139f); |
@@ -1337,10 +1328,10 @@ static void skpwww_leadpages_net_84(skiatest::Reporter* reporter) { |
pathB.lineTo(378.481873f, 5909); |
pathB.lineTo(379.999878f, 5976); |
pathB.lineTo(376, 5976); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpwww_briian_com_34(skiatest::Reporter* reporter) { |
+static void skpwww_briian_com_34(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(843, 216); |
@@ -1369,11 +1360,10 @@ static void skpwww_briian_com_34(skiatest::Reporter* reporter) { |
pathB.lineTo(843, 779); |
pathB.lineTo(1196, 779.000061f); |
pathB.lineTo(1196, 784); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
- |
-static void skpwww_sciality_com_100(skiatest::Reporter* reporter) { |
+static void skpwww_sciality_com_100(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(162, 468); |
@@ -1398,11 +1388,10 @@ static void skpwww_sciality_com_100(skiatest::Reporter* reporter) { |
pathB.cubicTo(158, 469.34314f, 159.34314f, 468, 161, 468); |
pathB.lineTo(275, 468); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#if TRY_SEPT_BROKEN_TESTS |
-static void skpwww_sciality_com_101(skiatest::Reporter* reporter) { |
+static void skpwww_sciality_com_101(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(162, 468); |
@@ -1427,11 +1416,10 @@ static void skpwww_sciality_com_101(skiatest::Reporter* reporter) { |
pathB.lineTo(158, 471); |
pathB.cubicTo(158, 469.895416f, 159.34314f, 469, 161, 469); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#endif |
-static void skpwww_meb_gov_tr_5(skiatest::Reporter* reporter) { |
+static void skpwww_meb_gov_tr_5(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(137.34314f, 145.34314f); |
@@ -1451,11 +1439,10 @@ static void skpwww_meb_gov_tr_5(skiatest::Reporter* reporter) { |
pathB.lineTo(250, 177); |
pathB.lineTo(135, 177); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#if TRY_SEPT_BROKEN_TESTS |
-static void skpwww_meb_gov_tr_6(skiatest::Reporter* reporter) { |
+static void skpwww_meb_gov_tr_6(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(143, 143); |
@@ -1478,11 +1465,10 @@ static void skpwww_meb_gov_tr_6(skiatest::Reporter* reporter) { |
pathB.lineTo(135, 151); |
pathB.cubicTo(135, 146.581726f, 138.581726f, 143, 143, 143); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#endif |
-static void skpgithub_io_25(skiatest::Reporter* reporter) { |
+static void skpgithub_io_25(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(1001.87866f, 14.8786793f); |
@@ -1511,10 +1497,10 @@ static void skpgithub_io_25(skiatest::Reporter* reporter) { |
pathB.lineTo(1003, 18); |
pathB.cubicTo(1003, 16.8954296f, 1003.89545f, 16, 1005, 16); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpgithub_io_26(skiatest::Reporter* reporter) { |
+static void skpgithub_io_26(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(1001.87866f, 14.8786793f); |
@@ -1547,10 +1533,10 @@ static void skpgithub_io_26(skiatest::Reporter* reporter) { |
pathB.lineTo(1106, 16); |
pathB.lineTo(1105.97998f, 46.0200005f); |
pathB.lineTo(1108, 44); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-static void skpskpicture14(skiatest::Reporter* reporter) { |
+static void skpskpicture14(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(0, 994); |
@@ -1570,11 +1556,10 @@ static void skpskpicture14(skiatest::Reporter* reporter) { |
pathB.lineTo(323, 193); |
pathB.lineTo(-317, 193); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#if TRY_SEPT_BROKEN_TESTS |
-static void skpskpicture15(skiatest::Reporter* reporter) { |
+static void skpskpicture15(skiatest::Reporter* reporter, const char* filename) { |
SkPath path; |
path.setFillType(SkPath::kEvenOdd_FillType); |
path.moveTo(0, 193); |
@@ -1595,15 +1580,180 @@ static void skpskpicture15(skiatest::Reporter* reporter) { |
pathB.lineTo(-317, 168); |
pathB.cubicTo(-317, 166.34314f, -315.65686f, 165, -314, 165); |
pathB.close(); |
- testPathOp(reporter, path, pathB, kIntersect_PathOp); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
+} |
+ |
+/* Three edges are partially coincident. Only one of the three knows about the other two. |
+ Subsequently, when the angle loop is created, it misses one of the edges. |
+ After coincident edges are processed, probably need a check-and-correct that makes sure the |
+ coincidences are all self-consistent. |
+ */ |
+static void skpelpais_com_18(skiatest::Reporter* reporter, const char* filename) { |
+ SkPath path; |
+ path.setFillType(SkPath::kEvenOdd_FillType); |
+ path.moveTo(183, 8507); |
+ path.lineTo(552, 8506.99023f); |
+ path.lineTo(552, 8508); |
+ path.lineTo(183, 8508); |
+ path.lineTo(183, 8507); |
+ path.close(); |
+ SkPath pathB; |
+ pathB.setFillType(SkPath::kWinding_FillType); |
+ pathB.moveTo(183, 8508); |
+ pathB.lineTo(183, 8506.99023f); |
+ pathB.lineTo(552, 8507); |
+ pathB.lineTo(552, 8508); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
} |
-#endif |
-static void (*firstTest)(skiatest::Reporter* ) = 0; |
+/* this generates a pair of lines that are essentially coincident; but the next line at a right |
+ angle is not treated as if it intersects at the same point. |
+ There are several of options: |
+ move the intersection of the right angle line to the coincident point (should 'near' do this? |
+ construct another coincident pair from the right angle line to the coincident point |
+ treat the intersection as simple and not coincident |
+ */ |
+static void skpnamecheap_com_405(skiatest::Reporter* reporter, const char* filename) { |
+ SkPath path; |
+ path.setFillType(SkPath::kEvenOdd_FillType); |
+ path.moveTo(140, 1000); |
+ path.lineTo(140, 842); |
+ path.lineTo(141, 842); |
+ path.lineTo(141.14502f, 1000); |
+ path.lineTo(140, 1000); |
+ path.close(); |
+ SkPath pathB; |
+ pathB.setFillType(SkPath::kWinding_FillType); |
+ pathB.moveTo(140, 842); |
+ pathB.lineTo(141.008835f, 837.9646f); |
+ pathB.lineTo(141.235291f, 1109.05884f); |
+ pathB.lineTo(140, 1114); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
+} |
+ |
+// fails on angle insert -- haven't investigated yet |
+static void skpwww_alrakoba_net_62(skiatest::Reporter* reporter, const char* filename) { |
+ SkPath path; |
+ path.setFillType(SkPath::kEvenOdd_FillType); |
+ path.moveTo(134.34314f, 9802.34277f); |
+ path.quadTo(132, 9804.68652f, 132, 9808); |
+ path.lineTo(132, 9822); |
+ path.quadTo(132, 9825.31348f, 134.34314f, 9827.65723f); |
+ path.quadTo(136.686295f, 9830, 140, 9830); |
+ path.lineTo(140.028473f, 9830); |
+ path.lineTo(139.877213f, 9828.90723f); |
+ path.quadTo(137.692032f, 9828.5332f, 136.050247f, 9826.65723f); |
+ path.quadTo(134, 9824.31348f, 134, 9821); |
+ path.lineTo(134, 9809); |
+ path.quadTo(134, 9806.10059f, 136.050247f, 9804.0498f); |
+ path.lineTo(134.34314f, 9802.34277f); |
+ path.close(); |
+ SkPath pathB; |
+ pathB.setFillType(SkPath::kWinding_FillType); |
+ pathB.moveTo(132, 9800); |
+ pathB.lineTo(135.962357f, 9800); |
+ pathB.lineTo(140, 9830); |
+ pathB.lineTo(132, 9830); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
+} |
+ |
+/* asserts in alignSpanState looks like a coincident related bug */ |
+static void skpwww_cityads_ru_249(skiatest::Reporter* reporter, const char* filename) { |
+ SkPath path; |
+ path.setFillType(SkPath::kEvenOdd_FillType); |
+ path.moveTo(817.464478f, 11.4644661f); |
+ path.quadTo(818.928955f, 10, 821, 10); |
+ path.lineTo(998, 10); |
+ path.quadTo(999.082947f, 10, 1000, 10.4003992f); |
+ path.lineTo(1000, 13.3527431f); |
+ path.quadTo(999.917603f, 13.2607508f, 999.82843f, 13.1715727f); |
+ path.quadTo(998.65686f, 12, 997, 12); |
+ path.lineTo(822, 12); |
+ path.quadTo(820.34314f, 12, 819.17157f, 13.1715727f); |
+ path.quadTo(818, 14.3431454f, 818, 16); |
+ path.lineTo(818, 28); |
+ path.quadTo(818, 29.6568546f, 819.17157f, 30.8284264f); |
+ path.quadTo(820.34314f, 32, 822, 32); |
+ path.lineTo(997, 32); |
+ path.quadTo(998.65686f, 32, 999.82843f, 30.8284264f); |
+ path.quadTo(999.917603f, 30.7392426f, 1000, 30.6472569f); |
+ path.lineTo(1000, 33.5996017f); |
+ path.quadTo(999.082947f, 34, 998, 34); |
+ path.lineTo(821, 34); |
+ path.quadTo(818.928955f, 34, 817.464478f, 32.5355339f); |
+ path.quadTo(816, 31.0710678f, 816, 29); |
+ path.lineTo(816, 15); |
+ path.quadTo(816, 12.9289322f, 817.464478f, 11.4644661f); |
+ path.close(); |
+ SkPath pathB; |
+ pathB.setFillType(SkPath::kWinding_FillType); |
+ pathB.moveTo(1003, 10); |
+ pathB.lineTo(1000, 13); |
+ pathB.lineTo(999.969971f, 37.0299988f); |
+ pathB.lineTo(1003, 34); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
+} |
+ |
+// fails on angle insert |
+static void skpwww_dealnews_com_315(skiatest::Reporter* reporter, const char* filename) { |
+ SkPath path; |
+ path.setFillType(SkPath::kEvenOdd_FillType); |
+ path.moveTo(966.464478f, 4261.46436f); |
+ path.quadTo(965, 4262.92871f, 965, 4265); |
+ path.lineTo(965, 4276); |
+ path.quadTo(965, 4278.07129f, 966.464478f, 4279.53564f); |
+ path.quadTo(967.928955f, 4281, 970, 4281); |
+ path.lineTo(970.020325f, 4281); |
+ path.lineTo(969.887512f, 4279.81641f); |
+ path.quadTo(968.928284f, 4279.48145f, 968.17157f, 4278.53564f); |
+ path.quadTo(967, 4277.07129f, 967, 4275); |
+ path.lineTo(967, 4266); |
+ path.quadTo(967, 4264.44287f, 968.035217f, 4263.31396f); |
+ path.lineTo(968, 4263); |
+ path.lineTo(966.464478f, 4261.46436f); |
+ path.close(); |
+ SkPath pathB; |
+ pathB.setFillType(SkPath::kWinding_FillType); |
+ pathB.moveTo(965, 4260); |
+ pathB.lineTo(967.716675f, 4260); |
+ pathB.lineTo(970, 4281); |
+ pathB.lineTo(965, 4281); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
+} |
+ |
+// fails in intersections insert |
+static void skpwww_inmotionhosting_com_9(skiatest::Reporter* reporter, const char* filename) { |
+ SkPath path; |
+ path.setFillType(SkPath::kEvenOdd_FillType); |
+ path.moveTo(991.633911f, 1839); |
+ path.lineTo(964.265015f, 1839); |
+ path.lineTo(963.734985f, 1893.73242f); |
+ path.lineTo(991.3703f, 1894); |
+ path.lineTo(1018.23492f, 1894); |
+ path.lineTo(1018.76501f, 1839.2627f); |
+ path.lineTo(991.638184f, 1839); |
+ path.lineTo(991.633911f, 1839); |
+ path.close(); |
+ SkPath pathB; |
+ pathB.setFillType(SkPath::kWinding_FillType); |
+ pathB.moveTo(964.267578f, 1838.73499f); |
+ pathB.lineTo(1019.26501f, 1839.26758f); |
+ pathB.lineTo(1018.73242f, 1894.26501f); |
+ pathB.lineTo(963.734985f, 1893.73242f); |
+ pathB.close(); |
+ testPathOp(reporter, path, pathB, kIntersect_PathOp, filename); |
+} |
+ |
+static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0; |
static struct TestDesc tests[] = { |
+ TEST(skpnamecheap_com_405), |
+ TEST(skpelpais_com_18), |
+ TEST(skpwww_cityads_ru_249), |
+ TEST(skpwww_alrakoba_net_62), |
+ TEST(skpwww_dealnews_com_315), |
+ TEST(skpwww_inmotionhosting_com_9), |
TEST(skpskpicture14), |
-#if TRY_SEPT_BROKEN_TESTS |
TEST(skpskpicture15), |
TEST(skpwww_meb_gov_tr_6), |
TEST(skpwww_sciality_com_101), |
@@ -1611,8 +1761,6 @@ static struct TestDesc tests[] = { |
TEST(skpwww_despegar_com_mx_272), // similar to lavoixdunord |
TEST(skpwww_lavoixdunord_fr_11), // not quite coincident, sorting line/cubic fails |
TEST(skppptv_com_62), // cubic have nearly identical tangents, sort incorrectly |
-#endif |
-#if TRY_BROKEN_TESTS |
TEST(skppchappy_com_au102), |
TEST(skpsciality_com161), |
TEST(skpi_gino_com16), |
@@ -1620,7 +1768,6 @@ static struct TestDesc tests[] = { |
TEST(skptcmevents_org23), // see test for (partial) failure evaluation |
TEST(skpredbullskatearcade_es16), // cubic have nearly identical tangents, sort incorrectly |
TEST(skpfinanzasdigital_com9), // cubic/quad tangents too close to sort |
-#endif |
TEST(skpgithub_io_26), |
TEST(skpgithub_io_25), |
TEST(skpwww_meb_gov_tr_5), |
@@ -1656,7 +1803,7 @@ static struct TestDesc tests[] = { |
static const size_t testCount = SK_ARRAY_COUNT(tests); |
static bool runReverse = false; |
-static void (*stopTest)(skiatest::Reporter* ) = 0; |
+static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0; |
DEF_TEST(PathOpsSkp, reporter) { |
#if DEBUG_SHOW_TEST_NAME |