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

Side by Side Diff: tests/PathOpsSkpTest.cpp

Issue 131103009: update pathops to circle sort (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: disable old test that still fails on linux 32 release Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « tests/PathOpsSkpClipTest.cpp ('k') | tests/Test.cpp » ('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
10 #define TEST(name) { name, #name } 9 #define TEST(name) { name, #name }
11 10
12 static void skpcheeseandburger_com225(skiatest::Reporter* reporter) { 11 static void skpcheeseandburger_com225(skiatest::Reporter* reporter, const char* filename) {
13 SkPath path; 12 SkPath path;
14 path.setFillType(SkPath::kEvenOdd_FillType); 13 path.setFillType(SkPath::kEvenOdd_FillType);
15 path.moveTo(555, 468); 14 path.moveTo(555, 468);
16 path.lineTo(555, 362); 15 path.lineTo(555, 362);
17 path.lineTo(872, 362); 16 path.lineTo(872, 362);
18 path.lineTo(872, 468); 17 path.lineTo(872, 468);
19 path.lineTo(555, 468); 18 path.lineTo(555, 468);
20 path.close(); 19 path.close();
21 SkPath pathB; 20 SkPath pathB;
22 pathB.setFillType(SkPath::kWinding_FillType); 21 pathB.setFillType(SkPath::kWinding_FillType);
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 pathB.cubicTo(717.766663f, 416.906738f, 720.162537f, 415.845551f, 722.354797 f, 414.073608f); 359 pathB.cubicTo(717.766663f, 416.906738f, 720.162537f, 415.845551f, 722.354797 f, 414.073608f);
361 pathB.cubicTo(724.059875f, 412.69397f, 726.55957f, 410.981903f, 730.675537f, 410.124359f); 360 pathB.cubicTo(724.059875f, 412.69397f, 726.55957f, 410.981903f, 730.675537f, 410.124359f);
362 pathB.cubicTo(729.75708f, 409.143066f, 729.213013f, 407.993042f, 729.213013f , 406.683289f); 361 pathB.cubicTo(729.75708f, 409.143066f, 729.213013f, 407.993042f, 729.213013f , 406.683289f);
363 pathB.cubicTo(729.213013f, 399.630402f, 729.209045f, 396.103455f, 729.209045 f, 389.047546f); 362 pathB.cubicTo(729.213013f, 399.630402f, 729.209045f, 396.103455f, 729.209045 f, 389.047546f);
364 pathB.cubicTo(729.209045f, 387.648956f, 730.577698f, 385.292023f, 730.583679 f, 385.149261f); 363 pathB.cubicTo(729.209045f, 387.648956f, 730.577698f, 385.292023f, 730.583679 f, 385.149261f);
365 pathB.cubicTo(730.583679f, 385.149261f, 720.888306f, 378.762207f, 719.609497 f, 378.947906f); 364 pathB.cubicTo(730.583679f, 385.149261f, 720.888306f, 378.762207f, 719.609497 f, 378.947906f);
366 pathB.cubicTo(719.275085f, 378.996826f, 717.872498f, 381.118164f, 716.868225 f, 381.896851f); 365 pathB.cubicTo(719.275085f, 378.996826f, 717.872498f, 381.118164f, 716.868225 f, 381.896851f);
367 pathB.lineTo(716.868225f, 365.046783f); 366 pathB.lineTo(716.868225f, 365.046783f);
368 pathB.cubicTo(716.868225f, 363.740021f, 716.960083f, 363.043213f, 717.597961 f, 362); 367 pathB.cubicTo(716.868225f, 363.740021f, 716.960083f, 363.043213f, 717.597961 f, 362);
369 pathB.cubicTo(715.331848f, 363.104095f, 714.19873f, 363.657166f, 711.928711f , 364.782227f); 368 pathB.cubicTo(715.331848f, 363.104095f, 714.19873f, 363.657166f, 711.928711f , 364.782227f);
370 testPathOp(reporter, path, pathB, kIntersect_PathOp); 369 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
371 } 370 }
372 371
373 static void skpeverytechpro_blogspot_com100(skiatest::Reporter* reporter) { 372 static void skpeverytechpro_blogspot_com100(skiatest::Reporter* reporter, const char* filename) {
374 SkPath path; 373 SkPath path;
375 path.setFillType(SkPath::kEvenOdd_FillType); 374 path.setFillType(SkPath::kEvenOdd_FillType);
376 path.moveTo(1074.29285f, 627.292786f); 375 path.moveTo(1074.29285f, 627.292786f);
377 path.quadTo(1074.58582f, 627, 1075, 627); 376 path.quadTo(1074.58582f, 627, 1075, 627);
378 path.lineTo(1117, 627); 377 path.lineTo(1117, 627);
379 path.quadTo(1124.04163f, 627, 1129.02246f, 631.9776f); 378 path.quadTo(1124.04163f, 627, 1129.02246f, 631.9776f);
380 path.quadTo(1134, 636.958374f, 1134, 644); 379 path.quadTo(1134, 636.958374f, 1134, 644);
381 path.lineTo(1134, 645); 380 path.lineTo(1134, 645);
382 path.quadTo(1134, 652.041626f, 1129.02246f, 657.0224f); 381 path.quadTo(1134, 652.041626f, 1129.02246f, 657.0224f);
383 path.quadTo(1124.04163f, 662, 1117, 662); 382 path.quadTo(1124.04163f, 662, 1117, 662);
(...skipping 10 matching lines...) Expand all
394 path.cubicTo(1132, 653.284302f, 1125.2843f, 660, 1117, 660); 393 path.cubicTo(1132, 653.284302f, 1125.2843f, 660, 1117, 660);
395 path.lineTo(1076, 660); 394 path.lineTo(1076, 660);
396 path.lineTo(1076, 629); 395 path.lineTo(1076, 629);
397 path.close(); 396 path.close();
398 SkPath pathB; 397 SkPath pathB;
399 pathB.setFillType(SkPath::kWinding_FillType); 398 pathB.setFillType(SkPath::kWinding_FillType);
400 pathB.moveTo(1074, 627); 399 pathB.moveTo(1074, 627);
401 pathB.lineTo(1075, 628); 400 pathB.lineTo(1075, 628);
402 pathB.lineTo(1116.5f, 644.5f); 401 pathB.lineTo(1116.5f, 644.5f);
403 pathB.lineTo(1134, 627); 402 pathB.lineTo(1134, 627);
404 testPathOp(reporter, path, pathB, kIntersect_PathOp); 403 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
405 } 404 }
406 405
407 static void skpflite_com41(skiatest::Reporter* reporter) { 406 static void skpflite_com41(skiatest::Reporter* reporter, const char* filename) {
408 SkPath path; 407 SkPath path;
409 path.setFillType(SkPath::kEvenOdd_FillType); 408 path.setFillType(SkPath::kEvenOdd_FillType);
410 path.moveTo(301.464081f, 424); 409 path.moveTo(301.464081f, 424);
411 path.lineTo(296, 433.46405f); 410 path.lineTo(296, 433.46405f);
412 path.lineTo(296, 433.810822f); 411 path.lineTo(296, 433.810822f);
413 path.lineTo(303.25589f, 438); 412 path.lineTo(303.25589f, 438);
414 path.lineTo(304.729736f, 438); 413 path.lineTo(304.729736f, 438);
415 path.lineTo(311, 427.139557f); 414 path.lineTo(311, 427.139557f);
416 path.lineTo(311, 426.305237f); 415 path.lineTo(311, 426.305237f);
417 path.lineTo(307.007202f, 424); 416 path.lineTo(307.007202f, 424);
418 path.lineTo(301.464081f, 424); 417 path.lineTo(301.464081f, 424);
419 path.close(); 418 path.close();
420 SkPath pathB; 419 SkPath pathB;
421 pathB.setFillType(SkPath::kWinding_FillType); 420 pathB.setFillType(SkPath::kWinding_FillType);
422 pathB.moveTo(302.849854f, 421.599762f); 421 pathB.moveTo(302.849854f, 421.599762f);
423 pathB.lineTo(311.510101f, 426.599762f); 422 pathB.lineTo(311.510101f, 426.599762f);
424 pathB.lineTo(304.510101f, 438.724121f); 423 pathB.lineTo(304.510101f, 438.724121f);
425 pathB.lineTo(295.849854f, 433.724121f); 424 pathB.lineTo(295.849854f, 433.724121f);
426 pathB.close(); 425 pathB.close();
427 testPathOp(reporter, path, pathB, kIntersect_PathOp); 426 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
428 } 427 }
429 428
430 static void skpilkoora_com37(skiatest::Reporter* reporter) { 429 static void skpilkoora_com37(skiatest::Reporter* reporter, const char* filename) {
431 SkPath path; 430 SkPath path;
432 path.setFillType(SkPath::kEvenOdd_FillType); 431 path.setFillType(SkPath::kEvenOdd_FillType);
433 path.moveTo(818, 157); 432 path.moveTo(818, 157);
434 path.cubicTo(818, 148.715729f, 824.715698f, 142, 833, 142); 433 path.cubicTo(818, 148.715729f, 824.715698f, 142, 833, 142);
435 path.lineTo(909, 142); 434 path.lineTo(909, 142);
436 path.lineTo(909, 143); 435 path.lineTo(909, 143);
437 path.lineTo(833, 143); 436 path.lineTo(833, 143);
438 path.cubicTo(825.268005f, 143, 819, 149.268005f, 819, 157); 437 path.cubicTo(825.268005f, 143, 819, 149.268005f, 819, 157);
439 path.lineTo(819, 926); 438 path.lineTo(819, 926);
440 path.lineTo(818, 926); 439 path.lineTo(818, 926);
441 path.lineTo(818, 157); 440 path.lineTo(818, 157);
442 path.close(); 441 path.close();
443 path.moveTo(1184, 926); 442 path.moveTo(1184, 926);
444 path.lineTo(1185, 926); 443 path.lineTo(1185, 926);
445 path.lineTo(1185, 157); 444 path.lineTo(1185, 157);
446 path.cubicTo(1185, 148.715729f, 1178.2843f, 142, 1170, 142); 445 path.cubicTo(1185, 148.715729f, 1178.2843f, 142, 1170, 142);
447 path.lineTo(1093, 142); 446 path.lineTo(1093, 142);
448 path.lineTo(1093, 143); 447 path.lineTo(1093, 143);
449 path.lineTo(1170, 143); 448 path.lineTo(1170, 143);
450 path.cubicTo(1177.73193f, 143, 1184, 149.268005f, 1184, 157); 449 path.cubicTo(1177.73193f, 143, 1184, 149.268005f, 1184, 157);
451 path.lineTo(1184, 926); 450 path.lineTo(1184, 926);
452 path.close(); 451 path.close();
453 SkPath pathB; 452 SkPath pathB;
454 pathB.setFillType(SkPath::kWinding_FillType); 453 pathB.setFillType(SkPath::kWinding_FillType);
455 pathB.moveTo(1185, 142); 454 pathB.moveTo(1185, 142);
456 pathB.lineTo(1001.5f, 325.5f); 455 pathB.lineTo(1001.5f, 325.5f);
457 pathB.lineTo(1001.5f, 782.5f); 456 pathB.lineTo(1001.5f, 782.5f);
458 pathB.lineTo(1185, 966); 457 pathB.lineTo(1185, 966);
459 testPathOp(reporter, path, pathB, kIntersect_PathOp); 458 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
460 } 459 }
461 460
462 static void skpmm4everfriends_com43(skiatest::Reporter* reporter) { 461 static void skpmm4everfriends_com43(skiatest::Reporter* reporter, const char* fi lename) {
463 SkPath path; 462 SkPath path;
464 path.setFillType(SkPath::kEvenOdd_FillType); 463 path.setFillType(SkPath::kEvenOdd_FillType);
465 path.moveTo(540.74231f, 215.922546f); 464 path.moveTo(540.74231f, 215.922546f);
466 path.cubicTo(540.893127f, 215.391159f, 541.443909f, 215.090134f, 541.972473f , 215.250168f); 465 path.cubicTo(540.893127f, 215.391159f, 541.443909f, 215.090134f, 541.972473f , 215.250168f);
467 path.lineTo(581.213318f, 227.131104f); 466 path.lineTo(581.213318f, 227.131104f);
468 path.cubicTo(581.741882f, 227.291153f, 582.048157f, 227.851654f, 581.897339f , 228.383041f); 467 path.cubicTo(581.741882f, 227.291153f, 582.048157f, 227.851654f, 581.897339f , 228.383041f);
469 path.lineTo(576.708923f, 246.663925f); 468 path.lineTo(576.708923f, 246.663925f);
470 path.cubicTo(576.558167f, 247.195297f, 576.007324f, 247.496338f, 575.47876f, 247.336288f); 469 path.cubicTo(576.558167f, 247.195297f, 576.007324f, 247.496338f, 575.47876f, 247.336288f);
471 path.lineTo(536.237915f, 235.455353f); 470 path.lineTo(536.237915f, 235.455353f);
472 path.cubicTo(535.709351f, 235.295319f, 535.403137f, 234.734802f, 535.553894f , 234.20343f); 471 path.cubicTo(535.709351f, 235.295319f, 535.403137f, 234.734802f, 535.553894f , 234.20343f);
473 path.lineTo(540.74231f, 215.922546f); 472 path.lineTo(540.74231f, 215.922546f);
474 path.close(); 473 path.close();
475 SkPath pathB; 474 SkPath pathB;
476 pathB.setFillType(SkPath::kWinding_FillType); 475 pathB.setFillType(SkPath::kWinding_FillType);
477 pathB.moveTo(541.015381f, 214.960388f); 476 pathB.moveTo(541.015381f, 214.960388f);
478 pathB.lineTo(582.17041f, 227.420883f); 477 pathB.lineTo(582.17041f, 227.420883f);
479 pathB.lineTo(576.435852f, 247.626068f); 478 pathB.lineTo(576.435852f, 247.626068f);
480 pathB.lineTo(535.280823f, 235.165573f); 479 pathB.lineTo(535.280823f, 235.165573f);
481 pathB.close(); 480 pathB.close();
482 testPathOp(reporter, path, pathB, kIntersect_PathOp); 481 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
483 } 482 }
484 483
485 static void skpmtrk_uz27(skiatest::Reporter* reporter) { 484 static void skpmtrk_uz27(skiatest::Reporter* reporter, const char* filename) {
486 SkPath path; 485 SkPath path;
487 path.setFillType(SkPath::kEvenOdd_FillType); 486 path.setFillType(SkPath::kEvenOdd_FillType);
488 path.moveTo(33, 787); 487 path.moveTo(33, 787);
489 path.lineTo(33, 412); 488 path.lineTo(33, 412);
490 path.lineTo(1233, 412); 489 path.lineTo(1233, 412);
491 path.lineTo(1233, 787); 490 path.lineTo(1233, 787);
492 path.quadTo(1233, 793.213196f, 1228.60803f, 797.607971f); 491 path.quadTo(1233, 793.213196f, 1228.60803f, 797.607971f);
493 path.quadTo(1224.21326f, 802, 1218, 802); 492 path.quadTo(1224.21326f, 802, 1218, 802);
494 path.lineTo(48, 802); 493 path.lineTo(48, 802);
495 path.quadTo(41.7867966f, 802, 37.3919983f, 797.607971f); 494 path.quadTo(41.7867966f, 802, 37.3919983f, 797.607971f);
496 path.quadTo(33, 793.213196f, 33, 787); 495 path.quadTo(33, 793.213196f, 33, 787);
497 path.close(); 496 path.close();
498 SkPath pathB; 497 SkPath pathB;
499 pathB.setFillType(SkPath::kWinding_FillType); 498 pathB.setFillType(SkPath::kWinding_FillType);
500 pathB.moveTo(33, 412); 499 pathB.moveTo(33, 412);
501 pathB.lineTo(1233, 412); 500 pathB.lineTo(1233, 412);
502 pathB.lineTo(1233, 787); 501 pathB.lineTo(1233, 787);
503 pathB.quadTo(1233, 793.213196f, 1228.60791f, 797.608032f); 502 pathB.quadTo(1233, 793.213196f, 1228.60791f, 797.608032f);
504 pathB.quadTo(1224.21313f, 802, 1218, 802); 503 pathB.quadTo(1224.21313f, 802, 1218, 802);
505 pathB.lineTo(48, 802); 504 pathB.lineTo(48, 802);
506 pathB.quadTo(41.7867432f, 802, 37.3919678f, 797.608032f); 505 pathB.quadTo(41.7867432f, 802, 37.3919678f, 797.608032f);
507 pathB.quadTo(33, 793.213196f, 33, 787); 506 pathB.quadTo(33, 793.213196f, 33, 787);
508 pathB.close(); 507 pathB.close();
509 testPathOp(reporter, path, pathB, kIntersect_PathOp); 508 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
510 } 509 }
511 510
512 static void skpfrauen_magazin_com83(skiatest::Reporter* reporter) { 511 static void skpfrauen_magazin_com83(skiatest::Reporter* reporter, const char* fi lename) {
513 SkPath path; 512 SkPath path;
514 path.setFillType(SkPath::kEvenOdd_FillType); 513 path.setFillType(SkPath::kEvenOdd_FillType);
515 path.moveTo(808, 886); 514 path.moveTo(808, 886);
516 path.cubicTo(805.581055f, 886, 803.563293f, 887.717773f, 803.100037f, 890); 515 path.cubicTo(805.581055f, 886, 803.563293f, 887.717773f, 803.100037f, 890);
517 path.lineTo(1122.90002f, 890); 516 path.lineTo(1122.90002f, 890);
518 path.cubicTo(1122.43677f, 887.717773f, 1120.41895f, 886, 1118, 886); 517 path.cubicTo(1122.43677f, 887.717773f, 1120.41895f, 886, 1118, 886);
519 path.lineTo(808, 886); 518 path.lineTo(808, 886);
520 path.close(); 519 path.close();
521 SkPath pathB; 520 SkPath pathB;
522 pathB.setFillType(SkPath::kInverseWinding_FillType); 521 pathB.setFillType(SkPath::kInverseWinding_FillType);
523 pathB.moveTo(808, 886); 522 pathB.moveTo(808, 886);
524 pathB.lineTo(1118, 886); 523 pathB.lineTo(1118, 886);
525 pathB.cubicTo(1120.76147f, 886, 1123, 888.238586f, 1123, 891); 524 pathB.cubicTo(1120.76147f, 886, 1123, 888.238586f, 1123, 891);
526 pathB.lineTo(1123, 1521); 525 pathB.lineTo(1123, 1521);
527 pathB.cubicTo(1123, 1523.20911f, 1120.76147f, 1525, 1118, 1525); 526 pathB.cubicTo(1123, 1523.20911f, 1120.76147f, 1525, 1118, 1525);
528 pathB.lineTo(808, 1525); 527 pathB.lineTo(808, 1525);
529 pathB.cubicTo(805.238586f, 1525, 803, 1523.20911f, 803, 1521); 528 pathB.cubicTo(805.238586f, 1525, 803, 1523.20911f, 803, 1521);
530 pathB.lineTo(803, 891); 529 pathB.lineTo(803, 891);
531 pathB.cubicTo(803, 888.238586f, 805.238586f, 886, 808, 886); 530 pathB.cubicTo(803, 888.238586f, 805.238586f, 886, 808, 886);
532 pathB.close(); 531 pathB.close();
533 testPathOp(reporter, path, pathB, kIntersect_PathOp); 532 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
534 } 533 }
535 534
536 #define TRY_BROKEN_TESTS 0 535 static void skpi_gino_com16(skiatest::Reporter* reporter, const char* filename) {
537 #if TRY_BROKEN_TESTS
538 static void skpi_gino_com16(skiatest::Reporter* reporter) {
539 SkPath path; 536 SkPath path;
540 path.setFillType(SkPath::kEvenOdd_FillType); 537 path.setFillType(SkPath::kEvenOdd_FillType);
541 path.moveTo(184, 734); 538 path.moveTo(184, 734);
542 path.quadTo(133.051727f, 734, 97.0258636f, 770.025879f); 539 path.quadTo(133.051727f, 734, 97.0258636f, 770.025879f);
543 path.quadTo(61, 806.051758f, 61, 857); 540 path.quadTo(61, 806.051758f, 61, 857);
544 path.quadTo(61, 895.835083f, 81.9317017f, 926); 541 path.quadTo(61, 895.835083f, 81.9317017f, 926);
545 path.lineTo(286.068298f, 926); 542 path.lineTo(286.068298f, 926);
546 path.quadTo(307, 895.835083f, 307, 857); 543 path.quadTo(307, 895.835083f, 307, 857);
547 path.quadTo(307, 806.051758f, 270.974121f, 770.025879f); 544 path.quadTo(307, 806.051758f, 270.974121f, 770.025879f);
548 path.quadTo(234.948273f, 734, 184, 734); 545 path.quadTo(234.948273f, 734, 184, 734);
549 path.close(); 546 path.close();
550 SkPath pathB; 547 SkPath pathB;
551 pathB.setFillType(SkPath::kWinding_FillType); 548 pathB.setFillType(SkPath::kWinding_FillType);
552 pathB.moveTo(185, 734); 549 pathB.moveTo(185, 734);
553 pathB.cubicTo(252.93103f, 734, 308, 789.06897f, 308, 857); 550 pathB.cubicTo(252.93103f, 734, 308, 789.06897f, 308, 857);
554 pathB.cubicTo(308, 924.93103f, 252.93103f, 980, 185, 980); 551 pathB.cubicTo(308, 924.93103f, 252.93103f, 980, 185, 980);
555 pathB.lineTo(184, 980); 552 pathB.lineTo(184, 980);
556 pathB.cubicTo(116.068977f, 980, 61, 924.93103f, 61, 857); 553 pathB.cubicTo(116.068977f, 980, 61, 924.93103f, 61, 857);
557 pathB.cubicTo(61, 789.06897f, 116.068977f, 734, 184, 734); 554 pathB.cubicTo(61, 789.06897f, 116.068977f, 734, 184, 734);
558 pathB.lineTo(185, 734); 555 pathB.lineTo(185, 734);
559 pathB.close(); 556 pathB.close();
560 testPathOp(reporter, path, pathB, kIntersect_PathOp); 557 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
561 } 558 }
562 559
563 static void skppchappy_com_au102(skiatest::Reporter* reporter) { 560 static void skppchappy_com_au102(skiatest::Reporter* reporter, const char* filen ame) {
564 SkPath path; 561 SkPath path;
565 path.setFillType(SkPath::kEvenOdd_FillType); 562 path.setFillType(SkPath::kEvenOdd_FillType);
566 path.moveTo(363, 493); 563 path.moveTo(363, 493);
567 path.cubicTo(360.790863f, 493, 359, 494.790863f, 359, 497); 564 path.cubicTo(360.790863f, 493, 359, 494.790863f, 359, 497);
568 path.lineTo(359, 656); 565 path.lineTo(359, 656);
569 path.cubicTo(359, 658.209106f, 360.790863f, 660, 363, 660); 566 path.cubicTo(359, 658.209106f, 360.790863f, 660, 363, 660);
570 path.lineTo(623.001709f, 660); 567 path.lineTo(623.001709f, 660);
571 path.cubicTo(624.657776f, 659.999023f, 626, 658.65625f, 626, 657); 568 path.cubicTo(624.657776f, 659.999023f, 626, 658.65625f, 626, 657);
572 path.lineTo(626, 496); 569 path.lineTo(626, 496);
573 path.cubicTo(626, 494.343872f, 624.657959f, 493.00116f, 623.002075f, 493); 570 path.cubicTo(626, 494.343872f, 624.657959f, 493.00116f, 623.002075f, 493);
574 path.lineTo(363, 493); 571 path.lineTo(363, 493);
575 path.close(); 572 path.close();
576 SkPath pathB; 573 SkPath pathB;
577 pathB.setFillType(SkPath::kInverseWinding_FillType); 574 pathB.setFillType(SkPath::kInverseWinding_FillType);
578 pathB.moveTo(362, 494); 575 pathB.moveTo(362, 494);
579 pathB.lineTo(623, 494); 576 pathB.lineTo(623, 494);
580 pathB.cubicTo(624.65686f, 494, 626, 494.895416f, 626, 496); 577 pathB.cubicTo(624.65686f, 494, 626, 494.895416f, 626, 496);
581 pathB.lineTo(626, 657); 578 pathB.lineTo(626, 657);
582 pathB.cubicTo(626, 658.65686f, 624.65686f, 660, 623, 660); 579 pathB.cubicTo(626, 658.65686f, 624.65686f, 660, 623, 660);
583 pathB.lineTo(362, 660); 580 pathB.lineTo(362, 660);
584 pathB.cubicTo(360.34314f, 660, 359, 658.65686f, 359, 657); 581 pathB.cubicTo(360.34314f, 660, 359, 658.65686f, 359, 657);
585 pathB.lineTo(359, 496); 582 pathB.lineTo(359, 496);
586 pathB.cubicTo(359, 494.895416f, 360.34314f, 494, 362, 494); 583 pathB.cubicTo(359, 494.895416f, 360.34314f, 494, 362, 494);
587 pathB.close(); 584 pathB.close();
588 testPathOp(reporter, path, pathB, kIntersect_PathOp); 585 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
589 } 586 }
590 587
591 static void skpsciality_com161(skiatest::Reporter* reporter) { 588 static void skpsciality_com161(skiatest::Reporter* reporter, const char* filenam e) {
592 SkPath path; 589 SkPath path;
593 path.setFillType(SkPath::kEvenOdd_FillType); 590 path.setFillType(SkPath::kEvenOdd_FillType);
594 path.moveTo(656, 728); 591 path.moveTo(656, 728);
595 path.cubicTo(653.790833f, 728, 652, 729.790833f, 652, 732); 592 path.cubicTo(653.790833f, 728, 652, 729.790833f, 652, 732);
596 path.lineTo(652, 789); 593 path.lineTo(652, 789);
597 path.cubicTo(652, 791.209106f, 653.790833f, 793, 656, 793); 594 path.cubicTo(652, 791.209106f, 653.790833f, 793, 656, 793);
598 path.lineTo(769.001282f, 793); 595 path.lineTo(769.001282f, 793);
599 path.cubicTo(770.657532f, 792.999268f, 772, 791.656433f, 772, 790); 596 path.cubicTo(770.657532f, 792.999268f, 772, 791.656433f, 772, 790);
600 path.lineTo(772, 731); 597 path.lineTo(772, 731);
601 path.cubicTo(772, 729.34314f, 770.65686f, 728, 769, 728); 598 path.cubicTo(772, 729.34314f, 770.65686f, 728, 769, 728);
602 path.lineTo(656, 728); 599 path.lineTo(656, 728);
603 path.close(); 600 path.close();
604 SkPath pathB; 601 SkPath pathB;
605 pathB.setFillType(SkPath::kInverseWinding_FillType); 602 pathB.setFillType(SkPath::kInverseWinding_FillType);
606 pathB.moveTo(655, 729); 603 pathB.moveTo(655, 729);
607 pathB.lineTo(769, 729); 604 pathB.lineTo(769, 729);
608 pathB.cubicTo(770.65686f, 729, 772, 729.895447f, 772, 731); 605 pathB.cubicTo(770.65686f, 729, 772, 729.895447f, 772, 731);
609 pathB.lineTo(772, 790); 606 pathB.lineTo(772, 790);
610 pathB.cubicTo(772, 791.65686f, 770.65686f, 793, 769, 793); 607 pathB.cubicTo(772, 791.65686f, 770.65686f, 793, 769, 793);
611 pathB.lineTo(655, 793); 608 pathB.lineTo(655, 793);
612 pathB.cubicTo(653.34314f, 793, 652, 791.65686f, 652, 790); 609 pathB.cubicTo(653.34314f, 793, 652, 791.65686f, 652, 790);
613 pathB.lineTo(652, 731); 610 pathB.lineTo(652, 731);
614 pathB.cubicTo(652, 729.895447f, 653.34314f, 729, 655, 729); 611 pathB.cubicTo(652, 729.895447f, 653.34314f, 729, 655, 729);
615 pathB.close(); 612 pathB.close();
616 testPathOp(reporter, path, pathB, kIntersect_PathOp); 613 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
617 } 614 }
618 #endif
619 615
620 static void skpsudoestenegocios_com186(skiatest::Reporter* reporter) { 616 static void skpsudoestenegocios_com186(skiatest::Reporter* reporter, const char* filename) {
621 SkPath path; 617 SkPath path;
622 path.setFillType(SkPath::kEvenOdd_FillType); 618 path.setFillType(SkPath::kEvenOdd_FillType);
623 path.moveTo(0, 495); 619 path.moveTo(0, 495);
624 path.lineTo(1.23685242e-14f, 293); 620 path.lineTo(1.23685242e-14f, 293);
625 path.lineTo(44, 293); 621 path.lineTo(44, 293);
626 path.quadTo(45.6568527f, 293, 46.8288002f, 294.171204f); 622 path.quadTo(45.6568527f, 293, 46.8288002f, 294.171204f);
627 path.quadTo(48, 295.34314f, 48, 297); 623 path.quadTo(48, 295.34314f, 48, 297);
628 path.lineTo(48, 491); 624 path.lineTo(48, 491);
629 path.quadTo(48, 492.65686f, 46.8288002f, 493.828796f); 625 path.quadTo(48, 492.65686f, 46.8288002f, 493.828796f);
630 path.quadTo(45.6568527f, 495, 44, 495); 626 path.quadTo(45.6568527f, 495, 44, 495);
631 path.lineTo(0, 495); 627 path.lineTo(0, 495);
632 path.close(); 628 path.close();
633 path.moveTo(1, 294); 629 path.moveTo(1, 294);
634 path.lineTo(44, 294); 630 path.lineTo(44, 294);
635 path.cubicTo(45.6568565f, 294, 47, 295.34314f, 47, 297); 631 path.cubicTo(45.6568565f, 294, 47, 295.34314f, 47, 297);
636 path.lineTo(47, 491); 632 path.lineTo(47, 491);
637 path.cubicTo(47, 492.65686f, 45.6568565f, 494, 44, 494); 633 path.cubicTo(47, 492.65686f, 45.6568565f, 494, 44, 494);
638 path.lineTo(1, 494); 634 path.lineTo(1, 494);
639 path.lineTo(1, 294); 635 path.lineTo(1, 294);
640 path.close(); 636 path.close();
641 SkPath pathB; 637 SkPath pathB;
642 pathB.setFillType(SkPath::kWinding_FillType); 638 pathB.setFillType(SkPath::kWinding_FillType);
643 pathB.moveTo(48, 495); 639 pathB.moveTo(48, 495);
644 pathB.lineTo(24, 471); 640 pathB.lineTo(24, 471);
645 pathB.lineTo(24, 317); 641 pathB.lineTo(24, 317);
646 pathB.lineTo(48, 293); 642 pathB.lineTo(48, 293);
647 testPathOp(reporter, path, pathB, kIntersect_PathOp); 643 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
648 } 644 }
649 645
650 static void skpthesuburbanite_com213(skiatest::Reporter* reporter) { 646 static void skpthesuburbanite_com213(skiatest::Reporter* reporter, const char* f ilename) {
651 SkPath path; 647 SkPath path;
652 path.setFillType(SkPath::kEvenOdd_FillType); 648 path.setFillType(SkPath::kEvenOdd_FillType);
653 path.moveTo(863.439026f, 692); 649 path.moveTo(863.439026f, 692);
654 path.lineTo(863.283264f, 692); 650 path.lineTo(863.283264f, 692);
655 path.lineTo(802, 708.420837f); 651 path.lineTo(802, 708.420837f);
656 path.lineTo(802, 718.773621f); 652 path.lineTo(802, 718.773621f);
657 path.lineTo(866, 701.624817f); 653 path.lineTo(866, 701.624817f);
658 path.lineTo(866, 701.557922f); 654 path.lineTo(866, 701.557922f);
659 path.lineTo(863.439026f, 692); 655 path.lineTo(863.439026f, 692);
660 path.close(); 656 path.close();
661 SkPath pathB; 657 SkPath pathB;
662 pathB.setFillType(SkPath::kWinding_FillType); 658 pathB.setFillType(SkPath::kWinding_FillType);
663 pathB.moveTo(783.256775f, 713.443054f); 659 pathB.moveTo(783.256775f, 713.443054f);
664 pathB.lineTo(863.428589f, 691.96106f); 660 pathB.lineTo(863.428589f, 691.96106f);
665 pathB.lineTo(866.016724f, 701.620361f); 661 pathB.lineTo(866.016724f, 701.620361f);
666 pathB.lineTo(785.84491f, 723.102356f); 662 pathB.lineTo(785.84491f, 723.102356f);
667 pathB.close(); 663 pathB.close();
668 testPathOp(reporter, path, pathB, kIntersect_PathOp); 664 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
669 } 665 }
670 666
671 static void skphostloco_com11(skiatest::Reporter* reporter) { 667 static void skphostloco_com11(skiatest::Reporter* reporter, const char* filename ) {
672 SkPath path; 668 SkPath path;
673 path.setFillType(SkPath::kEvenOdd_FillType); 669 path.setFillType(SkPath::kEvenOdd_FillType);
674 path.moveTo(6.66133815e-16f, 648); 670 path.moveTo(6.66133815e-16f, 648);
675 path.lineTo(25.8522835f, 648); 671 path.lineTo(25.8522835f, 648);
676 path.quadTo(27.5087376f, 647.999634f, 28.6807098f, 646.82843f); 672 path.quadTo(27.5087376f, 647.999634f, 28.6807098f, 646.82843f);
677 path.quadTo(29.8518829f, 645.656433f, 29.8522835f, 644); 673 path.quadTo(29.8518829f, 645.656433f, 29.8522835f, 644);
678 path.lineTo(29.8522835f, 467); 674 path.lineTo(29.8522835f, 467);
679 path.quadTo(29.8518829f, 465.343536f, 28.6807098f, 464.17157f); 675 path.quadTo(29.8518829f, 465.343536f, 28.6807098f, 464.17157f);
680 path.quadTo(27.5087376f, 463.000397f, 25.8522835f, 463); 676 path.quadTo(27.5087376f, 463.000397f, 25.8522835f, 463);
681 path.lineTo(2.22044605e-16f, 463); 677 path.lineTo(2.22044605e-16f, 463);
682 path.lineTo(6.66133815e-16f, 648); 678 path.lineTo(6.66133815e-16f, 648);
683 path.close(); 679 path.close();
684 SkPath pathB; 680 SkPath pathB;
685 pathB.setFillType(SkPath::kWinding_FillType); 681 pathB.setFillType(SkPath::kWinding_FillType);
686 pathB.moveTo(0, 463); 682 pathB.moveTo(0, 463);
687 pathB.lineTo(30, 463); 683 pathB.lineTo(30, 463);
688 pathB.lineTo(30, 648); 684 pathB.lineTo(30, 648);
689 pathB.lineTo(0, 648); 685 pathB.lineTo(0, 648);
690 pathB.close(); 686 pathB.close();
691 testPathOp(reporter, path, pathB, kIntersect_PathOp); 687 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
692 } 688 }
693 689
694 static void skpsergeychunkevich_com8(skiatest::Reporter* reporter) { 690 static void skpsergeychunkevich_com8(skiatest::Reporter* reporter, const char* f ilename) {
695 SkPath path; 691 SkPath path;
696 path.setFillType(SkPath::kEvenOdd_FillType); 692 path.setFillType(SkPath::kEvenOdd_FillType);
697 path.moveTo(0, 926); 693 path.moveTo(0, 926);
698 path.lineTo(0, 0); 694 path.lineTo(0, 0);
699 path.lineTo(1265, 0); 695 path.lineTo(1265, 0);
700 path.lineTo(1265, 926); 696 path.lineTo(1265, 926);
701 path.lineTo(0, 926); 697 path.lineTo(0, 926);
702 path.close(); 698 path.close();
703 SkPath pathB; 699 SkPath pathB;
704 pathB.setFillType(SkPath::kInverseWinding_FillType); 700 pathB.setFillType(SkPath::kInverseWinding_FillType);
705 pathB.moveTo(37, 374); 701 pathB.moveTo(37, 374);
706 pathB.lineTo(37, 535); 702 pathB.lineTo(37, 535);
707 pathB.cubicTo(37, 536.65686f, 35.6568565f, 538, 34, 538); 703 pathB.cubicTo(37, 536.65686f, 35.6568565f, 538, 34, 538);
708 pathB.lineTo(1.02866934e-14f, 538); 704 pathB.lineTo(1.02866934e-14f, 538);
709 pathB.lineTo(6.12303177e-17f, 371); 705 pathB.lineTo(6.12303177e-17f, 371);
710 pathB.lineTo(34, 371); 706 pathB.lineTo(34, 371);
711 pathB.cubicTo(35.6568565f, 371, 37, 372.34314f, 37, 374); 707 pathB.cubicTo(35.6568565f, 371, 37, 372.34314f, 37, 374);
712 pathB.close(); 708 pathB.close();
713 testPathOp(reporter, path, pathB, kIntersect_PathOp); 709 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
714 } 710 }
715 711
716 static void skptracksflow_com9(skiatest::Reporter* reporter) { 712 static void skptracksflow_com9(skiatest::Reporter* reporter, const char* filenam e) {
717 SkPath path; 713 SkPath path;
718 path.setFillType(SkPath::kEvenOdd_FillType); 714 path.setFillType(SkPath::kEvenOdd_FillType);
719 path.moveTo(16, 56); 715 path.moveTo(16, 56);
720 path.lineTo(32, 56); 716 path.lineTo(32, 56);
721 path.lineTo(32, 72); 717 path.lineTo(32, 72);
722 path.lineTo(16, 72); 718 path.lineTo(16, 72);
723 path.lineTo(16, 56); 719 path.lineTo(16, 56);
724 path.close(); 720 path.close();
725 SkPath pathB; 721 SkPath pathB;
726 pathB.setFillType(SkPath::kEvenOdd_FillType); 722 pathB.setFillType(SkPath::kEvenOdd_FillType);
(...skipping 10 matching lines...) Expand all
737 pathB.cubicTo(30.2668133f, 71.875f, 30.5524693f, 71.9992828f, 30.868f, 71.99 92828f); 733 pathB.cubicTo(30.2668133f, 71.875f, 30.5524693f, 71.9992828f, 30.868f, 71.99 92828f);
738 pathB.cubicTo(31.4994049f, 71.9992828f, 32.0014687f, 71.4909363f, 32.0014687 f, 70.8595276f); 734 pathB.cubicTo(31.4994049f, 71.9992828f, 32.0014687f, 71.4909363f, 32.0014687 f, 70.8595276f);
739 pathB.cubicTo(32.0015335f, 70.5439072f, 31.875f, 70.2623444f, 31.65625f, 70. 0555649f); 735 pathB.cubicTo(32.0015335f, 70.5439072f, 31.875f, 70.2623444f, 31.65625f, 70. 0555649f);
740 pathB.close(); 736 pathB.close();
741 pathB.moveTo(18.0054054f, 62.0027809f); 737 pathB.moveTo(18.0054054f, 62.0027809f);
742 pathB.cubicTo(18.0054054f, 59.7925949f, 19.7970943f, 58.0009079f, 22.0072823 f, 58.0009079f); 738 pathB.cubicTo(18.0054054f, 59.7925949f, 19.7970943f, 58.0009079f, 22.0072823 f, 58.0009079f);
743 pathB.cubicTo(24.2174377f, 58.0009079f, 26.0091248f, 59.7925949f, 26.0091248 f, 62.0027809f); 739 pathB.cubicTo(24.2174377f, 58.0009079f, 26.0091248f, 59.7925949f, 26.0091248 f, 62.0027809f);
744 pathB.cubicTo(26.0091248f, 64.2129364f, 24.2174377f, 66.0046234f, 22.0072803 f, 66.0046234f); 740 pathB.cubicTo(26.0091248f, 64.2129364f, 24.2174377f, 66.0046234f, 22.0072803 f, 66.0046234f);
745 pathB.cubicTo(19.7970943f, 66.0045929f, 18.0054054f, 64.2129059f, 18.0054054 f, 62.0027809f); 741 pathB.cubicTo(19.7970943f, 66.0045929f, 18.0054054f, 64.2129059f, 18.0054054 f, 62.0027809f);
746 pathB.close(); 742 pathB.close();
747 testPathOp(reporter, path, pathB, kIntersect_PathOp); 743 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
748 } 744 }
749 745
750 static void skpautobutler_dk29(skiatest::Reporter* reporter) { 746 static void skpautobutler_dk29(skiatest::Reporter* reporter, const char* filenam e) {
751 SkPath path; 747 SkPath path;
752 path.setFillType(SkPath::kEvenOdd_FillType); 748 path.setFillType(SkPath::kEvenOdd_FillType);
753 path.moveTo(0, 926); 749 path.moveTo(0, 926);
754 path.lineTo(0, 0); 750 path.lineTo(0, 0);
755 path.lineTo(1265, 0); 751 path.lineTo(1265, 0);
756 path.lineTo(1265, 926); 752 path.lineTo(1265, 926);
757 path.lineTo(0, 926); 753 path.lineTo(0, 926);
758 path.close(); 754 path.close();
759 SkPath pathB; 755 SkPath pathB;
760 pathB.setFillType(SkPath::kWinding_FillType); 756 pathB.setFillType(SkPath::kWinding_FillType);
761 pathB.moveTo(21, 162); 757 pathB.moveTo(21, 162);
762 pathB.lineTo(21, 301); 758 pathB.lineTo(21, 301);
763 pathB.lineTo(8.57224448e-15f, 301); 759 pathB.lineTo(8.57224448e-15f, 301);
764 pathB.lineTo(6.12303177e-17f, 162); 760 pathB.lineTo(6.12303177e-17f, 162);
765 pathB.close(); 761 pathB.close();
766 testPathOp(reporter, path, pathB, kIntersect_PathOp); 762 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
767 } 763 }
768 764
769 static void skponlinecollege_org144(skiatest::Reporter* reporter) { 765 static void skponlinecollege_org144(skiatest::Reporter* reporter, const char* fi lename) {
770 SkPath path; 766 SkPath path;
771 path.setFillType(SkPath::kEvenOdd_FillType); 767 path.setFillType(SkPath::kEvenOdd_FillType);
772 path.moveTo(179, 407); 768 path.moveTo(179, 407);
773 path.cubicTo(177.34314f, 407, 176, 408.34314f, 176, 410); 769 path.cubicTo(177.34314f, 407, 176, 408.34314f, 176, 410);
774 path.lineTo(176, 436); 770 path.lineTo(176, 436);
775 path.cubicTo(176, 437.65686f, 177.34314f, 439, 179, 439); 771 path.cubicTo(176, 437.65686f, 177.34314f, 439, 179, 439);
776 path.lineTo(337.002289f, 439); 772 path.lineTo(337.002289f, 439);
777 path.cubicTo(338.105835f, 438.998779f, 339, 438.103821f, 339, 437); 773 path.cubicTo(338.105835f, 438.998779f, 339, 438.103821f, 339, 437);
778 path.lineTo(339, 409); 774 path.lineTo(339, 409);
779 path.cubicTo(339, 407.896362f, 338.10611f, 407.001526f, 337.002838f, 407); 775 path.cubicTo(339, 407.896362f, 338.10611f, 407.001526f, 337.002838f, 407);
780 path.lineTo(179, 407); 776 path.lineTo(179, 407);
781 path.close(); 777 path.close();
782 SkPath pathB; 778 SkPath pathB;
783 pathB.setFillType(SkPath::kInverseWinding_FillType); 779 pathB.setFillType(SkPath::kInverseWinding_FillType);
784 pathB.moveTo(179, 408); 780 pathB.moveTo(179, 408);
785 pathB.lineTo(337, 408); 781 pathB.lineTo(337, 408);
786 pathB.cubicTo(338.65686f, 408, 340, 408.895416f, 340, 410); 782 pathB.cubicTo(338.65686f, 408, 340, 408.895416f, 340, 410);
787 pathB.lineTo(340, 436); 783 pathB.lineTo(340, 436);
788 pathB.cubicTo(340, 437.65686f, 338.65686f, 439, 337, 439); 784 pathB.cubicTo(340, 437.65686f, 338.65686f, 439, 337, 439);
789 pathB.lineTo(179, 439); 785 pathB.lineTo(179, 439);
790 pathB.cubicTo(177.895432f, 439, 177, 437.65686f, 177, 436); 786 pathB.cubicTo(177.895432f, 439, 177, 437.65686f, 177, 436);
791 pathB.lineTo(177, 410); 787 pathB.lineTo(177, 410);
792 pathB.cubicTo(177, 408.895416f, 177.895432f, 408, 179, 408); 788 pathB.cubicTo(177, 408.895416f, 177.895432f, 408, 179, 408);
793 pathB.close(); 789 pathB.close();
794 testPathOp(reporter, path, pathB, kIntersect_PathOp); 790 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
795 } 791 }
796 792
797 static void skpnational_com_au81(skiatest::Reporter* reporter) { 793 static void skpnational_com_au81(skiatest::Reporter* reporter, const char* filen ame) {
798 SkPath path; 794 SkPath path;
799 path.setFillType(SkPath::kEvenOdd_FillType); 795 path.setFillType(SkPath::kEvenOdd_FillType);
800 path.moveTo(807, 817); 796 path.moveTo(807, 817);
801 path.quadTo(806.585876f, 817.000122f, 806.292908f, 817.292908f); 797 path.quadTo(806.585876f, 817.000122f, 806.292908f, 817.292908f);
802 path.quadTo(806.000122f, 817.585876f, 806, 818); 798 path.quadTo(806.000122f, 817.585876f, 806, 818);
803 path.lineTo(806, 881); 799 path.lineTo(806, 881);
804 path.lineTo(1111, 881); 800 path.lineTo(1111, 881);
805 path.lineTo(1111, 818); 801 path.lineTo(1111, 818);
806 path.quadTo(1110.99988f, 817.585876f, 1110.70715f, 817.292908f); 802 path.quadTo(1110.99988f, 817.585876f, 1110.70715f, 817.292908f);
807 path.quadTo(1110.41406f, 817.000122f, 1110, 817); 803 path.quadTo(1110.41406f, 817.000122f, 1110, 817);
808 path.lineTo(807, 817); 804 path.lineTo(807, 817);
809 path.close(); 805 path.close();
810 SkPath pathB; 806 SkPath pathB;
811 pathB.setFillType(SkPath::kInverseWinding_FillType); 807 pathB.setFillType(SkPath::kInverseWinding_FillType);
812 pathB.moveTo(807, 817); 808 pathB.moveTo(807, 817);
813 pathB.lineTo(1110, 817); 809 pathB.lineTo(1110, 817);
814 pathB.cubicTo(1110.55225f, 817, 1111, 817.447693f, 1111, 818); 810 pathB.cubicTo(1110.55225f, 817, 1111, 817.447693f, 1111, 818);
815 pathB.lineTo(1111, 880); 811 pathB.lineTo(1111, 880);
816 pathB.lineTo(806, 880); 812 pathB.lineTo(806, 880);
817 pathB.lineTo(806, 818); 813 pathB.lineTo(806, 818);
818 pathB.cubicTo(806, 817.447693f, 806.447693f, 817, 807, 817); 814 pathB.cubicTo(806, 817.447693f, 806.447693f, 817, 807, 817);
819 pathB.close(); 815 pathB.close();
820 testPathOp(reporter, path, pathB, kIntersect_PathOp); 816 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
821 } 817 }
822 818
823 static void skprentacheat_com30(skiatest::Reporter* reporter) { 819 static void skprentacheat_com30(skiatest::Reporter* reporter, const char* filena me) {
824 SkPath path; 820 SkPath path;
825 path.setFillType(SkPath::kEvenOdd_FillType); 821 path.setFillType(SkPath::kEvenOdd_FillType);
826 path.moveTo(967, 263); 822 path.moveTo(967, 263);
827 path.quadTo(966.585876f, 263.000092f, 966.292908f, 263.292908f); 823 path.quadTo(966.585876f, 263.000092f, 966.292908f, 263.292908f);
828 path.quadTo(966.000122f, 263.585876f, 966, 264); 824 path.quadTo(966.000122f, 263.585876f, 966, 264);
829 path.lineTo(966, 301); 825 path.lineTo(966, 301);
830 path.lineTo(1214, 301); 826 path.lineTo(1214, 301);
831 path.lineTo(1214, 264); 827 path.lineTo(1214, 264);
832 path.quadTo(1213.99988f, 263.585876f, 1213.70715f, 263.292908f); 828 path.quadTo(1213.99988f, 263.585876f, 1213.70715f, 263.292908f);
833 path.quadTo(1213.41406f, 263.000092f, 1213, 263); 829 path.quadTo(1213.41406f, 263.000092f, 1213, 263);
834 path.lineTo(967, 263); 830 path.lineTo(967, 263);
835 path.close(); 831 path.close();
836 SkPath pathB; 832 SkPath pathB;
837 pathB.setFillType(SkPath::kInverseWinding_FillType); 833 pathB.setFillType(SkPath::kInverseWinding_FillType);
838 pathB.moveTo(967, 263); 834 pathB.moveTo(967, 263);
839 pathB.lineTo(1213, 263); 835 pathB.lineTo(1213, 263);
840 pathB.cubicTo(1213.55225f, 263, 1214, 263.447723f, 1214, 264); 836 pathB.cubicTo(1213.55225f, 263, 1214, 263.447723f, 1214, 264);
841 pathB.lineTo(1214, 300); 837 pathB.lineTo(1214, 300);
842 pathB.lineTo(966, 300); 838 pathB.lineTo(966, 300);
843 pathB.lineTo(966, 264); 839 pathB.lineTo(966, 264);
844 pathB.cubicTo(966, 263.447723f, 966.447693f, 263, 967, 263); 840 pathB.cubicTo(966, 263.447723f, 966.447693f, 263, 967, 263);
845 pathB.close(); 841 pathB.close();
846 testPathOp(reporter, path, pathB, kIntersect_PathOp); 842 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
847 } 843 }
848 844
849 static void skpbreakmystyle_com10(skiatest::Reporter* reporter) { 845 static void skpbreakmystyle_com10(skiatest::Reporter* reporter, const char* file name) {
850 SkPath path; 846 SkPath path;
851 path.setFillType(SkPath::kEvenOdd_FillType); 847 path.setFillType(SkPath::kEvenOdd_FillType);
852 path.moveTo(271.032867f, -5.32907052e-15f); 848 path.moveTo(271.032867f, -5.32907052e-15f);
853 path.lineTo(56.9671326f, -5.16253706e-15f); 849 path.lineTo(56.9671326f, -5.16253706e-15f);
854 path.quadTo(52.7835083f, 3.69968891f, 48.7416f, 7.74160004f); 850 path.quadTo(52.7835083f, 3.69968891f, 48.7416f, 7.74160004f);
855 path.quadTo(1, 55.4831848f, 1, 123); 851 path.quadTo(1, 55.4831848f, 1, 123);
856 path.quadTo(1, 190.516815f, 48.7416f, 238.258392f); 852 path.quadTo(1, 190.516815f, 48.7416f, 238.258392f);
857 path.quadTo(96.4831848f, 286, 164, 286); 853 path.quadTo(96.4831848f, 286, 164, 286);
858 path.quadTo(231.516815f, 286, 279.258392f, 238.258392f); 854 path.quadTo(231.516815f, 286, 279.258392f, 238.258392f);
859 path.quadTo(327, 190.516815f, 327, 123); 855 path.quadTo(327, 190.516815f, 327, 123);
860 path.quadTo(327, 55.4831848f, 279.258392f, 7.74160004f); 856 path.quadTo(327, 55.4831848f, 279.258392f, 7.74160004f);
861 path.quadTo(275.216431f, 3.69964004f, 271.032867f, -5.32907052e-15f); 857 path.quadTo(275.216431f, 3.69964004f, 271.032867f, -5.32907052e-15f);
862 path.close(); 858 path.close();
863 SkPath pathB; 859 SkPath pathB;
864 pathB.setFillType(SkPath::kWinding_FillType); 860 pathB.setFillType(SkPath::kWinding_FillType);
865 pathB.moveTo(327, 123); 861 pathB.moveTo(327, 123);
866 pathB.quadTo(327, 190.516815f, 279.258392f, 238.258392f); 862 pathB.quadTo(327, 190.516815f, 279.258392f, 238.258392f);
867 pathB.quadTo(231.516815f, 286, 164, 286); 863 pathB.quadTo(231.516815f, 286, 164, 286);
868 pathB.quadTo(96.4831848f, 286, 48.7416f, 238.258392f); 864 pathB.quadTo(96.4831848f, 286, 48.7416f, 238.258392f);
869 pathB.quadTo(1, 190.516815f, 1, 123); 865 pathB.quadTo(1, 190.516815f, 1, 123);
870 pathB.quadTo(1, 55.4831848f, 48.7416f, 7.74160004f); 866 pathB.quadTo(1, 55.4831848f, 48.7416f, 7.74160004f);
871 pathB.quadTo(96.4831848f, -40, 164, -40); 867 pathB.quadTo(96.4831848f, -40, 164, -40);
872 pathB.quadTo(231.516815f, -40, 279.258392f, 7.74160004f); 868 pathB.quadTo(231.516815f, -40, 279.258392f, 7.74160004f);
873 pathB.quadTo(327, 55.4831848f, 327, 123); 869 pathB.quadTo(327, 55.4831848f, 327, 123);
874 pathB.close(); 870 pathB.close();
875 testPathOp(reporter, path, pathB, kIntersect_PathOp); 871 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
876 } 872 }
877 873
878 static void skpsd_graphic_net104(skiatest::Reporter* reporter) { 874 static void skpsd_graphic_net104(skiatest::Reporter* reporter, const char* filen ame) {
879 SkPath path; 875 SkPath path;
880 path.setFillType(SkPath::kEvenOdd_FillType); 876 path.setFillType(SkPath::kEvenOdd_FillType);
881 path.moveTo(475.421448f, 836.985962f); 877 path.moveTo(475.421448f, 836.985962f);
882 path.lineTo(461.280975f, 841.990662f); 878 path.lineTo(461.280975f, 841.990662f);
883 path.cubicTo(466.80899f, 857.609802f, 458.62854f, 874.752991f, 443.009399f, 880.281006f); 879 path.cubicTo(466.80899f, 857.609802f, 458.62854f, 874.752991f, 443.009399f, 880.281006f);
884 path.cubicTo(435.199829f, 883.044983f, 427.009247f, 882.381897f, 420.080048f , 879.075378f); 880 path.cubicTo(435.199829f, 883.044983f, 427.009247f, 882.381897f, 420.080048f , 879.075378f);
885 path.lineTo(413.620056f, 892.613037f); 881 path.lineTo(413.620056f, 892.613037f);
886 path.quadTo(430.419983f, 900.629761f, 447.96701f, 894.43811f); 882 path.quadTo(430.419983f, 900.629761f, 447.96701f, 894.43811f);
887 path.quadTo(448.00708f, 894.42395f, 448.014038f, 894.421509f); 883 path.quadTo(448.00708f, 894.42395f, 448.014038f, 894.421509f);
888 path.quadTo(448.043976f, 894.410889f, 448.061066f, 894.404846f); 884 path.quadTo(448.043976f, 894.410889f, 448.061066f, 894.404846f);
889 path.quadTo(465.596313f, 888.179932f, 473.613037f, 871.379944f); 885 path.quadTo(465.596313f, 888.179932f, 473.613037f, 871.379944f);
890 path.quadTo(477.351227f, 863.546143f, 478, 855.549866f); 886 path.quadTo(477.351227f, 863.546143f, 478, 855.549866f);
891 path.lineTo(478, 848.804321f); 887 path.lineTo(478, 848.804321f);
892 path.quadTo(477.528076f, 842.93811f, 475.421448f, 836.985962f); 888 path.quadTo(477.528076f, 842.93811f, 475.421448f, 836.985962f);
893 path.close(); 889 path.close();
894 SkPath pathB; 890 SkPath pathB;
895 pathB.setFillType(SkPath::kWinding_FillType); 891 pathB.setFillType(SkPath::kWinding_FillType);
896 pathB.moveTo(405.592621f, 909.435547f); 892 pathB.moveTo(405.592621f, 909.435547f);
897 pathB.lineTo(390.578583f, 867.014099f); 893 pathB.lineTo(390.578583f, 867.014099f);
898 pathB.lineTo(433, 852.000061f); 894 pathB.lineTo(433, 852.000061f);
899 pathB.lineTo(490.435486f, 879.40741f); 895 pathB.lineTo(490.435486f, 879.40741f);
900 testPathOp(reporter, path, pathB, kIntersect_PathOp); 896 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
901 } 897 }
902 898
903 #if TRY_BROKEN_TESTS
904 /* this cubic/quad pair 899 /* this cubic/quad pair
905 c = 430,280 430,278.895416 473.876068,278 528,278 900 c = 430,280 430,278.895416 473.876068,278 528,278
906 q = 430,280 430.009796,277.101196 458.703552,275.050262 901 q = 430,280 430.009796,277.101196 458.703552,275.050262
907 only intersect at the shared point (430,280) 902 only intersect at the shared point (430,280)
908 they sort backwards because the tangent from pt[0] to control pt[1] 903 they sort backwards because the tangent from pt[0] to control pt[1]
909 c' = (0.00000000000000000, -1.1045837402343750) 904 c' = (0.00000000000000000, -1.1045837402343750)
910 q' = (0.0097961425781250000, -2.8988037109375000) 905 q' = (0.0097961425781250000, -2.8988037109375000)
911 suggests that the quad is counterclockwise of the cubic, when the reverse is tr ue 906 suggests that the quad is counterclockwise of the cubic, when the reverse is tr ue
912 the angle code is fooled because the control pt[1] of both the quad and cubic 907 the angle code is fooled because the control pt[1] of both the quad and cubic
913 is far away from cubic cntl [2] and quad pt [2]. 908 is far away from cubic cntl [2] and quad pt [2].
914 Maybe in angle setup, this instability can be detected to suppress sorting on t he initial tangent 909 Maybe in angle setup, this instability can be detected to suppress sorting on t he initial tangent
915 Or the error term can be passed to NearRay that is magnified by the distance fr om the next ctrl? 910 Or the error term can be passed to NearRay that is magnified by the distance fr om the next ctrl?
916 */ 911 */
917 static void skpnaoxrane_ru23(skiatest::Reporter* reporter) { 912 static void skpnaoxrane_ru23(skiatest::Reporter* reporter, const char* filename) {
918 SkPath path; 913 SkPath path;
919 path.setFillType(SkPath::kEvenOdd_FillType); 914 path.setFillType(SkPath::kEvenOdd_FillType);
920 path.moveTo(458.703552f, 275.050262f); 915 path.moveTo(458.703552f, 275.050262f);
921 path.quadTo(487.41687f, 273.000702f, 528, 273); 916 path.quadTo(487.41687f, 273.000702f, 528, 273);
922 path.lineTo(529, 273); 917 path.lineTo(529, 273);
923 path.quadTo(530.242371f, 273.000305f, 531.121338f, 273.878693f); 918 path.quadTo(530.242371f, 273.000305f, 531.121338f, 273.878693f);
924 path.quadTo(531.999695f, 274.75766f, 532, 276); 919 path.quadTo(531.999695f, 274.75766f, 532, 276);
925 path.lineTo(532, 378); 920 path.lineTo(532, 378);
926 path.quadTo(531.990173f, 380.898804f, 503.296448f, 382.949738f); 921 path.quadTo(531.990173f, 380.898804f, 503.296448f, 382.949738f);
927 path.quadTo(474.58313f, 384.999298f, 434, 385); 922 path.quadTo(474.58313f, 384.999298f, 434, 385);
928 path.lineTo(433, 385); 923 path.lineTo(433, 385);
929 path.quadTo(431.75766f, 384.999695f, 430.878693f, 384.121307f); 924 path.quadTo(431.75766f, 384.999695f, 430.878693f, 384.121307f);
930 path.quadTo(430.000305f, 383.24234f, 430, 382); 925 path.quadTo(430.000305f, 383.24234f, 430, 382);
931 path.lineTo(430, 280); 926 path.lineTo(430, 280);
932 path.quadTo(430.009796f, 277.101196f, 458.703552f, 275.050262f); 927 path.quadTo(430.009796f, 277.101196f, 458.703552f, 275.050262f);
933 path.close(); 928 path.close();
934 SkPath pathB; 929 SkPath pathB;
935 pathB.setFillType(SkPath::kInverseWinding_FillType); 930 pathB.setFillType(SkPath::kInverseWinding_FillType);
936 pathB.moveTo(528, 278); 931 pathB.moveTo(528, 278);
937 pathB.lineTo(529, 278); 932 pathB.lineTo(529, 278);
938 pathB.cubicTo(530.65686f, 278, 532, 278, 532, 278); 933 pathB.cubicTo(530.65686f, 278, 532, 278, 532, 278);
939 pathB.lineTo(532, 378); 934 pathB.lineTo(532, 378);
940 pathB.cubicTo(532, 379.104584f, 488.123932f, 380, 434, 380); 935 pathB.cubicTo(532, 379.104584f, 488.123932f, 380, 434, 380);
941 pathB.lineTo(433, 380); 936 pathB.lineTo(433, 380);
942 pathB.cubicTo(431.34314f, 380, 430, 380, 430, 380); 937 pathB.cubicTo(431.34314f, 380, 430, 380, 430, 380);
943 pathB.lineTo(430, 280); 938 pathB.lineTo(430, 280);
944 pathB.cubicTo(430, 278.895416f, 473.876068f, 278, 528, 278); 939 pathB.cubicTo(430, 278.895416f, 473.876068f, 278, 528, 278);
945 pathB.close(); 940 pathB.close();
946 testPathOp(reporter, path, pathB, kIntersect_PathOp); 941 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
947 } 942 }
948 943
949 /* didn't investigate thoroughly, but looks to be missorting quad and cubic 944 /* didn't investigate thoroughly, but looks to be missorting quad and cubic
950 {{468.507751,560.724426}, {467.275146,552.856262}, {465.84668,547.288391}} 945 {{468.507751,560.724426}, {467.275146,552.856262}, {465.84668,547.288391}}
951 {{463.779907,542.671143}, {464.829529,542.672974}, {466.946289,550.755676}, {468.507751,560.724426}} 946 {{463.779907,542.671143}, {464.829529,542.672974}, {466.946289,550.755676}, {468.507751,560.724426}}
952 decision maker is case 14 leftLessThanRight 947 decision maker is case 14 leftLessThanRight
953 */ 948 */
954 static void skptcmevents_org23(skiatest::Reporter* reporter) { 949 static void skptcmevents_org23(skiatest::Reporter* reporter, const char* filenam e) {
955 SkPath path; 950 SkPath path;
956 path.setFillType(SkPath::kEvenOdd_FillType); 951 path.setFillType(SkPath::kEvenOdd_FillType);
957 path.moveTo(465.503998f, 546); 952 path.moveTo(465.503998f, 546);
958 path.lineTo(347, 546); 953 path.lineTo(347, 546);
959 path.lineTo(347, 632); 954 path.lineTo(347, 632);
960 path.lineTo(469.104248f, 632); 955 path.lineTo(469.104248f, 632);
961 path.quadTo(470.79007f, 627.638672f, 471.833496f, 621.036255f); 956 path.quadTo(470.79007f, 627.638672f, 471.833496f, 621.036255f);
962 path.quadTo(474.902588f, 601.562866f, 470.591064f, 574.024353f); 957 path.quadTo(474.902588f, 601.562866f, 470.591064f, 574.024353f);
963 path.lineTo(468.507751f, 560.724426f); 958 path.lineTo(468.507751f, 560.724426f);
964 path.quadTo(467.275146f, 552.856262f, 465.84668f, 547.288391f); 959 path.quadTo(467.275146f, 552.856262f, 465.84668f, 547.288391f);
965 path.quadTo(465.670349f, 546.601501f, 465.503998f, 546); 960 path.quadTo(465.670349f, 546.601501f, 465.503998f, 546);
966 path.close(); 961 path.close();
967 SkPath pathB; 962 SkPath pathB;
968 pathB.setFillType(SkPath::kInverseWinding_FillType); 963 pathB.setFillType(SkPath::kInverseWinding_FillType);
969 pathB.moveTo(363.052246f, 542.495361f); 964 pathB.moveTo(363.052246f, 542.495361f);
970 pathB.lineTo(463.779907f, 542.671143f); 965 pathB.lineTo(463.779907f, 542.671143f);
971 pathB.cubicTo(464.829529f, 542.672974f, 466.946289f, 550.755676f, 468.507751 f, 560.724426f); 966 pathB.cubicTo(464.829529f, 542.672974f, 466.946289f, 550.755676f, 468.507751 f, 560.724426f);
972 pathB.lineTo(470.591064f, 574.024353f); 967 pathB.lineTo(470.591064f, 574.024353f);
973 pathB.cubicTo(476.26178f, 610.226624f, 471.498932f, 639.557922f, 459.953003f , 639.537781f); 968 pathB.cubicTo(476.26178f, 610.226624f, 471.498932f, 639.557922f, 459.953003f , 639.537781f);
974 pathB.lineTo(368.727936f, 639.378601f); 969 pathB.lineTo(368.727936f, 639.378601f);
975 pathB.cubicTo(351.933868f, 639.349304f, 337.053741f, 631.244324f, 335.492249 f, 621.275574f); 970 pathB.cubicTo(351.933868f, 639.349304f, 337.053741f, 631.244324f, 335.492249 f, 621.275574f);
976 pathB.lineTo(325.968597f, 560.475708f); 971 pathB.lineTo(325.968597f, 560.475708f);
977 pathB.cubicTo(324.407104f, 550.506958f, 341.01001f, 542.456909f, 363.052246f , 542.495361f); 972 pathB.cubicTo(324.407104f, 550.506958f, 341.01001f, 542.456909f, 363.052246f , 542.495361f);
978 pathB.close(); 973 pathB.close();
979 testPathOp(reporter, path, pathB, kIntersect_PathOp); 974 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
980 } 975 }
981 976
982 static void skpredbullskatearcade_es16(skiatest::Reporter* reporter) { 977 static void skpredbullskatearcade_es16(skiatest::Reporter* reporter, const char* filename) {
983 SkPath path; 978 SkPath path;
984 path.setFillType(SkPath::kEvenOdd_FillType); 979 path.setFillType(SkPath::kEvenOdd_FillType);
985 path.moveTo(936.765625f, 458.965302f); 980 path.moveTo(936.765625f, 458.965302f);
986 path.cubicTo(937.028442f, 453.863251f, 933.145813f, 449.864502f, 928.093445f , 450.033905f); 981 path.cubicTo(937.028442f, 453.863251f, 933.145813f, 449.864502f, 928.093445f , 450.033905f);
987 path.lineTo(661.882263f, 458.958862f); 982 path.lineTo(661.882263f, 458.958862f);
988 path.lineTo(661.875366f, 458.959106f); 983 path.lineTo(661.875366f, 458.959106f);
989 path.cubicTo(656.828369f, 459.13205f, 652.525085f, 463.399719f, 652.258545f, 468.496124f); 984 path.cubicTo(656.828369f, 459.13205f, 652.525085f, 463.399719f, 652.258545f, 468.496124f);
990 path.lineTo(652.258179f, 468.503662f); 985 path.lineTo(652.258179f, 468.503662f);
991 path.lineTo(649.021729f, 531.322754f); 986 path.lineTo(649.021729f, 531.322754f);
992 path.cubicTo(648.75885f, 536.424805f, 652.641479f, 540.423523f, 657.693848f, 540.25415f); 987 path.cubicTo(648.75885f, 536.424805f, 652.641479f, 540.423523f, 657.693848f, 540.25415f);
993 path.lineTo(923.905029f, 531.329163f); 988 path.lineTo(923.905029f, 531.329163f);
994 path.cubicTo(928.955017f, 531.159851f, 933.262268f, 526.890442f, 933.528809f , 521.791565f); 989 path.cubicTo(928.955017f, 531.159851f, 933.262268f, 526.890442f, 933.528809f , 521.791565f);
995 path.lineTo(933.529175f, 521.784363f); 990 path.lineTo(933.529175f, 521.784363f);
996 path.lineTo(936.765625f, 458.965302f); 991 path.lineTo(936.765625f, 458.965302f);
997 path.close(); 992 path.close();
998 SkPath pathB; 993 SkPath pathB;
999 pathB.setFillType(SkPath::kInverseWinding_FillType); 994 pathB.setFillType(SkPath::kInverseWinding_FillType);
1000 pathB.moveTo(661.882263f, 458.958862f); 995 pathB.moveTo(661.882263f, 458.958862f);
1001 pathB.lineTo(928.093445f, 450.033905f); 996 pathB.lineTo(928.093445f, 450.033905f);
1002 pathB.cubicTo(929.103882f, 450, 929.709961f, 454.108612f, 929.447144f, 459.2 10663f); 997 pathB.cubicTo(929.103882f, 450, 929.709961f, 454.108612f, 929.447144f, 459.2 10663f);
1003 pathB.lineTo(926.210693f, 522.029724f); 998 pathB.lineTo(926.210693f, 522.029724f);
1004 pathB.cubicTo(926.079224f, 524.58075f, 925.153442f, 526.676208f, 924.143066f , 526.710083f); 999 pathB.cubicTo(926.079224f, 524.58075f, 925.153442f, 526.676208f, 924.143066f , 526.710083f);
1005 pathB.lineTo(657.931885f, 535.635071f); 1000 pathB.lineTo(657.931885f, 535.635071f);
1006 pathB.cubicTo(652.879456f, 535.804443f, 648.890259f, 533.873779f, 649.021729 f, 531.322754f); 1001 pathB.cubicTo(652.879456f, 535.804443f, 648.890259f, 533.873779f, 649.021729 f, 531.322754f);
1007 pathB.lineTo(652.258179f, 468.503662f); 1002 pathB.lineTo(652.258179f, 468.503662f);
1008 pathB.cubicTo(652.520996f, 463.401611f, 656.829834f, 459.128235f, 661.882263 f, 458.958862f); 1003 pathB.cubicTo(652.520996f, 463.401611f, 656.829834f, 459.128235f, 661.882263 f, 458.958862f);
1009 pathB.close(); 1004 pathB.close();
1010 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1005 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1011 } 1006 }
1012 1007
1013 static void skpfinanzasdigital_com9(skiatest::Reporter* reporter) { 1008 static void skpfinanzasdigital_com9(skiatest::Reporter* reporter, const char* fi lename) {
1014 SkPath path; 1009 SkPath path;
1015 path.setFillType(SkPath::kEvenOdd_FillType); 1010 path.setFillType(SkPath::kEvenOdd_FillType);
1016 path.moveTo(156, 126); 1011 path.moveTo(156, 126);
1017 path.quadTo(154.343552f, 126.000397f, 153.17157f, 127.17157f); 1012 path.quadTo(154.343552f, 126.000397f, 153.17157f, 127.17157f);
1018 path.quadTo(152.000397f, 128.343552f, 152, 130); 1013 path.quadTo(152.000397f, 128.343552f, 152, 130);
1019 path.lineTo(152, 174); 1014 path.lineTo(152, 174);
1020 path.lineTo(1114, 174); 1015 path.lineTo(1114, 174);
1021 path.lineTo(1114, 130); 1016 path.lineTo(1114, 130);
1022 path.quadTo(1113.99963f, 128.343552f, 1112.82837f, 127.17157f); 1017 path.quadTo(1113.99963f, 128.343552f, 1112.82837f, 127.17157f);
1023 path.quadTo(1111.65649f, 126.000397f, 1110, 126); 1018 path.quadTo(1111.65649f, 126.000397f, 1110, 126);
1024 path.lineTo(156, 126); 1019 path.lineTo(156, 126);
1025 path.close(); 1020 path.close();
1026 SkPath pathB; 1021 SkPath pathB;
1027 pathB.setFillType(SkPath::kInverseWinding_FillType); 1022 pathB.setFillType(SkPath::kInverseWinding_FillType);
1028 pathB.moveTo(156, 126); 1023 pathB.moveTo(156, 126);
1029 pathB.lineTo(1110, 126); 1024 pathB.lineTo(1110, 126);
1030 pathB.cubicTo(1111.65686f, 126, 1113, 127.790863f, 1113, 130); 1025 pathB.cubicTo(1111.65686f, 126, 1113, 127.790863f, 1113, 130);
1031 pathB.lineTo(1113, 174); 1026 pathB.lineTo(1113, 174);
1032 pathB.lineTo(153, 174); 1027 pathB.lineTo(153, 174);
1033 pathB.lineTo(153, 130); 1028 pathB.lineTo(153, 130);
1034 pathB.cubicTo(153, 127.790863f, 154.34314f, 126, 156, 126); 1029 pathB.cubicTo(153, 127.790863f, 154.34314f, 126, 156, 126);
1035 pathB.close(); 1030 pathB.close();
1036 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1031 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1037 } 1032 }
1038 #endif
1039 1033
1040 static void skppartainasdemo250_org56(skiatest::Reporter* reporter) { 1034 static void skppartainasdemo250_org56(skiatest::Reporter* reporter, const char* filename) {
1041 SkPath path; 1035 SkPath path;
1042 path.setFillType(SkPath::kEvenOdd_FillType); 1036 path.setFillType(SkPath::kEvenOdd_FillType);
1043 path.moveTo(182.000015f, 645); 1037 path.moveTo(182.000015f, 645);
1044 path.lineTo(182, 640); 1038 path.lineTo(182, 640);
1045 path.cubicTo(174.322327f, 640, 166.644669f, 637.071045f, 160.786804f, 631.21 3196f); 1039 path.cubicTo(174.322327f, 640, 166.644669f, 637.071045f, 160.786804f, 631.21 3196f);
1046 path.cubicTo(149.071075f, 619.497437f, 149.071075f, 600.502563f, 160.786804f , 588.786804f); 1040 path.cubicTo(149.071075f, 619.497437f, 149.071075f, 600.502563f, 160.786804f , 588.786804f);
1047 path.lineTo(157.251266f, 585.251221f); 1041 path.lineTo(157.251266f, 585.251221f);
1048 path.quadTo(147, 595.502502f, 147.000015f, 610); 1042 path.quadTo(147, 595.502502f, 147.000015f, 610);
1049 path.quadTo(147, 624.482605f, 157.230255f, 634.727722f); 1043 path.quadTo(147, 624.482605f, 157.230255f, 634.727722f);
1050 path.quadTo(157.251251f, 634.748779f, 157.251282f, 634.748779f); 1044 path.quadTo(157.251251f, 634.748779f, 157.251282f, 634.748779f);
1051 path.quadTo(157.282852f, 634.780334f, 157.272263f, 634.769775f); 1045 path.quadTo(157.282852f, 634.780334f, 157.272263f, 634.769775f);
1052 path.quadTo(167.517334f, 645, 182.000015f, 645); 1046 path.quadTo(167.517334f, 645, 182.000015f, 645);
1053 path.close(); 1047 path.close();
1054 SkPath pathB; 1048 SkPath pathB;
1055 pathB.setFillType(SkPath::kWinding_FillType); 1049 pathB.setFillType(SkPath::kWinding_FillType);
1056 pathB.moveTo(182, 659.497498f); 1050 pathB.moveTo(182, 659.497498f);
1057 pathB.lineTo(206.748749f, 634.748718f); 1051 pathB.lineTo(206.748749f, 634.748718f);
1058 pathB.lineTo(182.000015f, 610); 1052 pathB.lineTo(182.000015f, 610);
1059 pathB.lineTo(132.502533f, 610); 1053 pathB.lineTo(132.502533f, 610);
1060 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1054 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1061 } 1055 }
1062 1056
1063 static void skpmlk_com326(skiatest::Reporter* reporter) { 1057 static void skpmlk_com326(skiatest::Reporter* reporter, const char* filename) {
1064 SkPath path; 1058 SkPath path;
1065 path.setFillType(SkPath::kEvenOdd_FillType); 1059 path.setFillType(SkPath::kEvenOdd_FillType);
1066 path.moveTo(154, 670); 1060 path.moveTo(154, 670);
1067 path.cubicTo(151.238571f, 670, 149, 672.238586f, 149, 675); 1061 path.cubicTo(151.238571f, 670, 149, 672.238586f, 149, 675);
1068 path.lineTo(149, 710.001465f); 1062 path.lineTo(149, 710.001465f);
1069 path.cubicTo(149.000809f, 712.209961f, 150.791367f, 714, 153, 714); 1063 path.cubicTo(149.000809f, 712.209961f, 150.791367f, 714, 153, 714);
1070 path.lineTo(189, 714); 1064 path.lineTo(189, 714);
1071 path.cubicTo(191.209137f, 714, 193, 712.209167f, 193, 710); 1065 path.cubicTo(191.209137f, 714, 193, 712.209167f, 193, 710);
1072 path.lineTo(193, 675); 1066 path.lineTo(193, 675);
1073 path.cubicTo(193, 672.238586f, 190.761429f, 670, 188, 670); 1067 path.cubicTo(193, 672.238586f, 190.761429f, 670, 188, 670);
1074 path.lineTo(154, 670); 1068 path.lineTo(154, 670);
1075 path.close(); 1069 path.close();
1076 SkPath pathB; 1070 SkPath pathB;
1077 pathB.setFillType(SkPath::kInverseWinding_FillType); 1071 pathB.setFillType(SkPath::kInverseWinding_FillType);
1078 pathB.moveTo(154, 671); 1072 pathB.moveTo(154, 671);
1079 pathB.lineTo(188, 671); 1073 pathB.lineTo(188, 671);
1080 pathB.cubicTo(190.761429f, 671, 193, 672.790833f, 193, 675); 1074 pathB.cubicTo(190.761429f, 671, 193, 672.790833f, 193, 675);
1081 pathB.lineTo(193, 710); 1075 pathB.lineTo(193, 710);
1082 pathB.cubicTo(193, 712.761414f, 190.761429f, 715, 188, 715); 1076 pathB.cubicTo(193, 712.761414f, 190.761429f, 715, 188, 715);
1083 pathB.lineTo(154, 715); 1077 pathB.lineTo(154, 715);
1084 pathB.cubicTo(151.238571f, 715, 149, 712.761414f, 149, 710); 1078 pathB.cubicTo(151.238571f, 715, 149, 712.761414f, 149, 710);
1085 pathB.lineTo(149, 675); 1079 pathB.lineTo(149, 675);
1086 pathB.cubicTo(149, 672.790833f, 151.238571f, 671, 154, 671); 1080 pathB.cubicTo(149, 672.790833f, 151.238571f, 671, 154, 671);
1087 pathB.close(); 1081 pathB.close();
1088 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1082 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1089 } 1083 }
1090 1084
1091 static void skpcyclist_friends_gr52(skiatest::Reporter* reporter) { 1085 static void skpcyclist_friends_gr52(skiatest::Reporter* reporter, const char* fi lename) {
1092 SkPath path; 1086 SkPath path;
1093 path.setFillType(SkPath::kEvenOdd_FillType); 1087 path.setFillType(SkPath::kEvenOdd_FillType);
1094 path.moveTo(50, 182); 1088 path.moveTo(50, 182);
1095 path.lineTo(1215, 182); 1089 path.lineTo(1215, 182);
1096 path.lineTo(1215, 202); 1090 path.lineTo(1215, 202);
1097 path.quadTo(1214.99951f, 204.070572f, 1213.53552f, 205.535538f); 1091 path.quadTo(1214.99951f, 204.070572f, 1213.53552f, 205.535538f);
1098 path.quadTo(1212.07056f, 206.999496f, 1210, 207); 1092 path.quadTo(1212.07056f, 206.999496f, 1210, 207);
1099 path.lineTo(55, 207); 1093 path.lineTo(55, 207);
1100 path.quadTo(52.9294319f, 206.999496f, 51.4644661f, 205.535538f); 1094 path.quadTo(52.9294319f, 206.999496f, 51.4644661f, 205.535538f);
1101 path.quadTo(50.0004997f, 204.070572f, 50, 202); 1095 path.quadTo(50.0004997f, 204.070572f, 50, 202);
1102 path.lineTo(50, 182); 1096 path.lineTo(50, 182);
1103 path.close(); 1097 path.close();
1104 SkPath pathB; 1098 SkPath pathB;
1105 pathB.setFillType(SkPath::kInverseWinding_FillType); 1099 pathB.setFillType(SkPath::kInverseWinding_FillType);
1106 pathB.moveTo(50, 183); 1100 pathB.moveTo(50, 183);
1107 pathB.lineTo(1215, 183); 1101 pathB.lineTo(1215, 183);
1108 pathB.lineTo(1215, 202); 1102 pathB.lineTo(1215, 202);
1109 pathB.cubicTo(1215, 204.761429f, 1212.76147f, 207, 1210, 207); 1103 pathB.cubicTo(1215, 204.761429f, 1212.76147f, 207, 1210, 207);
1110 pathB.lineTo(55, 207); 1104 pathB.lineTo(55, 207);
1111 pathB.cubicTo(52.238575f, 207, 50, 204.761429f, 50, 202); 1105 pathB.cubicTo(52.238575f, 207, 50, 204.761429f, 50, 202);
1112 pathB.lineTo(50, 183); 1106 pathB.lineTo(50, 183);
1113 pathB.close(); 1107 pathB.close();
1114 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1108 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1115 } 1109 }
1116 1110
1117 /* cubic ends just above opp line */ 1111 /* cubic ends just above opp line */
1118 static void skpwww_fj_p_com_22(skiatest::Reporter* reporter) { 1112 static void skpwww_fj_p_com_22(skiatest::Reporter* reporter, const char* filenam e) {
1119 SkPath path; 1113 SkPath path;
1120 path.setFillType(SkPath::kEvenOdd_FillType); 1114 path.setFillType(SkPath::kEvenOdd_FillType);
1121 path.moveTo(172, 201); 1115 path.moveTo(172, 201);
1122 path.lineTo(172, 202); 1116 path.lineTo(172, 202);
1123 path.lineTo(220, 202); 1117 path.lineTo(220, 202);
1124 path.cubicTo(221.65686f, 202, 223, 200.65686f, 223, 199); 1118 path.cubicTo(221.65686f, 202, 223, 200.65686f, 223, 199);
1125 path.cubicTo(223, 200.104568f, 221.65686f, 201, 220, 201); 1119 path.cubicTo(223, 200.104568f, 221.65686f, 201, 220, 201);
1126 path.lineTo(172, 201); 1120 path.lineTo(172, 201);
1127 path.close(); 1121 path.close();
1128 SkPath pathB; 1122 SkPath pathB;
1129 pathB.setFillType(SkPath::kWinding_FillType); 1123 pathB.setFillType(SkPath::kWinding_FillType);
1130 pathB.moveTo(161, 202); 1124 pathB.moveTo(161, 202);
1131 pathB.lineTo(161, 199); 1125 pathB.lineTo(161, 199);
1132 pathB.lineTo(223, 199.000015f); 1126 pathB.lineTo(223, 199.000015f);
1133 pathB.lineTo(223, 202); 1127 pathB.lineTo(223, 202);
1134 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1128 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1135 } 1129 }
1136 1130
1137 #define TRY_SEPT_BROKEN_TESTS 0
1138 #if TRY_SEPT_BROKEN_TESTS
1139 // pair of lines are not quite coincident, so sorting line/cubic fails (i think) 1131 // pair of lines are not quite coincident, so sorting line/cubic fails (i think)
1140 static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter) { 1132 static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter, const char* filename) {
1141 SkPath path; 1133 SkPath path;
1142 path.setFillType(SkPath::kEvenOdd_FillType); 1134 path.setFillType(SkPath::kEvenOdd_FillType);
1143 path.moveTo(806, 57); 1135 path.moveTo(806, 57);
1144 path.cubicTo(806, 55.3431473f, 807.34314f, 54, 809, 54); 1136 path.cubicTo(806, 55.3431473f, 807.34314f, 54, 809, 54);
1145 path.lineTo(930, 54); 1137 path.lineTo(930, 54);
1146 path.cubicTo(931.65686f, 54, 933, 55.3431473f, 933, 57); 1138 path.cubicTo(931.65686f, 54, 933, 55.3431473f, 933, 57);
1147 path.lineTo(933, 91); 1139 path.lineTo(933, 91);
1148 path.cubicTo(933, 92.6568527f, 931.65686f, 94, 930, 94); 1140 path.cubicTo(933, 92.6568527f, 931.65686f, 94, 930, 94);
1149 path.lineTo(809, 94); 1141 path.lineTo(809, 94);
1150 path.cubicTo(807.34314f, 94, 806, 92.6568527f, 806, 91); 1142 path.cubicTo(807.34314f, 94, 806, 92.6568527f, 806, 91);
1151 path.lineTo(806, 57); 1143 path.lineTo(806, 57);
1152 path.close(); 1144 path.close();
1153 path.moveTo(808, 58); 1145 path.moveTo(808, 58);
1154 path.cubicTo(808, 56.8954315f, 808.895447f, 56, 810, 56); 1146 path.cubicTo(808, 56.8954315f, 808.895447f, 56, 810, 56);
1155 path.lineTo(929, 56); 1147 path.lineTo(929, 56);
1156 path.cubicTo(930.104553f, 56, 931, 56.8954315f, 931, 58); 1148 path.cubicTo(930.104553f, 56, 931, 56.8954315f, 931, 58);
1157 path.lineTo(931, 90); 1149 path.lineTo(931, 90);
1158 path.cubicTo(931, 91.1045685f, 930.104553f, 92, 929, 92); 1150 path.cubicTo(931, 91.1045685f, 930.104553f, 92, 929, 92);
1159 path.lineTo(810, 92); 1151 path.lineTo(810, 92);
1160 path.cubicTo(808.895447f, 92, 808, 91.1045685f, 808, 90); 1152 path.cubicTo(808.895447f, 92, 808, 91.1045685f, 808, 90);
1161 path.lineTo(808, 58); 1153 path.lineTo(808, 58);
1162 path.close(); 1154 path.close();
1163 SkPath pathB; 1155 SkPath pathB;
1164 pathB.setFillType(SkPath::kWinding_FillType); 1156 pathB.setFillType(SkPath::kWinding_FillType);
1165 pathB.moveTo(806, 54); 1157 pathB.moveTo(806, 54);
1166 pathB.lineTo(808, 56); 1158 pathB.lineTo(808, 56);
1167 pathB.lineTo(935.02002f, 56.0200005f); 1159 pathB.lineTo(935.02002f, 56.0200005f);
1168 pathB.lineTo(933, 54); 1160 pathB.lineTo(933, 54);
1169 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1161 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1170 } 1162 }
1171 1163
1172 // pair of curves have nearly the same initial tangent but are sorting by 1164 // pair of curves have nearly the same initial tangent but are sorting by
1173 // that alone sorts them incorrectly. Need to detect that tangents are nearly 1165 // that alone sorts them incorrectly. Need to detect that tangents are nearly
1174 // identical and not reliable by themselves 1166 // identical and not reliable by themselves
1175 static void skppptv_com_62(skiatest::Reporter* reporter) { 1167 static void skppptv_com_62(skiatest::Reporter* reporter, const char* filename) {
1176 SkPath path; 1168 SkPath path;
1177 path.setFillType(SkPath::kEvenOdd_FillType); 1169 path.setFillType(SkPath::kEvenOdd_FillType);
1178 path.moveTo(173, 5342); 1170 path.moveTo(173, 5342);
1179 path.quadTo(171.343536f, 5342.00049f, 170.17157f, 5343.17139f); 1171 path.quadTo(171.343536f, 5342.00049f, 170.17157f, 5343.17139f);
1180 path.quadTo(169.000397f, 5344.34375f, 169, 5346); 1172 path.quadTo(169.000397f, 5344.34375f, 169, 5346);
1181 path.lineTo(169, 5372); 1173 path.lineTo(169, 5372);
1182 path.lineTo(234, 5372); 1174 path.lineTo(234, 5372);
1183 path.lineTo(234, 5346); 1175 path.lineTo(234, 5346);
1184 path.quadTo(233.999603f, 5344.34375f, 232.82843f, 5343.17139f); 1176 path.quadTo(233.999603f, 5344.34375f, 232.82843f, 5343.17139f);
1185 path.quadTo(231.656464f, 5342.00049f, 230, 5342); 1177 path.quadTo(231.656464f, 5342.00049f, 230, 5342);
1186 path.lineTo(173, 5342); 1178 path.lineTo(173, 5342);
1187 path.close(); 1179 path.close();
1188 SkPath pathB; 1180 SkPath pathB;
1189 pathB.setFillType(SkPath::kInverseWinding_FillType); 1181 pathB.setFillType(SkPath::kInverseWinding_FillType);
1190 pathB.moveTo(173, 5342); 1182 pathB.moveTo(173, 5342);
1191 pathB.lineTo(230, 5342); 1183 pathB.lineTo(230, 5342);
1192 pathB.cubicTo(231.65686f, 5342, 233, 5343.79102f, 233, 5346); 1184 pathB.cubicTo(231.65686f, 5342, 233, 5343.79102f, 233, 5346);
1193 pathB.lineTo(233, 5372); 1185 pathB.lineTo(233, 5372);
1194 pathB.lineTo(169, 5372); 1186 pathB.lineTo(169, 5372);
1195 pathB.lineTo(169, 5346); 1187 pathB.lineTo(169, 5346);
1196 pathB.cubicTo(169, 5343.79102f, 170.790863f, 5342, 173, 5342); 1188 pathB.cubicTo(169, 5343.79102f, 170.790863f, 5342, 173, 5342);
1197 pathB.close(); 1189 pathB.close();
1198 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1190 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1199 } 1191 }
1200 1192
1201 // nearly identical to lavoixdunord -- to not-quite-coincident lines 1193 // nearly identical to lavoixdunord -- to not-quite-coincident lines
1202 static void skpwww_booking_com_68(skiatest::Reporter* reporter) { 1194 static void skpwww_booking_com_68(skiatest::Reporter* reporter, const char* file name) {
1203 SkPath path; 1195 SkPath path;
1204 path.setFillType(SkPath::kEvenOdd_FillType); 1196 path.setFillType(SkPath::kEvenOdd_FillType);
1205 path.moveTo(90, 187); 1197 path.moveTo(90, 187);
1206 path.cubicTo(90, 185.34314f, 91.3431473f, 184, 93, 184); 1198 path.cubicTo(90, 185.34314f, 91.3431473f, 184, 93, 184);
1207 path.lineTo(588, 184); 1199 path.lineTo(588, 184);
1208 path.cubicTo(589.65686f, 184, 591, 185.34314f, 591, 187); 1200 path.cubicTo(589.65686f, 184, 591, 185.34314f, 591, 187);
1209 path.lineTo(591, 218); 1201 path.lineTo(591, 218);
1210 path.cubicTo(591, 219.65686f, 589.65686f, 221, 588, 221); 1202 path.cubicTo(591, 219.65686f, 589.65686f, 221, 588, 221);
1211 path.lineTo(93, 221); 1203 path.lineTo(93, 221);
1212 path.cubicTo(91.3431473f, 221, 90, 219.65686f, 90, 218); 1204 path.cubicTo(91.3431473f, 221, 90, 219.65686f, 90, 218);
1213 path.lineTo(90, 187); 1205 path.lineTo(90, 187);
1214 path.close(); 1206 path.close();
1215 path.moveTo(92, 188); 1207 path.moveTo(92, 188);
1216 path.cubicTo(92, 186.895432f, 92.8954315f, 186, 94, 186); 1208 path.cubicTo(92, 186.895432f, 92.8954315f, 186, 94, 186);
1217 path.lineTo(587, 186); 1209 path.lineTo(587, 186);
1218 path.cubicTo(588.104553f, 186, 589, 186.895432f, 589, 188); 1210 path.cubicTo(588.104553f, 186, 589, 186.895432f, 589, 188);
1219 path.lineTo(589, 217); 1211 path.lineTo(589, 217);
1220 path.cubicTo(589, 218.104568f, 588.104553f, 219, 587, 219); 1212 path.cubicTo(589, 218.104568f, 588.104553f, 219, 587, 219);
1221 path.lineTo(94, 219); 1213 path.lineTo(94, 219);
1222 path.cubicTo(92.8954315f, 219, 92, 218.104568f, 92, 217); 1214 path.cubicTo(92.8954315f, 219, 92, 218.104568f, 92, 217);
1223 path.lineTo(92, 188); 1215 path.lineTo(92, 188);
1224 path.close(); 1216 path.close();
1225 SkPath pathB; 1217 SkPath pathB;
1226 pathB.setFillType(SkPath::kWinding_FillType); 1218 pathB.setFillType(SkPath::kWinding_FillType);
1227 pathB.moveTo(90, 184); 1219 pathB.moveTo(90, 184);
1228 pathB.lineTo(92, 186); 1220 pathB.lineTo(92, 186);
1229 pathB.lineTo(593.02002f, 186.020004f); 1221 pathB.lineTo(593.02002f, 186.020004f);
1230 pathB.lineTo(591, 184); 1222 pathB.lineTo(591, 184);
1231 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1223 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1232 } 1224 }
1233 1225
1234 // visually looks like lavoixdunord and www_booking_com 1226 // visually looks like lavoixdunord and www_booking_com
1235 static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter) { 1227 static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter, const char* filename) {
1236 SkPath path; 1228 SkPath path;
1237 path.setFillType(SkPath::kEvenOdd_FillType); 1229 path.setFillType(SkPath::kEvenOdd_FillType);
1238 path.moveTo(635, 1788); 1230 path.moveTo(635, 1788);
1239 path.cubicTo(635, 1786.34314f, 636.34314f, 1785, 638, 1785); 1231 path.cubicTo(635, 1786.34314f, 636.34314f, 1785, 638, 1785);
1240 path.lineTo(832, 1785); 1232 path.lineTo(832, 1785);
1241 path.cubicTo(833.65686f, 1785, 835, 1786.34314f, 835, 1788); 1233 path.cubicTo(833.65686f, 1785, 835, 1786.34314f, 835, 1788);
1242 path.lineTo(835, 1812); 1234 path.lineTo(835, 1812);
1243 path.cubicTo(835, 1813.65686f, 833.65686f, 1815, 832, 1815); 1235 path.cubicTo(835, 1813.65686f, 833.65686f, 1815, 832, 1815);
1244 path.lineTo(638, 1815); 1236 path.lineTo(638, 1815);
1245 path.cubicTo(636.34314f, 1815, 635, 1813.65686f, 635, 1812); 1237 path.cubicTo(636.34314f, 1815, 635, 1813.65686f, 635, 1812);
1246 path.lineTo(635, 1788); 1238 path.lineTo(635, 1788);
1247 path.close(); 1239 path.close();
1248 path.moveTo(637, 1789); 1240 path.moveTo(637, 1789);
1249 path.cubicTo(637, 1787.89539f, 637.895447f, 1787, 639, 1787); 1241 path.cubicTo(637, 1787.89539f, 637.895447f, 1787, 639, 1787);
1250 path.lineTo(831, 1787); 1242 path.lineTo(831, 1787);
1251 path.cubicTo(832.104553f, 1787, 833, 1787.89539f, 833, 1789); 1243 path.cubicTo(832.104553f, 1787, 833, 1787.89539f, 833, 1789);
1252 path.lineTo(833, 1811); 1244 path.lineTo(833, 1811);
1253 path.cubicTo(833, 1812.10461f, 832.104553f, 1813, 831, 1813); 1245 path.cubicTo(833, 1812.10461f, 832.104553f, 1813, 831, 1813);
1254 path.lineTo(639, 1813); 1246 path.lineTo(639, 1813);
1255 path.cubicTo(637.895447f, 1813, 637, 1812.10461f, 637, 1811); 1247 path.cubicTo(637.895447f, 1813, 637, 1812.10461f, 637, 1811);
1256 path.lineTo(637, 1789); 1248 path.lineTo(637, 1789);
1257 path.close(); 1249 path.close();
1258 SkPath pathB; 1250 SkPath pathB;
1259 pathB.setFillType(SkPath::kWinding_FillType); 1251 pathB.setFillType(SkPath::kWinding_FillType);
1260 pathB.moveTo(835, 1785); 1252 pathB.moveTo(835, 1785);
1261 pathB.lineTo(833, 1787); 1253 pathB.lineTo(833, 1787);
1262 pathB.lineTo(832.97998f, 1817.02002f); 1254 pathB.lineTo(832.97998f, 1817.02002f);
1263 pathB.lineTo(835, 1815); 1255 pathB.lineTo(835, 1815);
1264 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1256 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1265 } 1257 }
1266 #endif
1267 1258
1268 static void skpwww_joomla_org_23(skiatest::Reporter* reporter) { 1259 static void skpwww_joomla_org_23(skiatest::Reporter* reporter, const char* filen ame) {
1269 SkPath path; 1260 SkPath path;
1270 path.setFillType(SkPath::kEvenOdd_FillType); 1261 path.setFillType(SkPath::kEvenOdd_FillType);
1271 path.moveTo(320, 347); 1262 path.moveTo(320, 347);
1272 path.cubicTo(320, 344.238586f, 322.238586f, 342, 325, 342); 1263 path.cubicTo(320, 344.238586f, 322.238586f, 342, 325, 342);
1273 path.lineTo(416, 342); 1264 path.lineTo(416, 342);
1274 path.cubicTo(418.761414f, 342, 421, 344.238586f, 421, 347); 1265 path.cubicTo(418.761414f, 342, 421, 344.238586f, 421, 347);
1275 path.cubicTo(421, 344.790863f, 418.761414f, 343, 416, 343); 1266 path.cubicTo(421, 344.790863f, 418.761414f, 343, 416, 343);
1276 path.lineTo(325, 343); 1267 path.lineTo(325, 343);
1277 path.cubicTo(322.238586f, 343, 320, 344.790863f, 320, 347); 1268 path.cubicTo(322.238586f, 343, 320, 344.790863f, 320, 347);
1278 path.close(); 1269 path.close();
1279 path.moveTo(320, 378); 1270 path.moveTo(320, 378);
1280 path.cubicTo(320, 380.761414f, 322.238586f, 383, 325, 383); 1271 path.cubicTo(320, 380.761414f, 322.238586f, 383, 325, 383);
1281 path.lineTo(416, 383); 1272 path.lineTo(416, 383);
1282 path.cubicTo(418.761414f, 383, 421, 380.761414f, 421, 378); 1273 path.cubicTo(418.761414f, 383, 421, 380.761414f, 421, 378);
1283 path.cubicTo(421, 380.209137f, 418.761414f, 382, 416, 382); 1274 path.cubicTo(421, 380.209137f, 418.761414f, 382, 416, 382);
1284 path.lineTo(325, 382); 1275 path.lineTo(325, 382);
1285 path.cubicTo(322.238586f, 382, 320, 380.209137f, 320, 378); 1276 path.cubicTo(322.238586f, 382, 320, 380.209137f, 320, 378);
1286 path.close(); 1277 path.close();
1287 SkPath pathB; 1278 SkPath pathB;
1288 pathB.setFillType(SkPath::kWinding_FillType); 1279 pathB.setFillType(SkPath::kWinding_FillType);
1289 pathB.moveTo(320, 383); 1280 pathB.moveTo(320, 383);
1290 pathB.lineTo(320, 378); 1281 pathB.lineTo(320, 378);
1291 pathB.lineTo(421, 378.000031f); 1282 pathB.lineTo(421, 378.000031f);
1292 pathB.lineTo(421, 383); 1283 pathB.lineTo(421, 383);
1293 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1284 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1294 } 1285 }
1295 1286
1296 static void skpwww_macrumors_com_131(skiatest::Reporter* reporter) { 1287 static void skpwww_macrumors_com_131(skiatest::Reporter* reporter, const char* f ilename) {
1297 SkPath path; 1288 SkPath path;
1298 path.setFillType(SkPath::kEvenOdd_FillType); 1289 path.setFillType(SkPath::kEvenOdd_FillType);
1299 path.moveTo(136, 14089); 1290 path.moveTo(136, 14089);
1300 path.lineTo(136, 14056); 1291 path.lineTo(136, 14056);
1301 path.lineTo(778, 14056); 1292 path.lineTo(778, 14056);
1302 path.lineTo(778, 14089); 1293 path.lineTo(778, 14089);
1303 path.quadTo(777.999573f, 14090.6562f, 776.82843f, 14091.8281f); 1294 path.quadTo(777.999573f, 14090.6562f, 776.82843f, 14091.8281f);
1304 path.quadTo(775.656433f, 14093, 774, 14093); 1295 path.quadTo(775.656433f, 14093, 774, 14093);
1305 path.lineTo(140, 14093); 1296 path.lineTo(140, 14093);
1306 path.quadTo(138.343552f, 14093, 137.17157f, 14091.8281f); 1297 path.quadTo(138.343552f, 14093, 137.17157f, 14091.8281f);
1307 path.quadTo(136.000397f, 14090.6562f, 136, 14089); 1298 path.quadTo(136.000397f, 14090.6562f, 136, 14089);
1308 path.close(); 1299 path.close();
1309 SkPath pathB; 1300 SkPath pathB;
1310 pathB.setFillType(SkPath::kInverseWinding_FillType); 1301 pathB.setFillType(SkPath::kInverseWinding_FillType);
1311 pathB.moveTo(136, 14057); 1302 pathB.moveTo(136, 14057);
1312 pathB.lineTo(778, 14057); 1303 pathB.lineTo(778, 14057);
1313 pathB.lineTo(778, 14089); 1304 pathB.lineTo(778, 14089);
1314 pathB.cubicTo(778, 14091.209f, 776.209167f, 14093, 774, 14093); 1305 pathB.cubicTo(778, 14091.209f, 776.209167f, 14093, 774, 14093);
1315 pathB.lineTo(140, 14093); 1306 pathB.lineTo(140, 14093);
1316 pathB.cubicTo(137.790863f, 14093, 136, 14091.209f, 136, 14089); 1307 pathB.cubicTo(137.790863f, 14093, 136, 14091.209f, 136, 14089);
1317 pathB.lineTo(136, 14057); 1308 pathB.lineTo(136, 14057);
1318 pathB.close(); 1309 pathB.close();
1319 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1310 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1320 } 1311 }
1321 1312
1322 static void skpwww_leadpages_net_84(skiatest::Reporter* reporter) { 1313 static void skpwww_leadpages_net_84(skiatest::Reporter* reporter, const char* fi lename) {
1323 SkPath path; 1314 SkPath path;
1324 path.setFillType(SkPath::kEvenOdd_FillType); 1315 path.setFillType(SkPath::kEvenOdd_FillType);
1325 path.moveTo(377.1716f, 5910.17139f); 1316 path.moveTo(377.1716f, 5910.17139f);
1326 path.cubicTo(376.447723f, 5910.89551f, 376, 5911.89551f, 376, 5913); 1317 path.cubicTo(376.447723f, 5910.89551f, 376, 5911.89551f, 376, 5913);
1327 path.lineTo(376, 5972); 1318 path.lineTo(376, 5972);
1328 path.cubicTo(376, 5974.20898f, 377.790863f, 5976, 380, 5976); 1319 path.cubicTo(376, 5974.20898f, 377.790863f, 5976, 380, 5976);
1329 path.cubicTo(378.34314f, 5976, 377, 5974.20898f, 377, 5972); 1320 path.cubicTo(378.34314f, 5976, 377, 5974.20898f, 377, 5972);
1330 path.lineTo(377, 5913); 1321 path.lineTo(377, 5913);
1331 path.cubicTo(377, 5912.17139f, 377.335785f, 5911.42188f, 377.878693f, 5910.8 7891f); 1322 path.cubicTo(377, 5912.17139f, 377.335785f, 5911.42188f, 377.878693f, 5910.8 7891f);
1332 path.lineTo(377.1716f, 5910.17139f); 1323 path.lineTo(377.1716f, 5910.17139f);
1333 path.close(); 1324 path.close();
1334 SkPath pathB; 1325 SkPath pathB;
1335 pathB.setFillType(SkPath::kWinding_FillType); 1326 pathB.setFillType(SkPath::kWinding_FillType);
1336 pathB.moveTo(376, 5909); 1327 pathB.moveTo(376, 5909);
1337 pathB.lineTo(378.481873f, 5909); 1328 pathB.lineTo(378.481873f, 5909);
1338 pathB.lineTo(379.999878f, 5976); 1329 pathB.lineTo(379.999878f, 5976);
1339 pathB.lineTo(376, 5976); 1330 pathB.lineTo(376, 5976);
1340 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1331 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1341 } 1332 }
1342 1333
1343 static void skpwww_briian_com_34(skiatest::Reporter* reporter) { 1334 static void skpwww_briian_com_34(skiatest::Reporter* reporter, const char* filen ame) {
1344 SkPath path; 1335 SkPath path;
1345 path.setFillType(SkPath::kEvenOdd_FillType); 1336 path.setFillType(SkPath::kEvenOdd_FillType);
1346 path.moveTo(843, 216); 1337 path.moveTo(843, 216);
1347 path.cubicTo(843, 213.238571f, 845.238586f, 211, 848, 211); 1338 path.cubicTo(843, 213.238571f, 845.238586f, 211, 848, 211);
1348 path.lineTo(1191, 211); 1339 path.lineTo(1191, 211);
1349 path.cubicTo(1193.76147f, 211, 1196, 213.238571f, 1196, 216); 1340 path.cubicTo(1193.76147f, 211, 1196, 213.238571f, 1196, 216);
1350 path.lineTo(1196, 779); 1341 path.lineTo(1196, 779);
1351 path.cubicTo(1196, 781.761414f, 1193.76147f, 784, 1191, 784); 1342 path.cubicTo(1196, 781.761414f, 1193.76147f, 784, 1191, 784);
1352 path.lineTo(848, 784); 1343 path.lineTo(848, 784);
1353 path.cubicTo(845.238586f, 784, 843, 781.761414f, 843, 779); 1344 path.cubicTo(845.238586f, 784, 843, 781.761414f, 843, 779);
1354 path.lineTo(843, 216); 1345 path.lineTo(843, 216);
1355 path.close(); 1346 path.close();
1356 path.moveTo(844, 217); 1347 path.moveTo(844, 217);
1357 path.cubicTo(844, 214.238571f, 846.238586f, 212, 849, 212); 1348 path.cubicTo(844, 214.238571f, 846.238586f, 212, 849, 212);
1358 path.lineTo(1190, 212); 1349 path.lineTo(1190, 212);
1359 path.cubicTo(1192.76147f, 212, 1195, 214.238571f, 1195, 217); 1350 path.cubicTo(1192.76147f, 212, 1195, 214.238571f, 1195, 217);
1360 path.lineTo(1195, 778); 1351 path.lineTo(1195, 778);
1361 path.cubicTo(1195, 779.65686f, 1192.76147f, 781, 1190, 781); 1352 path.cubicTo(1195, 779.65686f, 1192.76147f, 781, 1190, 781);
1362 path.lineTo(849, 781); 1353 path.lineTo(849, 781);
1363 path.cubicTo(846.238586f, 781, 844, 779.65686f, 844, 778); 1354 path.cubicTo(846.238586f, 781, 844, 779.65686f, 844, 778);
1364 path.lineTo(844, 217); 1355 path.lineTo(844, 217);
1365 path.close(); 1356 path.close();
1366 SkPath pathB; 1357 SkPath pathB;
1367 pathB.setFillType(SkPath::kWinding_FillType); 1358 pathB.setFillType(SkPath::kWinding_FillType);
1368 pathB.moveTo(843, 784); 1359 pathB.moveTo(843, 784);
1369 pathB.lineTo(843, 779); 1360 pathB.lineTo(843, 779);
1370 pathB.lineTo(1196, 779.000061f); 1361 pathB.lineTo(1196, 779.000061f);
1371 pathB.lineTo(1196, 784); 1362 pathB.lineTo(1196, 784);
1372 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1363 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1373 } 1364 }
1374 1365
1375 1366 static void skpwww_sciality_com_100(skiatest::Reporter* reporter, const char* fi lename) {
1376 static void skpwww_sciality_com_100(skiatest::Reporter* reporter) {
1377 SkPath path; 1367 SkPath path;
1378 path.setFillType(SkPath::kEvenOdd_FillType); 1368 path.setFillType(SkPath::kEvenOdd_FillType);
1379 path.moveTo(162, 468); 1369 path.moveTo(162, 468);
1380 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472); 1370 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472);
1381 path.lineTo(158, 528); 1371 path.lineTo(158, 528);
1382 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532); 1372 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532);
1383 path.lineTo(275, 532); 1373 path.lineTo(275, 532);
1384 path.cubicTo(277.209137f, 532, 279, 530.209106f, 279, 528); 1374 path.cubicTo(277.209137f, 532, 279, 530.209106f, 279, 528);
1385 path.lineTo(279, 472); 1375 path.lineTo(279, 472);
1386 path.cubicTo(279, 469.790863f, 277.209137f, 468, 275, 468); 1376 path.cubicTo(279, 469.790863f, 277.209137f, 468, 275, 468);
1387 path.lineTo(162, 468); 1377 path.lineTo(162, 468);
1388 path.close(); 1378 path.close();
1389 SkPath pathB; 1379 SkPath pathB;
1390 pathB.setFillType(SkPath::kWinding_FillType); 1380 pathB.setFillType(SkPath::kWinding_FillType);
1391 pathB.moveTo(275, 468); 1381 pathB.moveTo(275, 468);
1392 pathB.cubicTo(276.65686f, 468, 278, 469.34314f, 278, 471); 1382 pathB.cubicTo(276.65686f, 468, 278, 469.34314f, 278, 471);
1393 pathB.lineTo(278, 529); 1383 pathB.lineTo(278, 529);
1394 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532); 1384 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532);
1395 pathB.lineTo(161, 532); 1385 pathB.lineTo(161, 532);
1396 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529); 1386 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529);
1397 pathB.lineTo(158, 471); 1387 pathB.lineTo(158, 471);
1398 pathB.cubicTo(158, 469.34314f, 159.34314f, 468, 161, 468); 1388 pathB.cubicTo(158, 469.34314f, 159.34314f, 468, 161, 468);
1399 pathB.lineTo(275, 468); 1389 pathB.lineTo(275, 468);
1400 pathB.close(); 1390 pathB.close();
1401 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1391 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1402 } 1392 }
1403 1393
1404 #if TRY_SEPT_BROKEN_TESTS 1394 static void skpwww_sciality_com_101(skiatest::Reporter* reporter, const char* fi lename) {
1405 static void skpwww_sciality_com_101(skiatest::Reporter* reporter) {
1406 SkPath path; 1395 SkPath path;
1407 path.setFillType(SkPath::kEvenOdd_FillType); 1396 path.setFillType(SkPath::kEvenOdd_FillType);
1408 path.moveTo(162, 468); 1397 path.moveTo(162, 468);
1409 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472); 1398 path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472);
1410 path.lineTo(158, 528); 1399 path.lineTo(158, 528);
1411 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532); 1400 path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532);
1412 path.lineTo(275.009186f, 532); 1401 path.lineTo(275.009186f, 532);
1413 path.cubicTo(276.661774f, 531.994995f, 278, 530.653748f, 278, 529); 1402 path.cubicTo(276.661774f, 531.994995f, 278, 530.653748f, 278, 529);
1414 path.lineTo(278, 471); 1403 path.lineTo(278, 471);
1415 path.cubicTo(278, 469.346375f, 276.662079f, 468.005249f, 275.009705f, 468); 1404 path.cubicTo(278, 469.346375f, 276.662079f, 468.005249f, 275.009705f, 468);
1416 path.lineTo(162, 468); 1405 path.lineTo(162, 468);
1417 path.close(); 1406 path.close();
1418 SkPath pathB; 1407 SkPath pathB;
1419 pathB.setFillType(SkPath::kInverseWinding_FillType); 1408 pathB.setFillType(SkPath::kInverseWinding_FillType);
1420 pathB.moveTo(161, 469); 1409 pathB.moveTo(161, 469);
1421 pathB.lineTo(275, 469); 1410 pathB.lineTo(275, 469);
1422 pathB.cubicTo(276.65686f, 469, 278, 469.895416f, 278, 471); 1411 pathB.cubicTo(276.65686f, 469, 278, 469.895416f, 278, 471);
1423 pathB.lineTo(278, 529); 1412 pathB.lineTo(278, 529);
1424 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532); 1413 pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532);
1425 pathB.lineTo(161, 532); 1414 pathB.lineTo(161, 532);
1426 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529); 1415 pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529);
1427 pathB.lineTo(158, 471); 1416 pathB.lineTo(158, 471);
1428 pathB.cubicTo(158, 469.895416f, 159.34314f, 469, 161, 469); 1417 pathB.cubicTo(158, 469.895416f, 159.34314f, 469, 161, 469);
1429 pathB.close(); 1418 pathB.close();
1430 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1419 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1431 } 1420 }
1432 #endif
1433 1421
1434 static void skpwww_meb_gov_tr_5(skiatest::Reporter* reporter) { 1422 static void skpwww_meb_gov_tr_5(skiatest::Reporter* reporter, const char* filena me) {
1435 SkPath path; 1423 SkPath path;
1436 path.setFillType(SkPath::kEvenOdd_FillType); 1424 path.setFillType(SkPath::kEvenOdd_FillType);
1437 path.moveTo(137.34314f, 145.34314f); 1425 path.moveTo(137.34314f, 145.34314f);
1438 path.quadTo(139.687088f, 143.000793f, 143, 143); 1426 path.quadTo(139.687088f, 143.000793f, 143, 143);
1439 path.lineTo(242, 143); 1427 path.lineTo(242, 143);
1440 path.quadTo(245.312912f, 143.000793f, 247.65686f, 145.34314f); 1428 path.quadTo(245.312912f, 143.000793f, 247.65686f, 145.34314f);
1441 path.quadTo(249.999207f, 147.687088f, 250, 151); 1429 path.quadTo(249.999207f, 147.687088f, 250, 151);
1442 path.lineTo(250, 177); 1430 path.lineTo(250, 177);
1443 path.lineTo(135, 177); 1431 path.lineTo(135, 177);
1444 path.lineTo(135, 151); 1432 path.lineTo(135, 151);
1445 path.quadTo(135.000793f, 147.687088f, 137.34314f, 145.34314f); 1433 path.quadTo(135.000793f, 147.687088f, 137.34314f, 145.34314f);
1446 path.close(); 1434 path.close();
1447 SkPath pathB; 1435 SkPath pathB;
1448 pathB.setFillType(SkPath::kWinding_FillType); 1436 pathB.setFillType(SkPath::kWinding_FillType);
1449 pathB.moveTo(135, 143); 1437 pathB.moveTo(135, 143);
1450 pathB.lineTo(250, 143); 1438 pathB.lineTo(250, 143);
1451 pathB.lineTo(250, 177); 1439 pathB.lineTo(250, 177);
1452 pathB.lineTo(135, 177); 1440 pathB.lineTo(135, 177);
1453 pathB.close(); 1441 pathB.close();
1454 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1442 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1455 } 1443 }
1456 1444
1457 #if TRY_SEPT_BROKEN_TESTS 1445 static void skpwww_meb_gov_tr_6(skiatest::Reporter* reporter, const char* filena me) {
1458 static void skpwww_meb_gov_tr_6(skiatest::Reporter* reporter) {
1459 SkPath path; 1446 SkPath path;
1460 path.setFillType(SkPath::kEvenOdd_FillType); 1447 path.setFillType(SkPath::kEvenOdd_FillType);
1461 path.moveTo(143, 143); 1448 path.moveTo(143, 143);
1462 path.quadTo(139.687088f, 143.000793f, 137.34314f, 145.34314f); 1449 path.quadTo(139.687088f, 143.000793f, 137.34314f, 145.34314f);
1463 path.quadTo(135.000793f, 147.687088f, 135, 151); 1450 path.quadTo(135.000793f, 147.687088f, 135, 151);
1464 path.lineTo(135, 177); 1451 path.lineTo(135, 177);
1465 path.lineTo(250, 177); 1452 path.lineTo(250, 177);
1466 path.lineTo(250, 151); 1453 path.lineTo(250, 151);
1467 path.quadTo(249.999207f, 147.687088f, 247.65686f, 145.34314f); 1454 path.quadTo(249.999207f, 147.687088f, 247.65686f, 145.34314f);
1468 path.quadTo(245.312912f, 143.000793f, 242, 143); 1455 path.quadTo(245.312912f, 143.000793f, 242, 143);
1469 path.lineTo(143, 143); 1456 path.lineTo(143, 143);
1470 path.close(); 1457 path.close();
1471 SkPath pathB; 1458 SkPath pathB;
1472 pathB.setFillType(SkPath::kInverseWinding_FillType); 1459 pathB.setFillType(SkPath::kInverseWinding_FillType);
1473 pathB.moveTo(143, 143); 1460 pathB.moveTo(143, 143);
1474 pathB.lineTo(242, 143); 1461 pathB.lineTo(242, 143);
1475 pathB.cubicTo(245.865997f, 143, 249, 146.581726f, 249, 151); 1462 pathB.cubicTo(245.865997f, 143, 249, 146.581726f, 249, 151);
1476 pathB.lineTo(249, 177); 1463 pathB.lineTo(249, 177);
1477 pathB.lineTo(135, 177); 1464 pathB.lineTo(135, 177);
1478 pathB.lineTo(135, 151); 1465 pathB.lineTo(135, 151);
1479 pathB.cubicTo(135, 146.581726f, 138.581726f, 143, 143, 143); 1466 pathB.cubicTo(135, 146.581726f, 138.581726f, 143, 143, 143);
1480 pathB.close(); 1467 pathB.close();
1481 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1468 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1482 } 1469 }
1483 #endif
1484 1470
1485 static void skpgithub_io_25(skiatest::Reporter* reporter) { 1471 static void skpgithub_io_25(skiatest::Reporter* reporter, const char* filename) {
1486 SkPath path; 1472 SkPath path;
1487 path.setFillType(SkPath::kEvenOdd_FillType); 1473 path.setFillType(SkPath::kEvenOdd_FillType);
1488 path.moveTo(1001.87866f, 14.8786793f); 1474 path.moveTo(1001.87866f, 14.8786793f);
1489 path.quadTo(1002.75745f, 14.0001001f, 1004, 14); 1475 path.quadTo(1002.75745f, 14.0001001f, 1004, 14);
1490 path.lineTo(1105, 14); 1476 path.lineTo(1105, 14);
1491 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f); 1477 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f);
1492 path.quadTo(1107.99988f, 15.7574596f, 1108, 17); 1478 path.quadTo(1107.99988f, 15.7574596f, 1108, 17);
1493 path.lineTo(1108, 41); 1479 path.lineTo(1108, 41);
1494 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f); 1480 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f);
1495 path.quadTo(1106.24255f, 43.9999008f, 1105, 44); 1481 path.quadTo(1106.24255f, 43.9999008f, 1105, 44);
1496 path.lineTo(1004, 44); 1482 path.lineTo(1004, 44);
1497 path.quadTo(1002.75745f, 43.9999008f, 1001.87866f, 43.1213188f); 1483 path.quadTo(1002.75745f, 43.9999008f, 1001.87866f, 43.1213188f);
1498 path.quadTo(1001.00012f, 42.2425423f, 1001, 41); 1484 path.quadTo(1001.00012f, 42.2425423f, 1001, 41);
1499 path.lineTo(1001, 17); 1485 path.lineTo(1001, 17);
1500 path.quadTo(1001.00012f, 15.7574596f, 1001.87866f, 14.8786793f); 1486 path.quadTo(1001.00012f, 15.7574596f, 1001.87866f, 14.8786793f);
1501 path.close(); 1487 path.close();
1502 SkPath pathB; 1488 SkPath pathB;
1503 pathB.setFillType(SkPath::kInverseWinding_FillType); 1489 pathB.setFillType(SkPath::kInverseWinding_FillType);
1504 pathB.moveTo(1005, 16); 1490 pathB.moveTo(1005, 16);
1505 pathB.lineTo(1104, 16); 1491 pathB.lineTo(1104, 16);
1506 pathB.cubicTo(1105.10461f, 16, 1106, 16.8954296f, 1106, 18); 1492 pathB.cubicTo(1105.10461f, 16, 1106, 16.8954296f, 1106, 18);
1507 pathB.lineTo(1106, 40); 1493 pathB.lineTo(1106, 40);
1508 pathB.cubicTo(1106, 41.1045685f, 1105.10461f, 42, 1104, 42); 1494 pathB.cubicTo(1106, 41.1045685f, 1105.10461f, 42, 1104, 42);
1509 pathB.lineTo(1005, 42); 1495 pathB.lineTo(1005, 42);
1510 pathB.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40); 1496 pathB.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40);
1511 pathB.lineTo(1003, 18); 1497 pathB.lineTo(1003, 18);
1512 pathB.cubicTo(1003, 16.8954296f, 1003.89545f, 16, 1005, 16); 1498 pathB.cubicTo(1003, 16.8954296f, 1003.89545f, 16, 1005, 16);
1513 pathB.close(); 1499 pathB.close();
1514 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1500 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1515 } 1501 }
1516 1502
1517 static void skpgithub_io_26(skiatest::Reporter* reporter) { 1503 static void skpgithub_io_26(skiatest::Reporter* reporter, const char* filename) {
1518 SkPath path; 1504 SkPath path;
1519 path.setFillType(SkPath::kEvenOdd_FillType); 1505 path.setFillType(SkPath::kEvenOdd_FillType);
1520 path.moveTo(1001.87866f, 14.8786793f); 1506 path.moveTo(1001.87866f, 14.8786793f);
1521 path.quadTo(1002.75745f, 14.0001001f, 1004, 14); 1507 path.quadTo(1002.75745f, 14.0001001f, 1004, 14);
1522 path.lineTo(1105, 14); 1508 path.lineTo(1105, 14);
1523 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f); 1509 path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f);
1524 path.quadTo(1107.99988f, 15.7574596f, 1108, 17); 1510 path.quadTo(1107.99988f, 15.7574596f, 1108, 17);
1525 path.lineTo(1108, 41); 1511 path.lineTo(1108, 41);
1526 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f); 1512 path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f);
1527 path.quadTo(1106.24255f, 43.9999008f, 1105, 44); 1513 path.quadTo(1106.24255f, 43.9999008f, 1105, 44);
(...skipping 12 matching lines...) Expand all
1540 path.lineTo(1005, 42); 1526 path.lineTo(1005, 42);
1541 path.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40); 1527 path.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40);
1542 path.lineTo(1003, 18); 1528 path.lineTo(1003, 18);
1543 path.close(); 1529 path.close();
1544 SkPath pathB; 1530 SkPath pathB;
1545 pathB.setFillType(SkPath::kWinding_FillType); 1531 pathB.setFillType(SkPath::kWinding_FillType);
1546 pathB.moveTo(1108, 14); 1532 pathB.moveTo(1108, 14);
1547 pathB.lineTo(1106, 16); 1533 pathB.lineTo(1106, 16);
1548 pathB.lineTo(1105.97998f, 46.0200005f); 1534 pathB.lineTo(1105.97998f, 46.0200005f);
1549 pathB.lineTo(1108, 44); 1535 pathB.lineTo(1108, 44);
1550 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1536 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1551 } 1537 }
1552 1538
1553 static void skpskpicture14(skiatest::Reporter* reporter) { 1539 static void skpskpicture14(skiatest::Reporter* reporter, const char* filename) {
1554 SkPath path; 1540 SkPath path;
1555 path.setFillType(SkPath::kEvenOdd_FillType); 1541 path.setFillType(SkPath::kEvenOdd_FillType);
1556 path.moveTo(0, 994); 1542 path.moveTo(0, 994);
1557 path.lineTo(0, 0); 1543 path.lineTo(0, 0);
1558 path.lineTo(512, 0); 1544 path.lineTo(512, 0);
1559 path.lineTo(512, 994); 1545 path.lineTo(512, 994);
1560 path.lineTo(0, 994); 1546 path.lineTo(0, 994);
1561 path.close(); 1547 path.close();
1562 SkPath pathB; 1548 SkPath pathB;
1563 pathB.setFillType(SkPath::kWinding_FillType); 1549 pathB.setFillType(SkPath::kWinding_FillType);
1564 pathB.moveTo(-317, 168); 1550 pathB.moveTo(-317, 168);
1565 pathB.quadTo(-317, 166.757385f, -316.121338f, 165.878662f); 1551 pathB.quadTo(-317, 166.757385f, -316.121338f, 165.878662f);
1566 pathB.quadTo(-315.242645f, 165, -314, 165); 1552 pathB.quadTo(-315.242645f, 165, -314, 165);
1567 pathB.lineTo(320, 165); 1553 pathB.lineTo(320, 165);
1568 pathB.quadTo(321.242615f, 165, 322.121338f, 165.878662f); 1554 pathB.quadTo(321.242615f, 165, 322.121338f, 165.878662f);
1569 pathB.quadTo(323, 166.757385f, 323, 168); 1555 pathB.quadTo(323, 166.757385f, 323, 168);
1570 pathB.lineTo(323, 193); 1556 pathB.lineTo(323, 193);
1571 pathB.lineTo(-317, 193); 1557 pathB.lineTo(-317, 193);
1572 pathB.close(); 1558 pathB.close();
1573 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1559 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1574 } 1560 }
1575 1561
1576 #if TRY_SEPT_BROKEN_TESTS 1562 static void skpskpicture15(skiatest::Reporter* reporter, const char* filename) {
1577 static void skpskpicture15(skiatest::Reporter* reporter) {
1578 SkPath path; 1563 SkPath path;
1579 path.setFillType(SkPath::kEvenOdd_FillType); 1564 path.setFillType(SkPath::kEvenOdd_FillType);
1580 path.moveTo(0, 193); 1565 path.moveTo(0, 193);
1581 path.lineTo(323, 193); 1566 path.lineTo(323, 193);
1582 path.lineTo(323, 168); 1567 path.lineTo(323, 168);
1583 path.quadTo(323, 166.757385f, 322.121338f, 165.878662f); 1568 path.quadTo(323, 166.757385f, 322.121338f, 165.878662f);
1584 path.quadTo(321.242615f, 165, 320, 165); 1569 path.quadTo(321.242615f, 165, 320, 165);
1585 path.lineTo(0, 165); 1570 path.lineTo(0, 165);
1586 path.lineTo(0, 193); 1571 path.lineTo(0, 193);
1587 path.close(); 1572 path.close();
1588 SkPath pathB; 1573 SkPath pathB;
1589 pathB.setFillType(SkPath::kInverseWinding_FillType); 1574 pathB.setFillType(SkPath::kInverseWinding_FillType);
1590 pathB.moveTo(-314, 165); 1575 pathB.moveTo(-314, 165);
1591 pathB.lineTo(320, 165); 1576 pathB.lineTo(320, 165);
1592 pathB.cubicTo(321.65686f, 165, 323, 166.34314f, 323, 168); 1577 pathB.cubicTo(321.65686f, 165, 323, 166.34314f, 323, 168);
1593 pathB.lineTo(323, 192); 1578 pathB.lineTo(323, 192);
1594 pathB.lineTo(-317, 192); 1579 pathB.lineTo(-317, 192);
1595 pathB.lineTo(-317, 168); 1580 pathB.lineTo(-317, 168);
1596 pathB.cubicTo(-317, 166.34314f, -315.65686f, 165, -314, 165); 1581 pathB.cubicTo(-317, 166.34314f, -315.65686f, 165, -314, 165);
1597 pathB.close(); 1582 pathB.close();
1598 testPathOp(reporter, path, pathB, kIntersect_PathOp); 1583 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1599 } 1584 }
1600 #endif
1601 1585
1602 static void (*firstTest)(skiatest::Reporter* ) = 0; 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) {
1592 SkPath path;
1593 path.setFillType(SkPath::kEvenOdd_FillType);
1594 path.moveTo(183, 8507);
1595 path.lineTo(552, 8506.99023f);
1596 path.lineTo(552, 8508);
1597 path.lineTo(183, 8508);
1598 path.lineTo(183, 8507);
1599 path.close();
1600 SkPath pathB;
1601 pathB.setFillType(SkPath::kWinding_FillType);
1602 pathB.moveTo(183, 8508);
1603 pathB.lineTo(183, 8506.99023f);
1604 pathB.lineTo(552, 8507);
1605 pathB.lineTo(552, 8508);
1606 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1607 }
1608
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) {
1617 SkPath path;
1618 path.setFillType(SkPath::kEvenOdd_FillType);
1619 path.moveTo(140, 1000);
1620 path.lineTo(140, 842);
1621 path.lineTo(141, 842);
1622 path.lineTo(141.14502f, 1000);
1623 path.lineTo(140, 1000);
1624 path.close();
1625 SkPath pathB;
1626 pathB.setFillType(SkPath::kWinding_FillType);
1627 pathB.moveTo(140, 842);
1628 pathB.lineTo(141.008835f, 837.9646f);
1629 pathB.lineTo(141.235291f, 1109.05884f);
1630 pathB.lineTo(140, 1114);
1631 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1632 }
1633
1634 // fails on angle insert -- haven't investigated yet
1635 static void skpwww_alrakoba_net_62(skiatest::Reporter* reporter, const char* fil ename) {
1636 SkPath path;
1637 path.setFillType(SkPath::kEvenOdd_FillType);
1638 path.moveTo(134.34314f, 9802.34277f);
1639 path.quadTo(132, 9804.68652f, 132, 9808);
1640 path.lineTo(132, 9822);
1641 path.quadTo(132, 9825.31348f, 134.34314f, 9827.65723f);
1642 path.quadTo(136.686295f, 9830, 140, 9830);
1643 path.lineTo(140.028473f, 9830);
1644 path.lineTo(139.877213f, 9828.90723f);
1645 path.quadTo(137.692032f, 9828.5332f, 136.050247f, 9826.65723f);
1646 path.quadTo(134, 9824.31348f, 134, 9821);
1647 path.lineTo(134, 9809);
1648 path.quadTo(134, 9806.10059f, 136.050247f, 9804.0498f);
1649 path.lineTo(134.34314f, 9802.34277f);
1650 path.close();
1651 SkPath pathB;
1652 pathB.setFillType(SkPath::kWinding_FillType);
1653 pathB.moveTo(132, 9800);
1654 pathB.lineTo(135.962357f, 9800);
1655 pathB.lineTo(140, 9830);
1656 pathB.lineTo(132, 9830);
1657 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1658 }
1659
1660 /* asserts in alignSpanState looks like a coincident related bug */
1661 static void skpwww_cityads_ru_249(skiatest::Reporter* reporter, const char* file name) {
1662 SkPath path;
1663 path.setFillType(SkPath::kEvenOdd_FillType);
1664 path.moveTo(817.464478f, 11.4644661f);
1665 path.quadTo(818.928955f, 10, 821, 10);
1666 path.lineTo(998, 10);
1667 path.quadTo(999.082947f, 10, 1000, 10.4003992f);
1668 path.lineTo(1000, 13.3527431f);
1669 path.quadTo(999.917603f, 13.2607508f, 999.82843f, 13.1715727f);
1670 path.quadTo(998.65686f, 12, 997, 12);
1671 path.lineTo(822, 12);
1672 path.quadTo(820.34314f, 12, 819.17157f, 13.1715727f);
1673 path.quadTo(818, 14.3431454f, 818, 16);
1674 path.lineTo(818, 28);
1675 path.quadTo(818, 29.6568546f, 819.17157f, 30.8284264f);
1676 path.quadTo(820.34314f, 32, 822, 32);
1677 path.lineTo(997, 32);
1678 path.quadTo(998.65686f, 32, 999.82843f, 30.8284264f);
1679 path.quadTo(999.917603f, 30.7392426f, 1000, 30.6472569f);
1680 path.lineTo(1000, 33.5996017f);
1681 path.quadTo(999.082947f, 34, 998, 34);
1682 path.lineTo(821, 34);
1683 path.quadTo(818.928955f, 34, 817.464478f, 32.5355339f);
1684 path.quadTo(816, 31.0710678f, 816, 29);
1685 path.lineTo(816, 15);
1686 path.quadTo(816, 12.9289322f, 817.464478f, 11.4644661f);
1687 path.close();
1688 SkPath pathB;
1689 pathB.setFillType(SkPath::kWinding_FillType);
1690 pathB.moveTo(1003, 10);
1691 pathB.lineTo(1000, 13);
1692 pathB.lineTo(999.969971f, 37.0299988f);
1693 pathB.lineTo(1003, 34);
1694 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1695 }
1696
1697 // fails on angle insert
1698 static void skpwww_dealnews_com_315(skiatest::Reporter* reporter, const char* fi lename) {
1699 SkPath path;
1700 path.setFillType(SkPath::kEvenOdd_FillType);
1701 path.moveTo(966.464478f, 4261.46436f);
1702 path.quadTo(965, 4262.92871f, 965, 4265);
1703 path.lineTo(965, 4276);
1704 path.quadTo(965, 4278.07129f, 966.464478f, 4279.53564f);
1705 path.quadTo(967.928955f, 4281, 970, 4281);
1706 path.lineTo(970.020325f, 4281);
1707 path.lineTo(969.887512f, 4279.81641f);
1708 path.quadTo(968.928284f, 4279.48145f, 968.17157f, 4278.53564f);
1709 path.quadTo(967, 4277.07129f, 967, 4275);
1710 path.lineTo(967, 4266);
1711 path.quadTo(967, 4264.44287f, 968.035217f, 4263.31396f);
1712 path.lineTo(968, 4263);
1713 path.lineTo(966.464478f, 4261.46436f);
1714 path.close();
1715 SkPath pathB;
1716 pathB.setFillType(SkPath::kWinding_FillType);
1717 pathB.moveTo(965, 4260);
1718 pathB.lineTo(967.716675f, 4260);
1719 pathB.lineTo(970, 4281);
1720 pathB.lineTo(965, 4281);
1721 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1722 }
1723
1724 // fails in intersections insert
1725 static void skpwww_inmotionhosting_com_9(skiatest::Reporter* reporter, const cha r* filename) {
1726 SkPath path;
1727 path.setFillType(SkPath::kEvenOdd_FillType);
1728 path.moveTo(991.633911f, 1839);
1729 path.lineTo(964.265015f, 1839);
1730 path.lineTo(963.734985f, 1893.73242f);
1731 path.lineTo(991.3703f, 1894);
1732 path.lineTo(1018.23492f, 1894);
1733 path.lineTo(1018.76501f, 1839.2627f);
1734 path.lineTo(991.638184f, 1839);
1735 path.lineTo(991.633911f, 1839);
1736 path.close();
1737 SkPath pathB;
1738 pathB.setFillType(SkPath::kWinding_FillType);
1739 pathB.moveTo(964.267578f, 1838.73499f);
1740 pathB.lineTo(1019.26501f, 1839.26758f);
1741 pathB.lineTo(1018.73242f, 1894.26501f);
1742 pathB.lineTo(963.734985f, 1893.73242f);
1743 pathB.close();
1744 testPathOp(reporter, path, pathB, kIntersect_PathOp, filename);
1745 }
1746
1747 static void (*firstTest)(skiatest::Reporter* , const char* filename) = 0;
1603 1748
1604 static struct TestDesc tests[] = { 1749 static struct TestDesc tests[] = {
1750 TEST(skpnamecheap_com_405),
1751 TEST(skpelpais_com_18),
1752 TEST(skpwww_cityads_ru_249),
1753 TEST(skpwww_alrakoba_net_62),
1754 TEST(skpwww_dealnews_com_315),
1755 TEST(skpwww_inmotionhosting_com_9),
1605 TEST(skpskpicture14), 1756 TEST(skpskpicture14),
1606 #if TRY_SEPT_BROKEN_TESTS
1607 TEST(skpskpicture15), 1757 TEST(skpskpicture15),
1608 TEST(skpwww_meb_gov_tr_6), 1758 TEST(skpwww_meb_gov_tr_6),
1609 TEST(skpwww_sciality_com_101), 1759 TEST(skpwww_sciality_com_101),
1610 TEST(skpwww_booking_com_68), // similar to lavoixdunord 1760 TEST(skpwww_booking_com_68), // similar to lavoixdunord
1611 TEST(skpwww_despegar_com_mx_272), // similar to lavoixdunord 1761 TEST(skpwww_despegar_com_mx_272), // similar to lavoixdunord
1612 TEST(skpwww_lavoixdunord_fr_11), // not quite coincident, sorting line/cubi c fails 1762 TEST(skpwww_lavoixdunord_fr_11), // not quite coincident, sorting line/cubi c fails
1613 TEST(skppptv_com_62), // cubic have nearly identical tangents, sort incorre ctly 1763 TEST(skppptv_com_62), // cubic have nearly identical tangents, sort incorre ctly
1614 #endif
1615 #if TRY_BROKEN_TESTS
1616 TEST(skppchappy_com_au102), 1764 TEST(skppchappy_com_au102),
1617 TEST(skpsciality_com161), 1765 TEST(skpsciality_com161),
1618 TEST(skpi_gino_com16), 1766 TEST(skpi_gino_com16),
1619 TEST(skpnaoxrane_ru23), // see test for failure evaluation 1767 TEST(skpnaoxrane_ru23), // see test for failure evaluation
1620 TEST(skptcmevents_org23), // see test for (partial) failure evaluation 1768 TEST(skptcmevents_org23), // see test for (partial) failure evaluation
1621 TEST(skpredbullskatearcade_es16), // cubic have nearly identical tangents, sort incorrectly 1769 TEST(skpredbullskatearcade_es16), // cubic have nearly identical tangents, sort incorrectly
1622 TEST(skpfinanzasdigital_com9), // cubic/quad tangents too close to sort 1770 TEST(skpfinanzasdigital_com9), // cubic/quad tangents too close to sort
1623 #endif
1624 TEST(skpgithub_io_26), 1771 TEST(skpgithub_io_26),
1625 TEST(skpgithub_io_25), 1772 TEST(skpgithub_io_25),
1626 TEST(skpwww_meb_gov_tr_5), 1773 TEST(skpwww_meb_gov_tr_5),
1627 TEST(skpwww_sciality_com_100), 1774 TEST(skpwww_sciality_com_100),
1628 TEST(skpwww_joomla_org_23), 1775 TEST(skpwww_joomla_org_23),
1629 TEST(skpwww_macrumors_com_131), 1776 TEST(skpwww_macrumors_com_131),
1630 TEST(skpwww_briian_com_34), 1777 TEST(skpwww_briian_com_34),
1631 TEST(skpwww_leadpages_net_84), 1778 TEST(skpwww_leadpages_net_84),
1632 TEST(skpwww_fj_p_com_22), 1779 TEST(skpwww_fj_p_com_22),
1633 TEST(skppartainasdemo250_org56), 1780 TEST(skppartainasdemo250_org56),
(...skipping 15 matching lines...) Expand all
1649 TEST(skpilkoora_com37), 1796 TEST(skpilkoora_com37),
1650 TEST(skpmm4everfriends_com43), 1797 TEST(skpmm4everfriends_com43),
1651 TEST(skpflite_com41), 1798 TEST(skpflite_com41),
1652 TEST(skpcheeseandburger_com225), 1799 TEST(skpcheeseandburger_com225),
1653 TEST(skpeverytechpro_blogspot_com100), 1800 TEST(skpeverytechpro_blogspot_com100),
1654 }; 1801 };
1655 1802
1656 static const size_t testCount = SK_ARRAY_COUNT(tests); 1803 static const size_t testCount = SK_ARRAY_COUNT(tests);
1657 1804
1658 static bool runReverse = false; 1805 static bool runReverse = false;
1659 static void (*stopTest)(skiatest::Reporter* ) = 0; 1806 static void (*stopTest)(skiatest::Reporter* , const char* filename) = 0;
1660 1807
1661 DEF_TEST(PathOpsSkp, reporter) { 1808 DEF_TEST(PathOpsSkp, reporter) {
1662 #if DEBUG_SHOW_TEST_NAME 1809 #if DEBUG_SHOW_TEST_NAME
1663 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); 1810 strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH);
1664 #endif 1811 #endif
1665 RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse); 1812 RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse);
1666 } 1813 }
OLDNEW
« no previous file with comments | « tests/PathOpsSkpClipTest.cpp ('k') | tests/Test.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698