| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright 2012 Google Inc. | 2  * Copyright 2012 Google Inc. | 
| 3  * | 3  * | 
| 4  * Use of this source code is governed by a BSD-style license that can be | 4  * Use of this source code is governed by a BSD-style license that can be | 
| 5  * found in the LICENSE file. | 5  * found in the LICENSE file. | 
| 6  */ | 6  */ | 
| 7 #include "PathOpsExtendedTest.h" | 7 #include "PathOpsExtendedTest.h" | 
| 8 | 8 | 
| 9 #define TEST(name) { name, #name } | 9 #define TEST(name) { name, #name } | 
| 10 | 10 | 
| (...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 501     pathB.lineTo(1233, 787); | 501     pathB.lineTo(1233, 787); | 
| 502     pathB.quadTo(1233, 793.213196f, 1228.60791f, 797.608032f); | 502     pathB.quadTo(1233, 793.213196f, 1228.60791f, 797.608032f); | 
| 503     pathB.quadTo(1224.21313f, 802, 1218, 802); | 503     pathB.quadTo(1224.21313f, 802, 1218, 802); | 
| 504     pathB.lineTo(48, 802); | 504     pathB.lineTo(48, 802); | 
| 505     pathB.quadTo(41.7867432f, 802, 37.3919678f, 797.608032f); | 505     pathB.quadTo(41.7867432f, 802, 37.3919678f, 797.608032f); | 
| 506     pathB.quadTo(33, 793.213196f, 33, 787); | 506     pathB.quadTo(33, 793.213196f, 33, 787); | 
| 507     pathB.close(); | 507     pathB.close(); | 
| 508     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 508     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
| 509 } | 509 } | 
| 510 | 510 | 
| 511 #define TRY_BROKEN_TESTS 0 |  | 
| 512 #if TRY_BROKEN_TESTS |  | 
| 513 static void skpfrauen_magazin_com83(skiatest::Reporter* reporter) { | 511 static void skpfrauen_magazin_com83(skiatest::Reporter* reporter) { | 
| 514     SkPath path; | 512     SkPath path; | 
| 515     path.setFillType(SkPath::kEvenOdd_FillType); | 513     path.setFillType(SkPath::kEvenOdd_FillType); | 
| 516     path.moveTo(808, 886); | 514     path.moveTo(808, 886); | 
| 517     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); | 
| 518     path.lineTo(1122.90002f, 890); | 516     path.lineTo(1122.90002f, 890); | 
| 519     path.cubicTo(1122.43677f, 887.717773f, 1120.41895f, 886, 1118, 886); | 517     path.cubicTo(1122.43677f, 887.717773f, 1120.41895f, 886, 1118, 886); | 
| 520     path.lineTo(808, 886); | 518     path.lineTo(808, 886); | 
| 521     path.close(); | 519     path.close(); | 
| 522     SkPath pathB; | 520     SkPath pathB; | 
| 523     pathB.setFillType(SkPath::kInverseWinding_FillType); | 521     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
| 524     pathB.moveTo(808, 886); | 522     pathB.moveTo(808, 886); | 
| 525     pathB.lineTo(1118, 886); | 523     pathB.lineTo(1118, 886); | 
| 526     pathB.cubicTo(1120.76147f, 886, 1123, 888.238586f, 1123, 891); | 524     pathB.cubicTo(1120.76147f, 886, 1123, 888.238586f, 1123, 891); | 
| 527     pathB.lineTo(1123, 1521); | 525     pathB.lineTo(1123, 1521); | 
| 528     pathB.cubicTo(1123, 1523.20911f, 1120.76147f, 1525, 1118, 1525); | 526     pathB.cubicTo(1123, 1523.20911f, 1120.76147f, 1525, 1118, 1525); | 
| 529     pathB.lineTo(808, 1525); | 527     pathB.lineTo(808, 1525); | 
| 530     pathB.cubicTo(805.238586f, 1525, 803, 1523.20911f, 803, 1521); | 528     pathB.cubicTo(805.238586f, 1525, 803, 1523.20911f, 803, 1521); | 
| 531     pathB.lineTo(803, 891); | 529     pathB.lineTo(803, 891); | 
| 532     pathB.cubicTo(803, 888.238586f, 805.238586f, 886, 808, 886); | 530     pathB.cubicTo(803, 888.238586f, 805.238586f, 886, 808, 886); | 
| 533     pathB.close(); | 531     pathB.close(); | 
| 534     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 532     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
| 535 } | 533 } | 
| 536 | 534 | 
|  | 535 #define TRY_BROKEN_TESTS 0 | 
|  | 536 #if TRY_BROKEN_TESTS | 
| 537 static void skpi_gino_com16(skiatest::Reporter* reporter) { | 537 static void skpi_gino_com16(skiatest::Reporter* reporter) { | 
| 538     SkPath path; | 538     SkPath path; | 
| 539     path.setFillType(SkPath::kEvenOdd_FillType); | 539     path.setFillType(SkPath::kEvenOdd_FillType); | 
| 540     path.moveTo(184, 734); | 540     path.moveTo(184, 734); | 
| 541     path.quadTo(133.051727f, 734, 97.0258636f, 770.025879f); | 541     path.quadTo(133.051727f, 734, 97.0258636f, 770.025879f); | 
| 542     path.quadTo(61, 806.051758f, 61, 857); | 542     path.quadTo(61, 806.051758f, 61, 857); | 
| 543     path.quadTo(61, 895.835083f, 81.9317017f, 926); | 543     path.quadTo(61, 895.835083f, 81.9317017f, 926); | 
| 544     path.lineTo(286.068298f, 926); | 544     path.lineTo(286.068298f, 926); | 
| 545     path.quadTo(307, 895.835083f, 307, 857); | 545     path.quadTo(307, 895.835083f, 307, 857); | 
| 546     path.quadTo(307, 806.051758f, 270.974121f, 770.025879f); | 546     path.quadTo(307, 806.051758f, 270.974121f, 770.025879f); | 
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 607     pathB.cubicTo(770.65686f, 729, 772, 729.895447f, 772, 731); | 607     pathB.cubicTo(770.65686f, 729, 772, 729.895447f, 772, 731); | 
| 608     pathB.lineTo(772, 790); | 608     pathB.lineTo(772, 790); | 
| 609     pathB.cubicTo(772, 791.65686f, 770.65686f, 793, 769, 793); | 609     pathB.cubicTo(772, 791.65686f, 770.65686f, 793, 769, 793); | 
| 610     pathB.lineTo(655, 793); | 610     pathB.lineTo(655, 793); | 
| 611     pathB.cubicTo(653.34314f, 793, 652, 791.65686f, 652, 790); | 611     pathB.cubicTo(653.34314f, 793, 652, 791.65686f, 652, 790); | 
| 612     pathB.lineTo(652, 731); | 612     pathB.lineTo(652, 731); | 
| 613     pathB.cubicTo(652, 729.895447f, 653.34314f, 729, 655, 729); | 613     pathB.cubicTo(652, 729.895447f, 653.34314f, 729, 655, 729); | 
| 614     pathB.close(); | 614     pathB.close(); | 
| 615     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 615     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
| 616 } | 616 } | 
|  | 617 #endif | 
| 617 | 618 | 
| 618 static void skpsudoestenegocios_com186(skiatest::Reporter* reporter) { | 619 static void skpsudoestenegocios_com186(skiatest::Reporter* reporter) { | 
| 619     SkPath path; | 620     SkPath path; | 
| 620     path.setFillType(SkPath::kEvenOdd_FillType); | 621     path.setFillType(SkPath::kEvenOdd_FillType); | 
| 621     path.moveTo(0, 495); | 622     path.moveTo(0, 495); | 
| 622     path.lineTo(1.23685242e-14f, 293); | 623     path.lineTo(1.23685242e-14f, 293); | 
| 623     path.lineTo(44, 293); | 624     path.lineTo(44, 293); | 
| 624     path.quadTo(45.6568527f, 293, 46.8288002f, 294.171204f); | 625     path.quadTo(45.6568527f, 293, 46.8288002f, 294.171204f); | 
| 625     path.quadTo(48, 295.34314f, 48, 297); | 626     path.quadTo(48, 295.34314f, 48, 297); | 
| 626     path.lineTo(48, 491); | 627     path.lineTo(48, 491); | 
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 658     path.close(); | 659     path.close(); | 
| 659     SkPath pathB; | 660     SkPath pathB; | 
| 660     pathB.setFillType(SkPath::kWinding_FillType); | 661     pathB.setFillType(SkPath::kWinding_FillType); | 
| 661     pathB.moveTo(783.256775f, 713.443054f); | 662     pathB.moveTo(783.256775f, 713.443054f); | 
| 662     pathB.lineTo(863.428589f, 691.96106f); | 663     pathB.lineTo(863.428589f, 691.96106f); | 
| 663     pathB.lineTo(866.016724f, 701.620361f); | 664     pathB.lineTo(866.016724f, 701.620361f); | 
| 664     pathB.lineTo(785.84491f, 723.102356f); | 665     pathB.lineTo(785.84491f, 723.102356f); | 
| 665     pathB.close(); | 666     pathB.close(); | 
| 666     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 667     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
| 667 } | 668 } | 
|  | 669 | 
|  | 670 static void skphostloco_com11(skiatest::Reporter* reporter) { | 
|  | 671     SkPath path; | 
|  | 672     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 673     path.moveTo(6.66133815e-16f, 648); | 
|  | 674     path.lineTo(25.8522835f, 648); | 
|  | 675     path.quadTo(27.5087376f, 647.999634f, 28.6807098f, 646.82843f); | 
|  | 676     path.quadTo(29.8518829f, 645.656433f, 29.8522835f, 644); | 
|  | 677     path.lineTo(29.8522835f, 467); | 
|  | 678     path.quadTo(29.8518829f, 465.343536f, 28.6807098f, 464.17157f); | 
|  | 679     path.quadTo(27.5087376f, 463.000397f, 25.8522835f, 463); | 
|  | 680     path.lineTo(2.22044605e-16f, 463); | 
|  | 681     path.lineTo(6.66133815e-16f, 648); | 
|  | 682     path.close(); | 
|  | 683     SkPath pathB; | 
|  | 684     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 685     pathB.moveTo(0, 463); | 
|  | 686     pathB.lineTo(30, 463); | 
|  | 687     pathB.lineTo(30, 648); | 
|  | 688     pathB.lineTo(0, 648); | 
|  | 689     pathB.close(); | 
|  | 690     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 691 } | 
|  | 692 | 
|  | 693 static void skpsergeychunkevich_com8(skiatest::Reporter* reporter) { | 
|  | 694     SkPath path; | 
|  | 695     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 696     path.moveTo(0, 926); | 
|  | 697     path.lineTo(0, 0); | 
|  | 698     path.lineTo(1265, 0); | 
|  | 699     path.lineTo(1265, 926); | 
|  | 700     path.lineTo(0, 926); | 
|  | 701     path.close(); | 
|  | 702     SkPath pathB; | 
|  | 703     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 704     pathB.moveTo(37, 374); | 
|  | 705     pathB.lineTo(37, 535); | 
|  | 706     pathB.cubicTo(37, 536.65686f, 35.6568565f, 538, 34, 538); | 
|  | 707     pathB.lineTo(1.02866934e-14f, 538); | 
|  | 708     pathB.lineTo(6.12303177e-17f, 371); | 
|  | 709     pathB.lineTo(34, 371); | 
|  | 710     pathB.cubicTo(35.6568565f, 371, 37, 372.34314f, 37, 374); | 
|  | 711     pathB.close(); | 
|  | 712     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 713 } | 
|  | 714 | 
|  | 715 static void skptracksflow_com9(skiatest::Reporter* reporter) { | 
|  | 716     SkPath path; | 
|  | 717     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 718     path.moveTo(16, 56); | 
|  | 719     path.lineTo(32, 56); | 
|  | 720     path.lineTo(32, 72); | 
|  | 721     path.lineTo(16, 72); | 
|  | 722     path.lineTo(16, 56); | 
|  | 723     path.close(); | 
|  | 724     SkPath pathB; | 
|  | 725     pathB.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 726     pathB.moveTo(31.65625f, 70.0555649f); | 
|  | 727     pathB.lineTo(31.65625f, 70.0554962f); | 
|  | 728     pathB.lineTo(26.9727192f, 65.3615341f); | 
|  | 729     pathB.cubicTo(27.6210003f, 64.4029694f, 28.0048752f, 63.2470932f, 28.0048752
      f, 62.0027809f); | 
|  | 730     pathB.cubicTo(28.0048752f, 58.6875305f, 25.3199062f, 56, 22.0046558f, 56); | 
|  | 731     pathB.cubicTo(18.6894073f, 56, 16.0031872f, 58.6875305f, 16.0031872f, 62.002
      7809f); | 
|  | 732     pathB.cubicTo(16.0031872f, 65.3180008f, 18.6913433f, 68.0055618f, 22.0066261
      f, 68.0055618f); | 
|  | 733     pathB.cubicTo(23.2509995f, 68.0055618f, 24.4072189f, 67.6187515f, 25.3657818
      f, 66.9704056f); | 
|  | 734     pathB.lineTo(30.0599365f, 71.65625f); | 
|  | 735     pathB.lineTo(30.0600014f, 71.65625f); | 
|  | 736     pathB.cubicTo(30.2668133f, 71.875f, 30.5524693f, 71.9992828f, 30.868f, 71.99
      92828f); | 
|  | 737     pathB.cubicTo(31.4994049f, 71.9992828f, 32.0014687f, 71.4909363f, 32.0014687
      f, 70.8595276f); | 
|  | 738     pathB.cubicTo(32.0015335f, 70.5439072f, 31.875f, 70.2623444f, 31.65625f, 70.
      0555649f); | 
|  | 739     pathB.close(); | 
|  | 740     pathB.moveTo(18.0054054f, 62.0027809f); | 
|  | 741     pathB.cubicTo(18.0054054f, 59.7925949f, 19.7970943f, 58.0009079f, 22.0072823
      f, 58.0009079f); | 
|  | 742     pathB.cubicTo(24.2174377f, 58.0009079f, 26.0091248f, 59.7925949f, 26.0091248
      f, 62.0027809f); | 
|  | 743     pathB.cubicTo(26.0091248f, 64.2129364f, 24.2174377f, 66.0046234f, 22.0072803
      f, 66.0046234f); | 
|  | 744     pathB.cubicTo(19.7970943f, 66.0045929f, 18.0054054f, 64.2129059f, 18.0054054
      f, 62.0027809f); | 
|  | 745     pathB.close(); | 
|  | 746     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 747 } | 
|  | 748 | 
|  | 749 static void skpautobutler_dk29(skiatest::Reporter* reporter) { | 
|  | 750     SkPath path; | 
|  | 751     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 752     path.moveTo(0, 926); | 
|  | 753     path.lineTo(0, 0); | 
|  | 754     path.lineTo(1265, 0); | 
|  | 755     path.lineTo(1265, 926); | 
|  | 756     path.lineTo(0, 926); | 
|  | 757     path.close(); | 
|  | 758     SkPath pathB; | 
|  | 759     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 760     pathB.moveTo(21, 162); | 
|  | 761     pathB.lineTo(21, 301); | 
|  | 762     pathB.lineTo(8.57224448e-15f, 301); | 
|  | 763     pathB.lineTo(6.12303177e-17f, 162); | 
|  | 764     pathB.close(); | 
|  | 765     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 766 } | 
|  | 767 | 
|  | 768 static void skponlinecollege_org144(skiatest::Reporter* reporter) { | 
|  | 769     SkPath path; | 
|  | 770     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 771     path.moveTo(179, 407); | 
|  | 772     path.cubicTo(177.34314f, 407, 176, 408.34314f, 176, 410); | 
|  | 773     path.lineTo(176, 436); | 
|  | 774     path.cubicTo(176, 437.65686f, 177.34314f, 439, 179, 439); | 
|  | 775     path.lineTo(337.002289f, 439); | 
|  | 776     path.cubicTo(338.105835f, 438.998779f, 339, 438.103821f, 339, 437); | 
|  | 777     path.lineTo(339, 409); | 
|  | 778     path.cubicTo(339, 407.896362f, 338.10611f, 407.001526f, 337.002838f, 407); | 
|  | 779     path.lineTo(179, 407); | 
|  | 780     path.close(); | 
|  | 781     SkPath pathB; | 
|  | 782     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 783     pathB.moveTo(179, 408); | 
|  | 784     pathB.lineTo(337, 408); | 
|  | 785     pathB.cubicTo(338.65686f, 408, 340, 408.895416f, 340, 410); | 
|  | 786     pathB.lineTo(340, 436); | 
|  | 787     pathB.cubicTo(340, 437.65686f, 338.65686f, 439, 337, 439); | 
|  | 788     pathB.lineTo(179, 439); | 
|  | 789     pathB.cubicTo(177.895432f, 439, 177, 437.65686f, 177, 436); | 
|  | 790     pathB.lineTo(177, 410); | 
|  | 791     pathB.cubicTo(177, 408.895416f, 177.895432f, 408, 179, 408); | 
|  | 792     pathB.close(); | 
|  | 793     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 794 } | 
|  | 795 | 
|  | 796 static void skpnational_com_au81(skiatest::Reporter* reporter) { | 
|  | 797     SkPath path; | 
|  | 798     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 799     path.moveTo(807, 817); | 
|  | 800     path.quadTo(806.585876f, 817.000122f, 806.292908f, 817.292908f); | 
|  | 801     path.quadTo(806.000122f, 817.585876f, 806, 818); | 
|  | 802     path.lineTo(806, 881); | 
|  | 803     path.lineTo(1111, 881); | 
|  | 804     path.lineTo(1111, 818); | 
|  | 805     path.quadTo(1110.99988f, 817.585876f, 1110.70715f, 817.292908f); | 
|  | 806     path.quadTo(1110.41406f, 817.000122f, 1110, 817); | 
|  | 807     path.lineTo(807, 817); | 
|  | 808     path.close(); | 
|  | 809     SkPath pathB; | 
|  | 810     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 811     pathB.moveTo(807, 817); | 
|  | 812     pathB.lineTo(1110, 817); | 
|  | 813     pathB.cubicTo(1110.55225f, 817, 1111, 817.447693f, 1111, 818); | 
|  | 814     pathB.lineTo(1111, 880); | 
|  | 815     pathB.lineTo(806, 880); | 
|  | 816     pathB.lineTo(806, 818); | 
|  | 817     pathB.cubicTo(806, 817.447693f, 806.447693f, 817, 807, 817); | 
|  | 818     pathB.close(); | 
|  | 819     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 820 } | 
|  | 821 | 
|  | 822 static void skprentacheat_com30(skiatest::Reporter* reporter) { | 
|  | 823     SkPath path; | 
|  | 824     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 825     path.moveTo(967, 263); | 
|  | 826     path.quadTo(966.585876f, 263.000092f, 966.292908f, 263.292908f); | 
|  | 827     path.quadTo(966.000122f, 263.585876f, 966, 264); | 
|  | 828     path.lineTo(966, 301); | 
|  | 829     path.lineTo(1214, 301); | 
|  | 830     path.lineTo(1214, 264); | 
|  | 831     path.quadTo(1213.99988f, 263.585876f, 1213.70715f, 263.292908f); | 
|  | 832     path.quadTo(1213.41406f, 263.000092f, 1213, 263); | 
|  | 833     path.lineTo(967, 263); | 
|  | 834     path.close(); | 
|  | 835     SkPath pathB; | 
|  | 836     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 837     pathB.moveTo(967, 263); | 
|  | 838     pathB.lineTo(1213, 263); | 
|  | 839     pathB.cubicTo(1213.55225f, 263, 1214, 263.447723f, 1214, 264); | 
|  | 840     pathB.lineTo(1214, 300); | 
|  | 841     pathB.lineTo(966, 300); | 
|  | 842     pathB.lineTo(966, 264); | 
|  | 843     pathB.cubicTo(966, 263.447723f, 966.447693f, 263, 967, 263); | 
|  | 844     pathB.close(); | 
|  | 845     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 846 } | 
|  | 847 | 
|  | 848 static void skpbreakmystyle_com10(skiatest::Reporter* reporter) { | 
|  | 849     SkPath path; | 
|  | 850     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 851     path.moveTo(271.032867f, -5.32907052e-15f); | 
|  | 852     path.lineTo(56.9671326f, -5.16253706e-15f); | 
|  | 853     path.quadTo(52.7835083f, 3.69968891f, 48.7416f, 7.74160004f); | 
|  | 854     path.quadTo(1, 55.4831848f, 1, 123); | 
|  | 855     path.quadTo(1, 190.516815f, 48.7416f, 238.258392f); | 
|  | 856     path.quadTo(96.4831848f, 286, 164, 286); | 
|  | 857     path.quadTo(231.516815f, 286, 279.258392f, 238.258392f); | 
|  | 858     path.quadTo(327, 190.516815f, 327, 123); | 
|  | 859     path.quadTo(327, 55.4831848f, 279.258392f, 7.74160004f); | 
|  | 860     path.quadTo(275.216431f, 3.69964004f, 271.032867f, -5.32907052e-15f); | 
|  | 861     path.close(); | 
|  | 862     SkPath pathB; | 
|  | 863     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 864     pathB.moveTo(327, 123); | 
|  | 865     pathB.quadTo(327, 190.516815f, 279.258392f, 238.258392f); | 
|  | 866     pathB.quadTo(231.516815f, 286, 164, 286); | 
|  | 867     pathB.quadTo(96.4831848f, 286, 48.7416f, 238.258392f); | 
|  | 868     pathB.quadTo(1, 190.516815f, 1, 123); | 
|  | 869     pathB.quadTo(1, 55.4831848f, 48.7416f, 7.74160004f); | 
|  | 870     pathB.quadTo(96.4831848f, -40, 164, -40); | 
|  | 871     pathB.quadTo(231.516815f, -40, 279.258392f, 7.74160004f); | 
|  | 872     pathB.quadTo(327, 55.4831848f, 327, 123); | 
|  | 873     pathB.close(); | 
|  | 874     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 875 } | 
|  | 876 | 
|  | 877 static void skpsd_graphic_net104(skiatest::Reporter* reporter) { | 
|  | 878     SkPath path; | 
|  | 879     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 880     path.moveTo(475.421448f, 836.985962f); | 
|  | 881     path.lineTo(461.280975f, 841.990662f); | 
|  | 882     path.cubicTo(466.80899f, 857.609802f, 458.62854f, 874.752991f, 443.009399f, 
      880.281006f); | 
|  | 883     path.cubicTo(435.199829f, 883.044983f, 427.009247f, 882.381897f, 420.080048f
      , 879.075378f); | 
|  | 884     path.lineTo(413.620056f, 892.613037f); | 
|  | 885     path.quadTo(430.419983f, 900.629761f, 447.96701f, 894.43811f); | 
|  | 886     path.quadTo(448.00708f, 894.42395f, 448.014038f, 894.421509f); | 
|  | 887     path.quadTo(448.043976f, 894.410889f, 448.061066f, 894.404846f); | 
|  | 888     path.quadTo(465.596313f, 888.179932f, 473.613037f, 871.379944f); | 
|  | 889     path.quadTo(477.351227f, 863.546143f, 478, 855.549866f); | 
|  | 890     path.lineTo(478, 848.804321f); | 
|  | 891     path.quadTo(477.528076f, 842.93811f, 475.421448f, 836.985962f); | 
|  | 892     path.close(); | 
|  | 893     SkPath pathB; | 
|  | 894     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 895     pathB.moveTo(405.592621f, 909.435547f); | 
|  | 896     pathB.lineTo(390.578583f, 867.014099f); | 
|  | 897     pathB.lineTo(433, 852.000061f); | 
|  | 898     pathB.lineTo(490.435486f, 879.40741f); | 
|  | 899     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 900 } | 
|  | 901 | 
|  | 902 #if TRY_BROKEN_TESTS | 
|  | 903 /* this cubic/quad pair | 
|  | 904  c = 430,280 430,278.895416 473.876068,278 528,278 | 
|  | 905  q = 430,280 430.009796,277.101196 458.703552,275.050262 | 
|  | 906  only intersect at the shared point (430,280) | 
|  | 907  they sort backwards because the tangent from pt[0] to control pt[1] | 
|  | 908  c' = (0.00000000000000000, -1.1045837402343750) | 
|  | 909  q' = (0.0097961425781250000, -2.8988037109375000) | 
|  | 910  suggests that the quad is counterclockwise of the cubic, when the reverse is tr
      ue | 
|  | 911  the angle code is fooled because the control pt[1] of both the quad and cubic | 
|  | 912  is far away from cubic cntl [2] and quad pt [2]. | 
|  | 913  Maybe in angle setup, this instability can be detected to suppress sorting on t
      he initial tangent | 
|  | 914  Or the error term can be passed to NearRay that is magnified by the distance fr
      om the next ctrl? | 
|  | 915  */ | 
|  | 916 static void skpnaoxrane_ru23(skiatest::Reporter* reporter) { | 
|  | 917     SkPath path; | 
|  | 918     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 919     path.moveTo(458.703552f, 275.050262f); | 
|  | 920     path.quadTo(487.41687f, 273.000702f, 528, 273); | 
|  | 921     path.lineTo(529, 273); | 
|  | 922     path.quadTo(530.242371f, 273.000305f, 531.121338f, 273.878693f); | 
|  | 923     path.quadTo(531.999695f, 274.75766f, 532, 276); | 
|  | 924     path.lineTo(532, 378); | 
|  | 925     path.quadTo(531.990173f, 380.898804f, 503.296448f, 382.949738f); | 
|  | 926     path.quadTo(474.58313f, 384.999298f, 434, 385); | 
|  | 927     path.lineTo(433, 385); | 
|  | 928     path.quadTo(431.75766f, 384.999695f, 430.878693f, 384.121307f); | 
|  | 929     path.quadTo(430.000305f, 383.24234f, 430, 382); | 
|  | 930     path.lineTo(430, 280); | 
|  | 931     path.quadTo(430.009796f, 277.101196f, 458.703552f, 275.050262f); | 
|  | 932     path.close(); | 
|  | 933     SkPath pathB; | 
|  | 934     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 935     pathB.moveTo(528, 278); | 
|  | 936     pathB.lineTo(529, 278); | 
|  | 937     pathB.cubicTo(530.65686f, 278, 532, 278, 532, 278); | 
|  | 938     pathB.lineTo(532, 378); | 
|  | 939     pathB.cubicTo(532, 379.104584f, 488.123932f, 380, 434, 380); | 
|  | 940     pathB.lineTo(433, 380); | 
|  | 941     pathB.cubicTo(431.34314f, 380, 430, 380, 430, 380); | 
|  | 942     pathB.lineTo(430, 280); | 
|  | 943     pathB.cubicTo(430, 278.895416f, 473.876068f, 278, 528, 278); | 
|  | 944     pathB.close(); | 
|  | 945     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 946 } | 
|  | 947 | 
|  | 948 /* didn't investigate thoroughly, but looks to be missorting quad and cubic | 
|  | 949     {{468.507751,560.724426}, {467.275146,552.856262}, {465.84668,547.288391}} | 
|  | 950     {{463.779907,542.671143}, {464.829529,542.672974}, {466.946289,550.755676}, 
      {468.507751,560.724426}} | 
|  | 951     decision maker is case 14 leftLessThanRight | 
|  | 952  */ | 
|  | 953 static void skptcmevents_org23(skiatest::Reporter* reporter) { | 
|  | 954     SkPath path; | 
|  | 955     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 956     path.moveTo(465.503998f, 546); | 
|  | 957     path.lineTo(347, 546); | 
|  | 958     path.lineTo(347, 632); | 
|  | 959     path.lineTo(469.104248f, 632); | 
|  | 960     path.quadTo(470.79007f, 627.638672f, 471.833496f, 621.036255f); | 
|  | 961     path.quadTo(474.902588f, 601.562866f, 470.591064f, 574.024353f); | 
|  | 962     path.lineTo(468.507751f, 560.724426f); | 
|  | 963     path.quadTo(467.275146f, 552.856262f, 465.84668f, 547.288391f); | 
|  | 964     path.quadTo(465.670349f, 546.601501f, 465.503998f, 546); | 
|  | 965     path.close(); | 
|  | 966     SkPath pathB; | 
|  | 967     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 968     pathB.moveTo(363.052246f, 542.495361f); | 
|  | 969     pathB.lineTo(463.779907f, 542.671143f); | 
|  | 970     pathB.cubicTo(464.829529f, 542.672974f, 466.946289f, 550.755676f, 468.507751
      f, 560.724426f); | 
|  | 971     pathB.lineTo(470.591064f, 574.024353f); | 
|  | 972     pathB.cubicTo(476.26178f, 610.226624f, 471.498932f, 639.557922f, 459.953003f
      , 639.537781f); | 
|  | 973     pathB.lineTo(368.727936f, 639.378601f); | 
|  | 974     pathB.cubicTo(351.933868f, 639.349304f, 337.053741f, 631.244324f, 335.492249
      f, 621.275574f); | 
|  | 975     pathB.lineTo(325.968597f, 560.475708f); | 
|  | 976     pathB.cubicTo(324.407104f, 550.506958f, 341.01001f, 542.456909f, 363.052246f
      , 542.495361f); | 
|  | 977     pathB.close(); | 
|  | 978     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 979 } | 
|  | 980 | 
|  | 981 static void skpredbullskatearcade_es16(skiatest::Reporter* reporter) { | 
|  | 982     SkPath path; | 
|  | 983     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 984     path.moveTo(936.765625f, 458.965302f); | 
|  | 985     path.cubicTo(937.028442f, 453.863251f, 933.145813f, 449.864502f, 928.093445f
      , 450.033905f); | 
|  | 986     path.lineTo(661.882263f, 458.958862f); | 
|  | 987     path.lineTo(661.875366f, 458.959106f); | 
|  | 988     path.cubicTo(656.828369f, 459.13205f, 652.525085f, 463.399719f, 652.258545f,
       468.496124f); | 
|  | 989     path.lineTo(652.258179f, 468.503662f); | 
|  | 990     path.lineTo(649.021729f, 531.322754f); | 
|  | 991     path.cubicTo(648.75885f, 536.424805f, 652.641479f, 540.423523f, 657.693848f,
       540.25415f); | 
|  | 992     path.lineTo(923.905029f, 531.329163f); | 
|  | 993     path.cubicTo(928.955017f, 531.159851f, 933.262268f, 526.890442f, 933.528809f
      , 521.791565f); | 
|  | 994     path.lineTo(933.529175f, 521.784363f); | 
|  | 995     path.lineTo(936.765625f, 458.965302f); | 
|  | 996     path.close(); | 
|  | 997     SkPath pathB; | 
|  | 998     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 999     pathB.moveTo(661.882263f, 458.958862f); | 
|  | 1000     pathB.lineTo(928.093445f, 450.033905f); | 
|  | 1001     pathB.cubicTo(929.103882f, 450, 929.709961f, 454.108612f, 929.447144f, 459.2
      10663f); | 
|  | 1002     pathB.lineTo(926.210693f, 522.029724f); | 
|  | 1003     pathB.cubicTo(926.079224f, 524.58075f, 925.153442f, 526.676208f, 924.143066f
      , 526.710083f); | 
|  | 1004     pathB.lineTo(657.931885f, 535.635071f); | 
|  | 1005     pathB.cubicTo(652.879456f, 535.804443f, 648.890259f, 533.873779f, 649.021729
      f, 531.322754f); | 
|  | 1006     pathB.lineTo(652.258179f, 468.503662f); | 
|  | 1007     pathB.cubicTo(652.520996f, 463.401611f, 656.829834f, 459.128235f, 661.882263
      f, 458.958862f); | 
|  | 1008     pathB.close(); | 
|  | 1009     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1010 } | 
|  | 1011 | 
|  | 1012 static void skpfinanzasdigital_com9(skiatest::Reporter* reporter) { | 
|  | 1013     SkPath path; | 
|  | 1014     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1015     path.moveTo(156, 126); | 
|  | 1016     path.quadTo(154.343552f, 126.000397f, 153.17157f, 127.17157f); | 
|  | 1017     path.quadTo(152.000397f, 128.343552f, 152, 130); | 
|  | 1018     path.lineTo(152, 174); | 
|  | 1019     path.lineTo(1114, 174); | 
|  | 1020     path.lineTo(1114, 130); | 
|  | 1021     path.quadTo(1113.99963f, 128.343552f, 1112.82837f, 127.17157f); | 
|  | 1022     path.quadTo(1111.65649f, 126.000397f, 1110, 126); | 
|  | 1023     path.lineTo(156, 126); | 
|  | 1024     path.close(); | 
|  | 1025     SkPath pathB; | 
|  | 1026     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 1027     pathB.moveTo(156, 126); | 
|  | 1028     pathB.lineTo(1110, 126); | 
|  | 1029     pathB.cubicTo(1111.65686f, 126, 1113, 127.790863f, 1113, 130); | 
|  | 1030     pathB.lineTo(1113, 174); | 
|  | 1031     pathB.lineTo(153, 174); | 
|  | 1032     pathB.lineTo(153, 130); | 
|  | 1033     pathB.cubicTo(153, 127.790863f, 154.34314f, 126, 156, 126); | 
|  | 1034     pathB.close(); | 
|  | 1035     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1036 } | 
| 668 #endif | 1037 #endif | 
| 669 | 1038 | 
|  | 1039 static void skppartainasdemo250_org56(skiatest::Reporter* reporter) { | 
|  | 1040     SkPath path; | 
|  | 1041     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1042     path.moveTo(182.000015f, 645); | 
|  | 1043     path.lineTo(182, 640); | 
|  | 1044     path.cubicTo(174.322327f, 640, 166.644669f, 637.071045f, 160.786804f, 631.21
      3196f); | 
|  | 1045     path.cubicTo(149.071075f, 619.497437f, 149.071075f, 600.502563f, 160.786804f
      , 588.786804f); | 
|  | 1046     path.lineTo(157.251266f, 585.251221f); | 
|  | 1047     path.quadTo(147, 595.502502f, 147.000015f, 610); | 
|  | 1048     path.quadTo(147, 624.482605f, 157.230255f, 634.727722f); | 
|  | 1049     path.quadTo(157.251251f, 634.748779f, 157.251282f, 634.748779f); | 
|  | 1050     path.quadTo(157.282852f, 634.780334f, 157.272263f, 634.769775f); | 
|  | 1051     path.quadTo(167.517334f, 645, 182.000015f, 645); | 
|  | 1052     path.close(); | 
|  | 1053     SkPath pathB; | 
|  | 1054     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1055     pathB.moveTo(182, 659.497498f); | 
|  | 1056     pathB.lineTo(206.748749f, 634.748718f); | 
|  | 1057     pathB.lineTo(182.000015f, 610); | 
|  | 1058     pathB.lineTo(132.502533f, 610); | 
|  | 1059     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1060 } | 
|  | 1061 | 
|  | 1062 static void skpmlk_com326(skiatest::Reporter* reporter) { | 
|  | 1063     SkPath path; | 
|  | 1064     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1065     path.moveTo(154, 670); | 
|  | 1066     path.cubicTo(151.238571f, 670, 149, 672.238586f, 149, 675); | 
|  | 1067     path.lineTo(149, 710.001465f); | 
|  | 1068     path.cubicTo(149.000809f, 712.209961f, 150.791367f, 714, 153, 714); | 
|  | 1069     path.lineTo(189, 714); | 
|  | 1070     path.cubicTo(191.209137f, 714, 193, 712.209167f, 193, 710); | 
|  | 1071     path.lineTo(193, 675); | 
|  | 1072     path.cubicTo(193, 672.238586f, 190.761429f, 670, 188, 670); | 
|  | 1073     path.lineTo(154, 670); | 
|  | 1074     path.close(); | 
|  | 1075     SkPath pathB; | 
|  | 1076     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 1077     pathB.moveTo(154, 671); | 
|  | 1078     pathB.lineTo(188, 671); | 
|  | 1079     pathB.cubicTo(190.761429f, 671, 193, 672.790833f, 193, 675); | 
|  | 1080     pathB.lineTo(193, 710); | 
|  | 1081     pathB.cubicTo(193, 712.761414f, 190.761429f, 715, 188, 715); | 
|  | 1082     pathB.lineTo(154, 715); | 
|  | 1083     pathB.cubicTo(151.238571f, 715, 149, 712.761414f, 149, 710); | 
|  | 1084     pathB.lineTo(149, 675); | 
|  | 1085     pathB.cubicTo(149, 672.790833f, 151.238571f, 671, 154, 671); | 
|  | 1086     pathB.close(); | 
|  | 1087     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1088 } | 
|  | 1089 | 
|  | 1090 static void skpcyclist_friends_gr52(skiatest::Reporter* reporter) { | 
|  | 1091     SkPath path; | 
|  | 1092     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1093     path.moveTo(50, 182); | 
|  | 1094     path.lineTo(1215, 182); | 
|  | 1095     path.lineTo(1215, 202); | 
|  | 1096     path.quadTo(1214.99951f, 204.070572f, 1213.53552f, 205.535538f); | 
|  | 1097     path.quadTo(1212.07056f, 206.999496f, 1210, 207); | 
|  | 1098     path.lineTo(55, 207); | 
|  | 1099     path.quadTo(52.9294319f, 206.999496f, 51.4644661f, 205.535538f); | 
|  | 1100     path.quadTo(50.0004997f, 204.070572f, 50, 202); | 
|  | 1101     path.lineTo(50, 182); | 
|  | 1102     path.close(); | 
|  | 1103     SkPath pathB; | 
|  | 1104     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 1105     pathB.moveTo(50, 183); | 
|  | 1106     pathB.lineTo(1215, 183); | 
|  | 1107     pathB.lineTo(1215, 202); | 
|  | 1108     pathB.cubicTo(1215, 204.761429f, 1212.76147f, 207, 1210, 207); | 
|  | 1109     pathB.lineTo(55, 207); | 
|  | 1110     pathB.cubicTo(52.238575f, 207, 50, 204.761429f, 50, 202); | 
|  | 1111     pathB.lineTo(50, 183); | 
|  | 1112     pathB.close(); | 
|  | 1113     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1114 } | 
|  | 1115 | 
|  | 1116 /* cubic ends just above opp line */ | 
|  | 1117 static void skpwww_fj_p_com_22(skiatest::Reporter* reporter) { | 
|  | 1118     SkPath path; | 
|  | 1119     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1120     path.moveTo(172, 201); | 
|  | 1121     path.lineTo(172, 202); | 
|  | 1122     path.lineTo(220, 202); | 
|  | 1123     path.cubicTo(221.65686f, 202, 223, 200.65686f, 223, 199); | 
|  | 1124     path.cubicTo(223, 200.104568f, 221.65686f, 201, 220, 201); | 
|  | 1125     path.lineTo(172, 201); | 
|  | 1126     path.close(); | 
|  | 1127     SkPath pathB; | 
|  | 1128     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1129     pathB.moveTo(161, 202); | 
|  | 1130     pathB.lineTo(161, 199); | 
|  | 1131     pathB.lineTo(223, 199.000015f); | 
|  | 1132     pathB.lineTo(223, 202); | 
|  | 1133     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1134 } | 
|  | 1135 | 
|  | 1136 #define TRY_SEPT_BROKEN_TESTS 0 | 
|  | 1137 #if TRY_SEPT_BROKEN_TESTS | 
|  | 1138 // pair of lines are not quite coincident, so sorting line/cubic fails (i think) | 
|  | 1139 static void skpwww_lavoixdunord_fr_11(skiatest::Reporter* reporter) { | 
|  | 1140     SkPath path; | 
|  | 1141     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1142     path.moveTo(806, 57); | 
|  | 1143     path.cubicTo(806, 55.3431473f, 807.34314f, 54, 809, 54); | 
|  | 1144     path.lineTo(930, 54); | 
|  | 1145     path.cubicTo(931.65686f, 54, 933, 55.3431473f, 933, 57); | 
|  | 1146     path.lineTo(933, 91); | 
|  | 1147     path.cubicTo(933, 92.6568527f, 931.65686f, 94, 930, 94); | 
|  | 1148     path.lineTo(809, 94); | 
|  | 1149     path.cubicTo(807.34314f, 94, 806, 92.6568527f, 806, 91); | 
|  | 1150     path.lineTo(806, 57); | 
|  | 1151     path.close(); | 
|  | 1152     path.moveTo(808, 58); | 
|  | 1153     path.cubicTo(808, 56.8954315f, 808.895447f, 56, 810, 56); | 
|  | 1154     path.lineTo(929, 56); | 
|  | 1155     path.cubicTo(930.104553f, 56, 931, 56.8954315f, 931, 58); | 
|  | 1156     path.lineTo(931, 90); | 
|  | 1157     path.cubicTo(931, 91.1045685f, 930.104553f, 92, 929, 92); | 
|  | 1158     path.lineTo(810, 92); | 
|  | 1159     path.cubicTo(808.895447f, 92, 808, 91.1045685f, 808, 90); | 
|  | 1160     path.lineTo(808, 58); | 
|  | 1161     path.close(); | 
|  | 1162     SkPath pathB; | 
|  | 1163     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1164     pathB.moveTo(806, 54); | 
|  | 1165     pathB.lineTo(808, 56); | 
|  | 1166     pathB.lineTo(935.02002f, 56.0200005f); | 
|  | 1167     pathB.lineTo(933, 54); | 
|  | 1168     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1169 } | 
|  | 1170 | 
|  | 1171 // pair of curves have nearly the same initial tangent but are sorting by | 
|  | 1172 // that alone sorts them incorrectly. Need to detect that tangents are nearly | 
|  | 1173 // identical and not reliable by themselves | 
|  | 1174 static void skppptv_com_62(skiatest::Reporter* reporter) { | 
|  | 1175     SkPath path; | 
|  | 1176     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1177     path.moveTo(173, 5342); | 
|  | 1178     path.quadTo(171.343536f, 5342.00049f, 170.17157f, 5343.17139f); | 
|  | 1179     path.quadTo(169.000397f, 5344.34375f, 169, 5346); | 
|  | 1180     path.lineTo(169, 5372); | 
|  | 1181     path.lineTo(234, 5372); | 
|  | 1182     path.lineTo(234, 5346); | 
|  | 1183     path.quadTo(233.999603f, 5344.34375f, 232.82843f, 5343.17139f); | 
|  | 1184     path.quadTo(231.656464f, 5342.00049f, 230, 5342); | 
|  | 1185     path.lineTo(173, 5342); | 
|  | 1186     path.close(); | 
|  | 1187     SkPath pathB; | 
|  | 1188     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 1189     pathB.moveTo(173, 5342); | 
|  | 1190     pathB.lineTo(230, 5342); | 
|  | 1191     pathB.cubicTo(231.65686f, 5342, 233, 5343.79102f, 233, 5346); | 
|  | 1192     pathB.lineTo(233, 5372); | 
|  | 1193     pathB.lineTo(169, 5372); | 
|  | 1194     pathB.lineTo(169, 5346); | 
|  | 1195     pathB.cubicTo(169, 5343.79102f, 170.790863f, 5342, 173, 5342); | 
|  | 1196     pathB.close(); | 
|  | 1197     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1198 } | 
|  | 1199 | 
|  | 1200 // nearly identical to lavoixdunord -- to not-quite-coincident lines | 
|  | 1201 static void skpwww_booking_com_68(skiatest::Reporter* reporter) { | 
|  | 1202     SkPath path; | 
|  | 1203     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1204     path.moveTo(90, 187); | 
|  | 1205     path.cubicTo(90, 185.34314f, 91.3431473f, 184, 93, 184); | 
|  | 1206     path.lineTo(588, 184); | 
|  | 1207     path.cubicTo(589.65686f, 184, 591, 185.34314f, 591, 187); | 
|  | 1208     path.lineTo(591, 218); | 
|  | 1209     path.cubicTo(591, 219.65686f, 589.65686f, 221, 588, 221); | 
|  | 1210     path.lineTo(93, 221); | 
|  | 1211     path.cubicTo(91.3431473f, 221, 90, 219.65686f, 90, 218); | 
|  | 1212     path.lineTo(90, 187); | 
|  | 1213     path.close(); | 
|  | 1214     path.moveTo(92, 188); | 
|  | 1215     path.cubicTo(92, 186.895432f, 92.8954315f, 186, 94, 186); | 
|  | 1216     path.lineTo(587, 186); | 
|  | 1217     path.cubicTo(588.104553f, 186, 589, 186.895432f, 589, 188); | 
|  | 1218     path.lineTo(589, 217); | 
|  | 1219     path.cubicTo(589, 218.104568f, 588.104553f, 219, 587, 219); | 
|  | 1220     path.lineTo(94, 219); | 
|  | 1221     path.cubicTo(92.8954315f, 219, 92, 218.104568f, 92, 217); | 
|  | 1222     path.lineTo(92, 188); | 
|  | 1223     path.close(); | 
|  | 1224     SkPath pathB; | 
|  | 1225     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1226     pathB.moveTo(90, 184); | 
|  | 1227     pathB.lineTo(92, 186); | 
|  | 1228     pathB.lineTo(593.02002f, 186.020004f); | 
|  | 1229     pathB.lineTo(591, 184); | 
|  | 1230     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1231 } | 
|  | 1232 | 
|  | 1233 // visually looks like lavoixdunord and www_booking_com | 
|  | 1234 static void skpwww_despegar_com_mx_272(skiatest::Reporter* reporter) { | 
|  | 1235     SkPath path; | 
|  | 1236     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1237     path.moveTo(635, 1788); | 
|  | 1238     path.cubicTo(635, 1786.34314f, 636.34314f, 1785, 638, 1785); | 
|  | 1239     path.lineTo(832, 1785); | 
|  | 1240     path.cubicTo(833.65686f, 1785, 835, 1786.34314f, 835, 1788); | 
|  | 1241     path.lineTo(835, 1812); | 
|  | 1242     path.cubicTo(835, 1813.65686f, 833.65686f, 1815, 832, 1815); | 
|  | 1243     path.lineTo(638, 1815); | 
|  | 1244     path.cubicTo(636.34314f, 1815, 635, 1813.65686f, 635, 1812); | 
|  | 1245     path.lineTo(635, 1788); | 
|  | 1246     path.close(); | 
|  | 1247     path.moveTo(637, 1789); | 
|  | 1248     path.cubicTo(637, 1787.89539f, 637.895447f, 1787, 639, 1787); | 
|  | 1249     path.lineTo(831, 1787); | 
|  | 1250     path.cubicTo(832.104553f, 1787, 833, 1787.89539f, 833, 1789); | 
|  | 1251     path.lineTo(833, 1811); | 
|  | 1252     path.cubicTo(833, 1812.10461f, 832.104553f, 1813, 831, 1813); | 
|  | 1253     path.lineTo(639, 1813); | 
|  | 1254     path.cubicTo(637.895447f, 1813, 637, 1812.10461f, 637, 1811); | 
|  | 1255     path.lineTo(637, 1789); | 
|  | 1256     path.close(); | 
|  | 1257     SkPath pathB; | 
|  | 1258     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1259     pathB.moveTo(835, 1785); | 
|  | 1260     pathB.lineTo(833, 1787); | 
|  | 1261     pathB.lineTo(832.97998f, 1817.02002f); | 
|  | 1262     pathB.lineTo(835, 1815); | 
|  | 1263     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1264 } | 
|  | 1265 #endif | 
|  | 1266 | 
|  | 1267 static void skpwww_joomla_org_23(skiatest::Reporter* reporter) { | 
|  | 1268     SkPath path; | 
|  | 1269     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1270     path.moveTo(320, 347); | 
|  | 1271     path.cubicTo(320, 344.238586f, 322.238586f, 342, 325, 342); | 
|  | 1272     path.lineTo(416, 342); | 
|  | 1273     path.cubicTo(418.761414f, 342, 421, 344.238586f, 421, 347); | 
|  | 1274     path.cubicTo(421, 344.790863f, 418.761414f, 343, 416, 343); | 
|  | 1275     path.lineTo(325, 343); | 
|  | 1276     path.cubicTo(322.238586f, 343, 320, 344.790863f, 320, 347); | 
|  | 1277     path.close(); | 
|  | 1278     path.moveTo(320, 378); | 
|  | 1279     path.cubicTo(320, 380.761414f, 322.238586f, 383, 325, 383); | 
|  | 1280     path.lineTo(416, 383); | 
|  | 1281     path.cubicTo(418.761414f, 383, 421, 380.761414f, 421, 378); | 
|  | 1282     path.cubicTo(421, 380.209137f, 418.761414f, 382, 416, 382); | 
|  | 1283     path.lineTo(325, 382); | 
|  | 1284     path.cubicTo(322.238586f, 382, 320, 380.209137f, 320, 378); | 
|  | 1285     path.close(); | 
|  | 1286     SkPath pathB; | 
|  | 1287     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1288     pathB.moveTo(320, 383); | 
|  | 1289     pathB.lineTo(320, 378); | 
|  | 1290     pathB.lineTo(421, 378.000031f); | 
|  | 1291     pathB.lineTo(421, 383); | 
|  | 1292     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1293 } | 
|  | 1294 | 
|  | 1295 static void skpwww_macrumors_com_131(skiatest::Reporter* reporter) { | 
|  | 1296     SkPath path; | 
|  | 1297     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1298     path.moveTo(136, 14089); | 
|  | 1299     path.lineTo(136, 14056); | 
|  | 1300     path.lineTo(778, 14056); | 
|  | 1301     path.lineTo(778, 14089); | 
|  | 1302     path.quadTo(777.999573f, 14090.6562f, 776.82843f, 14091.8281f); | 
|  | 1303     path.quadTo(775.656433f, 14093, 774, 14093); | 
|  | 1304     path.lineTo(140, 14093); | 
|  | 1305     path.quadTo(138.343552f, 14093, 137.17157f, 14091.8281f); | 
|  | 1306     path.quadTo(136.000397f, 14090.6562f, 136, 14089); | 
|  | 1307     path.close(); | 
|  | 1308     SkPath pathB; | 
|  | 1309     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 1310     pathB.moveTo(136, 14057); | 
|  | 1311     pathB.lineTo(778, 14057); | 
|  | 1312     pathB.lineTo(778, 14089); | 
|  | 1313     pathB.cubicTo(778, 14091.209f, 776.209167f, 14093, 774, 14093); | 
|  | 1314     pathB.lineTo(140, 14093); | 
|  | 1315     pathB.cubicTo(137.790863f, 14093, 136, 14091.209f, 136, 14089); | 
|  | 1316     pathB.lineTo(136, 14057); | 
|  | 1317     pathB.close(); | 
|  | 1318     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1319 } | 
|  | 1320 | 
|  | 1321 static void skpwww_leadpages_net_84(skiatest::Reporter* reporter) { | 
|  | 1322     SkPath path; | 
|  | 1323     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1324     path.moveTo(377.1716f, 5910.17139f); | 
|  | 1325     path.cubicTo(376.447723f, 5910.89551f, 376, 5911.89551f, 376, 5913); | 
|  | 1326     path.lineTo(376, 5972); | 
|  | 1327     path.cubicTo(376, 5974.20898f, 377.790863f, 5976, 380, 5976); | 
|  | 1328     path.cubicTo(378.34314f, 5976, 377, 5974.20898f, 377, 5972); | 
|  | 1329     path.lineTo(377, 5913); | 
|  | 1330     path.cubicTo(377, 5912.17139f, 377.335785f, 5911.42188f, 377.878693f, 5910.8
      7891f); | 
|  | 1331     path.lineTo(377.1716f, 5910.17139f); | 
|  | 1332     path.close(); | 
|  | 1333     SkPath pathB; | 
|  | 1334     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1335     pathB.moveTo(376, 5909); | 
|  | 1336     pathB.lineTo(378.481873f, 5909); | 
|  | 1337     pathB.lineTo(379.999878f, 5976); | 
|  | 1338     pathB.lineTo(376, 5976); | 
|  | 1339     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1340 } | 
|  | 1341 | 
|  | 1342 static void skpwww_briian_com_34(skiatest::Reporter* reporter) { | 
|  | 1343     SkPath path; | 
|  | 1344     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1345     path.moveTo(843, 216); | 
|  | 1346     path.cubicTo(843, 213.238571f, 845.238586f, 211, 848, 211); | 
|  | 1347     path.lineTo(1191, 211); | 
|  | 1348     path.cubicTo(1193.76147f, 211, 1196, 213.238571f, 1196, 216); | 
|  | 1349     path.lineTo(1196, 779); | 
|  | 1350     path.cubicTo(1196, 781.761414f, 1193.76147f, 784, 1191, 784); | 
|  | 1351     path.lineTo(848, 784); | 
|  | 1352     path.cubicTo(845.238586f, 784, 843, 781.761414f, 843, 779); | 
|  | 1353     path.lineTo(843, 216); | 
|  | 1354     path.close(); | 
|  | 1355     path.moveTo(844, 217); | 
|  | 1356     path.cubicTo(844, 214.238571f, 846.238586f, 212, 849, 212); | 
|  | 1357     path.lineTo(1190, 212); | 
|  | 1358     path.cubicTo(1192.76147f, 212, 1195, 214.238571f, 1195, 217); | 
|  | 1359     path.lineTo(1195, 778); | 
|  | 1360     path.cubicTo(1195, 779.65686f, 1192.76147f, 781, 1190, 781); | 
|  | 1361     path.lineTo(849, 781); | 
|  | 1362     path.cubicTo(846.238586f, 781, 844, 779.65686f, 844, 778); | 
|  | 1363     path.lineTo(844, 217); | 
|  | 1364     path.close(); | 
|  | 1365     SkPath pathB; | 
|  | 1366     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1367     pathB.moveTo(843, 784); | 
|  | 1368     pathB.lineTo(843, 779); | 
|  | 1369     pathB.lineTo(1196, 779.000061f); | 
|  | 1370     pathB.lineTo(1196, 784); | 
|  | 1371     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1372 } | 
|  | 1373 | 
|  | 1374 | 
|  | 1375 static void skpwww_sciality_com_100(skiatest::Reporter* reporter) { | 
|  | 1376     SkPath path; | 
|  | 1377     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1378     path.moveTo(162, 468); | 
|  | 1379     path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472); | 
|  | 1380     path.lineTo(158, 528); | 
|  | 1381     path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532); | 
|  | 1382     path.lineTo(275, 532); | 
|  | 1383     path.cubicTo(277.209137f, 532, 279, 530.209106f, 279, 528); | 
|  | 1384     path.lineTo(279, 472); | 
|  | 1385     path.cubicTo(279, 469.790863f, 277.209137f, 468, 275, 468); | 
|  | 1386     path.lineTo(162, 468); | 
|  | 1387     path.close(); | 
|  | 1388     SkPath pathB; | 
|  | 1389     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1390     pathB.moveTo(275, 468); | 
|  | 1391     pathB.cubicTo(276.65686f, 468, 278, 469.34314f, 278, 471); | 
|  | 1392     pathB.lineTo(278, 529); | 
|  | 1393     pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532); | 
|  | 1394     pathB.lineTo(161, 532); | 
|  | 1395     pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529); | 
|  | 1396     pathB.lineTo(158, 471); | 
|  | 1397     pathB.cubicTo(158, 469.34314f, 159.34314f, 468, 161, 468); | 
|  | 1398     pathB.lineTo(275, 468); | 
|  | 1399     pathB.close(); | 
|  | 1400     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1401 } | 
|  | 1402 | 
|  | 1403 #if TRY_SEPT_BROKEN_TESTS | 
|  | 1404 static void skpwww_sciality_com_101(skiatest::Reporter* reporter) { | 
|  | 1405     SkPath path; | 
|  | 1406     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1407     path.moveTo(162, 468); | 
|  | 1408     path.cubicTo(159.790863f, 468, 158, 469.790863f, 158, 472); | 
|  | 1409     path.lineTo(158, 528); | 
|  | 1410     path.cubicTo(158, 530.209106f, 159.790863f, 532, 162, 532); | 
|  | 1411     path.lineTo(275.009186f, 532); | 
|  | 1412     path.cubicTo(276.661774f, 531.994995f, 278, 530.653748f, 278, 529); | 
|  | 1413     path.lineTo(278, 471); | 
|  | 1414     path.cubicTo(278, 469.346375f, 276.662079f, 468.005249f, 275.009705f, 468); | 
|  | 1415     path.lineTo(162, 468); | 
|  | 1416     path.close(); | 
|  | 1417     SkPath pathB; | 
|  | 1418     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 1419     pathB.moveTo(161, 469); | 
|  | 1420     pathB.lineTo(275, 469); | 
|  | 1421     pathB.cubicTo(276.65686f, 469, 278, 469.895416f, 278, 471); | 
|  | 1422     pathB.lineTo(278, 529); | 
|  | 1423     pathB.cubicTo(278, 530.65686f, 276.65686f, 532, 275, 532); | 
|  | 1424     pathB.lineTo(161, 532); | 
|  | 1425     pathB.cubicTo(159.34314f, 532, 158, 530.65686f, 158, 529); | 
|  | 1426     pathB.lineTo(158, 471); | 
|  | 1427     pathB.cubicTo(158, 469.895416f, 159.34314f, 469, 161, 469); | 
|  | 1428     pathB.close(); | 
|  | 1429     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1430 } | 
|  | 1431 #endif | 
|  | 1432 | 
|  | 1433 static void skpwww_meb_gov_tr_5(skiatest::Reporter* reporter) { | 
|  | 1434     SkPath path; | 
|  | 1435     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1436     path.moveTo(137.34314f, 145.34314f); | 
|  | 1437     path.quadTo(139.687088f, 143.000793f, 143, 143); | 
|  | 1438     path.lineTo(242, 143); | 
|  | 1439     path.quadTo(245.312912f, 143.000793f, 247.65686f, 145.34314f); | 
|  | 1440     path.quadTo(249.999207f, 147.687088f, 250, 151); | 
|  | 1441     path.lineTo(250, 177); | 
|  | 1442     path.lineTo(135, 177); | 
|  | 1443     path.lineTo(135, 151); | 
|  | 1444     path.quadTo(135.000793f, 147.687088f, 137.34314f, 145.34314f); | 
|  | 1445     path.close(); | 
|  | 1446     SkPath pathB; | 
|  | 1447     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1448     pathB.moveTo(135, 143); | 
|  | 1449     pathB.lineTo(250, 143); | 
|  | 1450     pathB.lineTo(250, 177); | 
|  | 1451     pathB.lineTo(135, 177); | 
|  | 1452     pathB.close(); | 
|  | 1453     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1454 } | 
|  | 1455 | 
|  | 1456 #if TRY_SEPT_BROKEN_TESTS | 
|  | 1457 static void skpwww_meb_gov_tr_6(skiatest::Reporter* reporter) { | 
|  | 1458     SkPath path; | 
|  | 1459     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1460     path.moveTo(143, 143); | 
|  | 1461     path.quadTo(139.687088f, 143.000793f, 137.34314f, 145.34314f); | 
|  | 1462     path.quadTo(135.000793f, 147.687088f, 135, 151); | 
|  | 1463     path.lineTo(135, 177); | 
|  | 1464     path.lineTo(250, 177); | 
|  | 1465     path.lineTo(250, 151); | 
|  | 1466     path.quadTo(249.999207f, 147.687088f, 247.65686f, 145.34314f); | 
|  | 1467     path.quadTo(245.312912f, 143.000793f, 242, 143); | 
|  | 1468     path.lineTo(143, 143); | 
|  | 1469     path.close(); | 
|  | 1470     SkPath pathB; | 
|  | 1471     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 1472     pathB.moveTo(143, 143); | 
|  | 1473     pathB.lineTo(242, 143); | 
|  | 1474     pathB.cubicTo(245.865997f, 143, 249, 146.581726f, 249, 151); | 
|  | 1475     pathB.lineTo(249, 177); | 
|  | 1476     pathB.lineTo(135, 177); | 
|  | 1477     pathB.lineTo(135, 151); | 
|  | 1478     pathB.cubicTo(135, 146.581726f, 138.581726f, 143, 143, 143); | 
|  | 1479     pathB.close(); | 
|  | 1480     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1481 } | 
|  | 1482 #endif | 
|  | 1483 | 
|  | 1484 static void skpgithub_io_25(skiatest::Reporter* reporter) { | 
|  | 1485     SkPath path; | 
|  | 1486     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1487     path.moveTo(1001.87866f, 14.8786793f); | 
|  | 1488     path.quadTo(1002.75745f, 14.0001001f, 1004, 14); | 
|  | 1489     path.lineTo(1105, 14); | 
|  | 1490     path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f); | 
|  | 1491     path.quadTo(1107.99988f, 15.7574596f, 1108, 17); | 
|  | 1492     path.lineTo(1108, 41); | 
|  | 1493     path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f); | 
|  | 1494     path.quadTo(1106.24255f, 43.9999008f, 1105, 44); | 
|  | 1495     path.lineTo(1004, 44); | 
|  | 1496     path.quadTo(1002.75745f, 43.9999008f, 1001.87866f, 43.1213188f); | 
|  | 1497     path.quadTo(1001.00012f, 42.2425423f, 1001, 41); | 
|  | 1498     path.lineTo(1001, 17); | 
|  | 1499     path.quadTo(1001.00012f, 15.7574596f, 1001.87866f, 14.8786793f); | 
|  | 1500     path.close(); | 
|  | 1501     SkPath pathB; | 
|  | 1502     pathB.setFillType(SkPath::kInverseWinding_FillType); | 
|  | 1503     pathB.moveTo(1005, 16); | 
|  | 1504     pathB.lineTo(1104, 16); | 
|  | 1505     pathB.cubicTo(1105.10461f, 16, 1106, 16.8954296f, 1106, 18); | 
|  | 1506     pathB.lineTo(1106, 40); | 
|  | 1507     pathB.cubicTo(1106, 41.1045685f, 1105.10461f, 42, 1104, 42); | 
|  | 1508     pathB.lineTo(1005, 42); | 
|  | 1509     pathB.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40); | 
|  | 1510     pathB.lineTo(1003, 18); | 
|  | 1511     pathB.cubicTo(1003, 16.8954296f, 1003.89545f, 16, 1005, 16); | 
|  | 1512     pathB.close(); | 
|  | 1513     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1514 } | 
|  | 1515 | 
|  | 1516 static void skpgithub_io_26(skiatest::Reporter* reporter) { | 
|  | 1517     SkPath path; | 
|  | 1518     path.setFillType(SkPath::kEvenOdd_FillType); | 
|  | 1519     path.moveTo(1001.87866f, 14.8786793f); | 
|  | 1520     path.quadTo(1002.75745f, 14.0001001f, 1004, 14); | 
|  | 1521     path.lineTo(1105, 14); | 
|  | 1522     path.quadTo(1106.24255f, 14.0001001f, 1107.12134f, 14.8786793f); | 
|  | 1523     path.quadTo(1107.99988f, 15.7574596f, 1108, 17); | 
|  | 1524     path.lineTo(1108, 41); | 
|  | 1525     path.quadTo(1107.99988f, 42.2425423f, 1107.12134f, 43.1213188f); | 
|  | 1526     path.quadTo(1106.24255f, 43.9999008f, 1105, 44); | 
|  | 1527     path.lineTo(1004, 44); | 
|  | 1528     path.quadTo(1002.75745f, 43.9999008f, 1001.87866f, 43.1213188f); | 
|  | 1529     path.quadTo(1001.00012f, 42.2425423f, 1001, 41); | 
|  | 1530     path.lineTo(1001, 17); | 
|  | 1531     path.quadTo(1001.00012f, 15.7574596f, 1001.87866f, 14.8786793f); | 
|  | 1532     path.close(); | 
|  | 1533     path.moveTo(1003, 18); | 
|  | 1534     path.cubicTo(1003, 16.8954296f, 1003.89545f, 16, 1005, 16); | 
|  | 1535     path.lineTo(1104, 16); | 
|  | 1536     path.cubicTo(1105.10461f, 16, 1106, 16.8954296f, 1106, 18); | 
|  | 1537     path.lineTo(1106, 40); | 
|  | 1538     path.cubicTo(1106, 41.1045685f, 1105.10461f, 42, 1104, 42); | 
|  | 1539     path.lineTo(1005, 42); | 
|  | 1540     path.cubicTo(1003.89545f, 42, 1003, 41.1045685f, 1003, 40); | 
|  | 1541     path.lineTo(1003, 18); | 
|  | 1542     path.close(); | 
|  | 1543     SkPath pathB; | 
|  | 1544     pathB.setFillType(SkPath::kWinding_FillType); | 
|  | 1545     pathB.moveTo(1108, 14); | 
|  | 1546     pathB.lineTo(1106, 16); | 
|  | 1547     pathB.lineTo(1105.97998f, 46.0200005f); | 
|  | 1548     pathB.lineTo(1108, 44); | 
|  | 1549     testPathOp(reporter, path, pathB, kIntersect_PathOp); | 
|  | 1550 } | 
|  | 1551 | 
| 670 static void (*firstTest)(skiatest::Reporter* ) = 0; | 1552 static void (*firstTest)(skiatest::Reporter* ) = 0; | 
| 671 | 1553 | 
| 672 static struct TestDesc tests[] = { | 1554 static struct TestDesc tests[] = { | 
|  | 1555 #if TRY_SEPT_BROKEN_TESTS | 
|  | 1556     TEST(skpwww_meb_gov_tr_6), | 
|  | 1557     TEST(skpwww_sciality_com_101), | 
|  | 1558     TEST(skpwww_booking_com_68),  // similar to lavoixdunord | 
|  | 1559     TEST(skpwww_despegar_com_mx_272),  // similar to lavoixdunord | 
|  | 1560     TEST(skpwww_lavoixdunord_fr_11),  // not quite coincident, sorting line/cubi
      c fails | 
|  | 1561     TEST(skppptv_com_62),  // cubic have nearly identical tangents, sort incorre
      ctly | 
|  | 1562 #endif | 
| 673 #if TRY_BROKEN_TESTS | 1563 #if TRY_BROKEN_TESTS | 
| 674     TEST(skppchappy_com_au102), | 1564     TEST(skppchappy_com_au102), | 
| 675     TEST(skpsciality_com161), | 1565     TEST(skpsciality_com161), | 
|  | 1566     TEST(skpi_gino_com16), | 
|  | 1567     TEST(skpnaoxrane_ru23),  // see test for failure evaluation | 
|  | 1568     TEST(skptcmevents_org23),  // see test for (partial) failure evaluation | 
|  | 1569     TEST(skpredbullskatearcade_es16),  // cubic have nearly identical tangents, 
      sort incorrectly | 
|  | 1570     TEST(skpfinanzasdigital_com9),  // cubic/quad tangents too close to sort | 
|  | 1571 #endif | 
|  | 1572     TEST(skpgithub_io_26), | 
|  | 1573     TEST(skpgithub_io_25), | 
|  | 1574     TEST(skpwww_meb_gov_tr_5), | 
|  | 1575     TEST(skpwww_sciality_com_100), | 
|  | 1576     TEST(skpwww_joomla_org_23), | 
|  | 1577     TEST(skpwww_macrumors_com_131), | 
|  | 1578     TEST(skpwww_briian_com_34), | 
|  | 1579     TEST(skpwww_leadpages_net_84), | 
|  | 1580     TEST(skpwww_fj_p_com_22), | 
|  | 1581     TEST(skppartainasdemo250_org56), | 
|  | 1582     TEST(skpsd_graphic_net104), | 
|  | 1583     TEST(skpbreakmystyle_com10), | 
|  | 1584     TEST(skpnational_com_au81), | 
|  | 1585     TEST(skprentacheat_com30), | 
|  | 1586     TEST(skptracksflow_com9), | 
|  | 1587     TEST(skpautobutler_dk29), | 
|  | 1588     TEST(skponlinecollege_org144), | 
|  | 1589     TEST(skphostloco_com11), | 
|  | 1590     TEST(skpsergeychunkevich_com8), | 
|  | 1591     TEST(skpmlk_com326), | 
|  | 1592     TEST(skpcyclist_friends_gr52), | 
|  | 1593     TEST(skpfrauen_magazin_com83), | 
|  | 1594     TEST(skpthesuburbanite_com213), | 
| 676     TEST(skpsudoestenegocios_com186), | 1595     TEST(skpsudoestenegocios_com186), | 
| 677     TEST(skpfrauen_magazin_com83), |  | 
| 678     TEST(skpi_gino_com16), |  | 
| 679 #endif |  | 
| 680     TEST(skpmtrk_uz27), | 1596     TEST(skpmtrk_uz27), | 
| 681     TEST(skpilkoora_com37), | 1597     TEST(skpilkoora_com37), | 
| 682     TEST(skpmm4everfriends_com43), | 1598     TEST(skpmm4everfriends_com43), | 
| 683     TEST(skpflite_com41), | 1599     TEST(skpflite_com41), | 
| 684     TEST(skpcheeseandburger_com225), | 1600     TEST(skpcheeseandburger_com225), | 
| 685     TEST(skpeverytechpro_blogspot_com100), | 1601     TEST(skpeverytechpro_blogspot_com100), | 
| 686 }; | 1602 }; | 
| 687 | 1603 | 
| 688 static const size_t testCount = SK_ARRAY_COUNT(tests); | 1604 static const size_t testCount = SK_ARRAY_COUNT(tests); | 
| 689 | 1605 | 
| 690 static bool runReverse = false; | 1606 static bool runReverse = false; | 
| 691 static void (*stopTest)(skiatest::Reporter* ) = 0; | 1607 static void (*stopTest)(skiatest::Reporter* ) = 0; | 
| 692 | 1608 | 
| 693 static void PathOpsSkpTest(skiatest::Reporter* reporter) { | 1609 static void PathOpsSkpTest(skiatest::Reporter* reporter) { | 
| 694 #if DEBUG_SHOW_TEST_NAME | 1610 #if DEBUG_SHOW_TEST_NAME | 
| 695     strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); | 1611     strncpy(DEBUG_FILENAME_STRING, "", DEBUG_FILENAME_STRING_LENGTH); | 
| 696 #endif | 1612 #endif | 
| 697     RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse); | 1613     RunTestSet(reporter, tests, testCount, firstTest, stopTest, runReverse); | 
| 698 } | 1614 } | 
| 699 | 1615 | 
| 700 #include "TestClassDef.h" | 1616 #include "TestClassDef.h" | 
| 701 | 1617 | 
| 702 DEFINE_TESTCLASS_SHORT(PathOpsSkpTest) | 1618 DEFINE_TESTCLASS_SHORT(PathOpsSkpTest) | 
| OLD | NEW | 
|---|