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

Side by Side Diff: experimental/Intersection/LineIntersection_Test.cpp

Issue 867213004: remove prototype pathops code (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 10 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
OLDNEW
(Empty)
1 /*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7 #include "CurveUtilities.h"
8 #include "Intersection_Tests.h"
9 #include "LineIntersection.h"
10
11 // FIXME: add tests for intersecting, non-intersecting, degenerate, coincident
12 const _Line tests[][2] = {
13 {{{0, 0}, {1, 0}}, {{1, 0}, {0, 0}}},
14 {{{0, 0}, {0, 0}}, {{0, 0}, {1, 0}}},
15 {{{0, 1}, {0, 1}}, {{0, 0}, {0, 2}}},
16 {{{0, 0}, {1, 0}}, {{0, 0}, {2, 0}}},
17 {{{1, 1}, {2, 2}}, {{0, 0}, {3, 3}}},
18 {{{166.86950047022856, 112.69654129527828}, {166.86948801592692, 112.6965574 1235339}},
19 {{166.86960700313026, 112.6965477747386}, {166.86925794355412, 112.6965647 1103423}}}
20 };
21
22 const size_t tests_count = sizeof(tests) / sizeof(tests[0]);
23
24 const _Line noIntersect[][2] = {
25 {{{0, 0}, {1, 0}}, {{3, 0}, {2, 0}}},
26 {{{0, 0}, {0, 0}}, {{1, 0}, {2, 0}}},
27 {{{0, 1}, {0, 1}}, {{0, 3}, {0, 2}}},
28 {{{0, 0}, {1, 0}}, {{2, 0}, {3, 0}}},
29 {{{1, 1}, {2, 2}}, {{4, 4}, {3, 3}}},
30 };
31
32 const size_t noIntersect_count = sizeof(noIntersect) / sizeof(noIntersect[0]);
33
34 static size_t firstLineIntersectionTest = 0;
35 static size_t firstNoIntersectionTest = 0;
36
37 void LineIntersection_Test() {
38 size_t index;
39 for (index = firstLineIntersectionTest; index < tests_count; ++index) {
40 const _Line& line1 = tests[index][0];
41 const _Line& line2 = tests[index][1];
42 Intersections ts;
43 int pts = intersect(line1, line2, ts);
44 if (!pts) {
45 printf("%s [%zu] no intersection found\n", __FUNCTION__, index);
46 }
47 for (int i = 0; i < pts; ++i) {
48 _Point result1, result2;
49 xy_at_t(line1, ts.fT[0][i], result1.x, result1.y);
50 xy_at_t(line2, ts.fT[1][i], result2.x, result2.y);
51 if (!result1.approximatelyEqual(result2)) {
52 if (pts == 1) {
53 printf("%s [%zu] not equal\n", __FUNCTION__, index);
54 } else {
55 xy_at_t(line2, ts.fT[1][i ^ 1], result2.x, result2.y);
56 if (!result1.approximatelyEqual(result2)) {
57 printf("%s [%zu] not equal\n", __FUNCTION__, index);
58 }
59 }
60 }
61 }
62 }
63 for (index = firstNoIntersectionTest; index < noIntersect_count; ++index) {
64 const _Line& line1 = noIntersect[index][0];
65 const _Line& line2 = noIntersect[index][1];
66 Intersections ts;
67 int pts = intersect(line1, line2, ts);
68 if (pts) {
69 printf("%s [%zu] no intersection expected\n", __FUNCTION__, index);
70 }
71 }
72 }
OLDNEW
« no previous file with comments | « experimental/Intersection/LineIntersection.cpp ('k') | experimental/Intersection/LineParameterization.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698