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

Side by Side Diff: tests/PathOpsCubicQuadIntersectionTest.cpp

Issue 52653002: pathops work in progress (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: add raster vs gpu test Created 7 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « tests/PathOpsCubicLineIntersectionTest.cpp ('k') | tests/PathOpsDQuadTest.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 2013 Google Inc. 2 * Copyright 2013 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 "PathOpsTestCommon.h" 7 #include "PathOpsTestCommon.h"
8 #include "SkIntersections.h" 8 #include "SkIntersections.h"
9 #include "SkPathOpsCubic.h" 9 #include "SkPathOpsCubic.h"
10 #include "SkPathOpsQuad.h" 10 #include "SkPathOpsQuad.h"
11 #include "SkReduceOrder.h" 11 #include "SkReduceOrder.h"
12 #include "Test.h" 12 #include "Test.h"
13 13
14 static struct lineCubic { 14 static struct lineCubic {
15 SkDCubic cubic; 15 SkDCubic cubic;
16 SkDQuad quad; 16 SkDQuad quad;
17 int answerCount; 17 int answerCount;
18 SkDPoint answers[2]; 18 SkDPoint answers[2];
19 } quadCubicTests[] = { 19 } quadCubicTests[] = {
20 {{{{778, 14089}, {778, 14091.208984375}, {776.20916748046875, 14093}, {774, 14093}}},
21 {{{778, 14089}, {777.99957275390625, 14090.65625}, {776.82843017578125, 140 91.828125}}}, 2,
22 {{778, 14089}, {776.82855609581270,14091.828250841330}}},
23
24 {{{{1110, 817}, {1110.55225f, 817}, {1111, 817.447693f}, {1111, 818}}},
25 {{{1110.70715f, 817.292908f}, {1110.41406f, 817.000122f}, {1110, 817}}}, 2,
26 {{1110, 817}, {1110.70715f, 817.292908f}}},
27
28 {{{{1110, 817}, {1110.55225f, 817}, {1111, 817.447693f}, {1111, 818}}},
29 {{{1111, 818}, {1110.99988f, 817.585876f}, {1110.70715f, 817.292908f}}}, 2,
30 {{1110.70715f, 817.292908f}, {1111, 818}}},
31
32 {{{{55, 207}, {52.238574981689453, 207}, {50, 204.76142883300781}, {50, 202} }},
33 {{{55, 207}, {52.929431915283203, 206.99949645996094},
34 {51.464466094970703, 205.53553771972656}}}, 2,
35 {{55, 207}, {51.464466094970703, 205.53553771972656}}},
36
20 {{{{49, 47}, {49, 74.614250183105469}, {26.614250183105469, 97}, {-1, 97}}}, 37 {{{{49, 47}, {49, 74.614250183105469}, {26.614250183105469, 97}, {-1, 97}}},
21 {{{-8.659739592076221e-015, 96.991401672363281}, {20.065492630004883, 96.64 5187377929688}, 38 {{{-8.659739592076221e-015, 96.991401672363281}, {20.065492630004883, 96.64 5187377929688},
22 {34.355339050292969, 82.355339050292969}}}, 2, 39 {34.355339050292969, 82.355339050292969}}}, 2,
23 {{34.355339050292969,82.355339050292969}, {34.306797674910243,82.403823585 863449}}}, 40 {{34.355339050292969,82.355339050292969}, {34.28654835573549, 82.424006509 351585}}},
24 41
25 {{{{10,234}, {10,229.58172607421875}, {13.581720352172852,226}, {18,226}}}, 42 {{{{10,234}, {10,229.58172607421875}, {13.581720352172852,226}, {18,226}}},
26 {{{18,226}, {14.686291694641113,226}, {12.342399597167969,228.3424072265625 }}}, 1, 43 {{{18,226}, {14.686291694641113,226}, {12.342399597167969,228.3424072265625 }}}, 1,
27 {{18,226}, {0,0}}}, 44 {{18,226}, {0,0}}},
45
28 {{{{10,234}, {10,229.58172607421875}, {13.581720352172852,226}, {18,226}}}, 46 {{{{10,234}, {10,229.58172607421875}, {13.581720352172852,226}, {18,226}}},
29 {{{12.342399597167969,228.3424072265625}, {10,230.68629455566406}, {10,234} }}, 1, 47 {{{12.342399597167969,228.3424072265625}, {10,230.68629455566406}, {10,234} }}, 1,
30 {{10,234}, {0,0}}}, 48 {{10,234}, {0,0}}},
31 }; 49 };
32 50
33 static const size_t quadCubicTests_count = SK_ARRAY_COUNT(quadCubicTests); 51 static const size_t quadCubicTests_count = SK_ARRAY_COUNT(quadCubicTests);
34 52
35 static void PathOpsCubicQuadIntersectionTest(skiatest::Reporter* reporter) { 53 static void PathOpsCubicQuadIntersectionTest(skiatest::Reporter* reporter) {
36 for (size_t index = 0; index < quadCubicTests_count; ++index) { 54 for (size_t index = 0; index < quadCubicTests_count; ++index) {
37 int iIndex = static_cast<int>(index); 55 int iIndex = static_cast<int>(index);
(...skipping 24 matching lines...) Expand all
62 SkDPoint xy2 = quad.ptAtT(tt2); 80 SkDPoint xy2 = quad.ptAtT(tt2);
63 if (!xy1.approximatelyEqual(xy2)) { 81 if (!xy1.approximatelyEqual(xy2)) {
64 SkDebugf("%s [%d,%d] x!= t1=%g (%g,%g) t2=%g (%g,%g)\n", 82 SkDebugf("%s [%d,%d] x!= t1=%g (%g,%g) t2=%g (%g,%g)\n",
65 __FUNCTION__, iIndex, pt, tt1, xy1.fX, xy1.fY, tt2, xy2.fX, xy2.fY); 83 __FUNCTION__, iIndex, pt, tt1, xy1.fX, xy1.fY, tt2, xy2.fX, xy2.fY);
66 } 84 }
67 REPORTER_ASSERT(reporter, xy1.approximatelyEqual(xy2)); 85 REPORTER_ASSERT(reporter, xy1.approximatelyEqual(xy2));
68 bool found = false; 86 bool found = false;
69 for (int idx2 = 0; idx2 < quadCubicTests[index].answerCount; ++idx2) { 87 for (int idx2 = 0; idx2 < quadCubicTests[index].answerCount; ++idx2) {
70 found |= quadCubicTests[index].answers[idx2].approximatelyEqual( xy1); 88 found |= quadCubicTests[index].answers[idx2].approximatelyEqual( xy1);
71 } 89 }
90 if (!found) {
91 SkDebugf("%s [%d,%d] xy1=(%g,%g) != \n",
92 __FUNCTION__, iIndex, pt, xy1.fX, xy1.fY);
93 }
72 REPORTER_ASSERT(reporter, found); 94 REPORTER_ASSERT(reporter, found);
73 } 95 }
74 reporter->bumpTestCount(); 96 reporter->bumpTestCount();
75 } 97 }
76 } 98 }
77 99
78 #include "TestClassDef.h" 100 #include "TestClassDef.h"
79 DEFINE_TESTCLASS_SHORT(PathOpsCubicQuadIntersectionTest) 101 DEFINE_TESTCLASS_SHORT(PathOpsCubicQuadIntersectionTest)
OLDNEW
« no previous file with comments | « tests/PathOpsCubicLineIntersectionTest.cpp ('k') | tests/PathOpsDQuadTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698