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 "PathOpsCubicIntersectionTestData.h" | 7 #include "PathOpsCubicIntersectionTestData.h" |
8 #include "PathOpsTestCommon.h" | 8 #include "PathOpsTestCommon.h" |
9 #include "SkGeometry.h" | 9 #include "SkGeometry.h" |
10 #include "SkIntersections.h" | 10 #include "SkIntersections.h" |
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 const SkDCubic& cubic2 = testSet[inner]; | 430 const SkDCubic& cubic2 = testSet[inner]; |
431 oneOff(reporter, cubic1, cubic2, false); | 431 oneOff(reporter, cubic1, cubic2, false); |
432 } | 432 } |
433 | 433 |
434 static void newOneOff(skiatest::Reporter* reporter, int outer, int inner) { | 434 static void newOneOff(skiatest::Reporter* reporter, int outer, int inner) { |
435 const SkDCubic& cubic1 = newTestSet[outer]; | 435 const SkDCubic& cubic1 = newTestSet[outer]; |
436 const SkDCubic& cubic2 = newTestSet[inner]; | 436 const SkDCubic& cubic2 = newTestSet[inner]; |
437 oneOff(reporter, cubic1, cubic2, false); | 437 oneOff(reporter, cubic1, cubic2, false); |
438 } | 438 } |
439 | 439 |
| 440 static void testsOneOff(skiatest::Reporter* reporter, int index) { |
| 441 const SkDCubic& cubic1 = tests[index][0]; |
| 442 const SkDCubic& cubic2 = tests[index][1]; |
| 443 oneOff(reporter, cubic1, cubic2, false); |
| 444 } |
| 445 |
440 static void oneOffTests(skiatest::Reporter* reporter) { | 446 static void oneOffTests(skiatest::Reporter* reporter) { |
441 for (int outer = 0; outer < testSetCount - 1; ++outer) { | 447 for (int outer = 0; outer < testSetCount - 1; ++outer) { |
442 for (int inner = outer + 1; inner < testSetCount; ++inner) { | 448 for (int inner = outer + 1; inner < testSetCount; ++inner) { |
443 oneOff(reporter, outer, inner); | 449 oneOff(reporter, outer, inner); |
444 } | 450 } |
445 } | 451 } |
446 for (int outer = 0; outer < newTestSetCount - 1; ++outer) { | 452 for (int outer = 0; outer < newTestSetCount - 1; ++outer) { |
447 for (int inner = outer + 1; inner < newTestSetCount; ++inner) { | 453 for (int inner = outer + 1; inner < newTestSetCount; ++inner) { |
448 newOneOff(reporter, outer, inner); | 454 newOneOff(reporter, outer, inner); |
449 } | 455 } |
(...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 } | 653 } |
648 | 654 |
649 static void cubicIntersectionSelfTest(skiatest::Reporter* reporter) { | 655 static void cubicIntersectionSelfTest(skiatest::Reporter* reporter) { |
650 int firstFail = 0; | 656 int firstFail = 0; |
651 for (int index = firstFail; index < selfSetCount; ++index) { | 657 for (int index = firstFail; index < selfSetCount; ++index) { |
652 selfOneOff(reporter, index); | 658 selfOneOff(reporter, index); |
653 } | 659 } |
654 } | 660 } |
655 | 661 |
656 static const SkDCubic coinSet[] = { | 662 static const SkDCubic coinSet[] = { |
| 663 {{{72.350448608398438, 27.966041564941406}, {72.58441162109375, 27.861515045
166016}, |
| 664 {72.818222045898437, 27.756658554077148}, {73.394996643066406, 27.497999
19128418}}}, |
| 665 {{{73.394996643066406, 27.49799919128418}, {72.818222045898437, 27.756658554
077148}, |
| 666 {72.58441162109375, 27.861515045166016}, {72.350448608398438, 27.9660415
64941406}}}, |
| 667 |
657 {{{297.04998779296875, 43.928997039794922}, {297.04998779296875, 43.92899703
9794922}, | 668 {{{297.04998779296875, 43.928997039794922}, {297.04998779296875, 43.92899703
9794922}, |
658 {300.69699096679688, 45.391998291015625}, {306.92498779296875, 43.085998
53515625}}}, | 669 {300.69699096679688, 45.391998291015625}, {306.92498779296875, 43.085998
53515625}}}, |
659 {{{297.04998779296875, 43.928997039794922}, {297.04998779296875, 43.92899703
9794922}, | 670 {{{297.04998779296875, 43.928997039794922}, {297.04998779296875, 43.92899703
9794922}, |
660 {300.69699096679688, 45.391998291015625}, {306.92498779296875, 43.085998
53515625}}}, | 671 {300.69699096679688, 45.391998291015625}, {306.92498779296875, 43.085998
53515625}}}, |
661 | 672 |
662 {{{2, 3}, {0, 4}, {3, 2}, {5, 3}}}, | 673 {{{2, 3}, {0, 4}, {3, 2}, {5, 3}}}, |
663 {{{2, 3}, {0, 4}, {3, 2}, {5, 3}}}, | 674 {{{2, 3}, {0, 4}, {3, 2}, {5, 3}}}, |
664 | 675 |
665 {{{317, 711}, {322.52285766601562, 711}, {327, 715.4771728515625}, {327, 721
}}}, | 676 {{{317, 711}, {322.52285766601562, 711}, {327, 715.4771728515625}, {327, 721
}}}, |
666 {{{324.07107543945312, 713.928955078125}, {324.4051513671875, 714.2630004882
8125}, | 677 {{{324.07107543945312, 713.928955078125}, {324.4051513671875, 714.2630004882
8125}, |
(...skipping 13 matching lines...) Expand all Loading... |
680 for (int index = firstFail; index < coinSetCount; index += 2) { | 691 for (int index = firstFail; index < coinSetCount; index += 2) { |
681 coinOneOff(reporter, index); | 692 coinOneOff(reporter, index); |
682 } | 693 } |
683 } | 694 } |
684 | 695 |
685 DEF_TEST(PathOpsCubicCoinOneOff, reporter) { | 696 DEF_TEST(PathOpsCubicCoinOneOff, reporter) { |
686 coinOneOff(reporter, 0); | 697 coinOneOff(reporter, 0); |
687 } | 698 } |
688 | 699 |
689 DEF_TEST(PathOpsCubicIntersectionOneOff, reporter) { | 700 DEF_TEST(PathOpsCubicIntersectionOneOff, reporter) { |
690 newOneOff(reporter, 0, 1); | 701 newOneOff(reporter, 66, 70); |
| 702 } |
| 703 |
| 704 DEF_TEST(PathOpsCubicIntersectionTestsOneOff, reporter) { |
| 705 testsOneOff(reporter, 10); |
691 } | 706 } |
692 | 707 |
693 DEF_TEST(PathOpsCubicSelfOneOff, reporter) { | 708 DEF_TEST(PathOpsCubicSelfOneOff, reporter) { |
694 selfOneOff(reporter, 0); | 709 selfOneOff(reporter, 0); |
695 } | 710 } |
696 | 711 |
697 DEF_TEST(PathOpsCubicIntersection, reporter) { | 712 DEF_TEST(PathOpsCubicIntersection, reporter) { |
698 oneOffTests(reporter); | 713 oneOffTests(reporter); |
699 cubicIntersectionSelfTest(reporter); | 714 cubicIntersectionSelfTest(reporter); |
700 cubicIntersectionCoinTest(reporter); | 715 cubicIntersectionCoinTest(reporter); |
701 standardTestCases(reporter); | 716 standardTestCases(reporter); |
702 if (false) CubicIntersection_IntersectionFinder(); | 717 if (false) CubicIntersection_IntersectionFinder(); |
703 if (false) CubicIntersection_RandTest(reporter); | 718 if (false) CubicIntersection_RandTest(reporter); |
704 } | 719 } |
OLD | NEW |