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 "EdgeWalker_Test.h"
8 #include "Intersection_Tests.h"
9 #include "SkBitmap.h"
10
11 static SkBitmap bitmap;
12
testSimplifyQuad1()13 static void testSimplifyQuad1() {
14 SkPath path, out;
15 path.moveTo(0, 0);
16 path.lineTo(1, 0);
17 path.lineTo(3, 2);
18 path.lineTo(3, 3);
19 path.close();
20 path.moveTo(1, 0);
21 path.lineTo(1, 3);
22 path.lineTo(1, 3);
23 path.lineTo(1, 3);
24 path.close();
25 testSimplify(path, true, out, bitmap);
26 }
27
testSimplifyQuad2()28 static void testSimplifyQuad2() {
29 SkPath path, out;
30 path.moveTo(0, 0);
31 path.lineTo(0, 0);
32 path.lineTo(0, 0);
33 path.lineTo(0, 2);
34 path.close();
35 path.moveTo(0, 1);
36 path.lineTo(0, 1);
37 path.lineTo(1, 1);
38 path.lineTo(0, 2);
39 path.close();
40 testSimplify(path, true, out, bitmap);
41 }
42
testSimplifyQuad3()43 static void testSimplifyQuad3() {
44 SkPath path, out;
45 path.moveTo(0, 0);
46 path.lineTo(0, 0);
47 path.lineTo(1, 0);
48 path.lineTo(1, 2);
49 path.close();
50 path.moveTo(0, 1);
51 path.lineTo(1, 1);
52 path.lineTo(2, 1);
53 path.lineTo(0, 2);
54 path.close();
55 testSimplify(path, true, out, bitmap);
56 }
57
testSimplifyQuad4()58 static void testSimplifyQuad4() {
59 SkPath path, out;
60 path.moveTo(0, 0);
61 path.lineTo(0, 0);
62 path.lineTo(1, 0);
63 path.lineTo(2, 2);
64 path.close();
65 path.moveTo(0, 0);
66 path.lineTo(2, 1);
67 path.lineTo(3, 1);
68 path.lineTo(3, 3);
69 path.close();
70 testSimplify(path, true, out, bitmap);
71 }
72
testSimplifyQuad5()73 static void testSimplifyQuad5() {
74 SkPath path, out;
75 path.moveTo(0, 0);
76 path.lineTo(0, 0);
77 path.lineTo(1, 0);
78 path.lineTo(3, 2);
79 path.close();
80 path.moveTo(0, 1);
81 path.lineTo(1, 1);
82 path.lineTo(2, 1);
83 path.lineTo(0, 2);
84 path.close();
85 testSimplify(path, true, out, bitmap);
86 }
87
testSimplifyQuad6()88 static void testSimplifyQuad6() {
89 SkPath path, out;
90 path.moveTo(0, 0);
91 path.lineTo(1, 0);
92 path.lineTo(1, 1);
93 path.lineTo(3, 3);
94 path.close();
95 path.moveTo(1, 1);
96 path.lineTo(1, 1);
97 path.lineTo(1, 1);
98 path.lineTo(2, 2);
99 path.close();
100 testSimplify(path, true, out, bitmap);
101 }
102
103 static void (*simplifyTests[])() = {
104 testSimplifyQuad6,
105 testSimplifyQuad5,
106 testSimplifyQuad4,
107 testSimplifyQuad3,
108 testSimplifyQuad2,
109 testSimplifyQuad1,
110 };
111
112 static size_t simplifyTestsCount = sizeof(simplifyTests) / sizeof(simplifyTests[0]);
113
114 static void (*firstTest)() = 0;
115
SimplifyQuadralateralPaths_Test()116 void SimplifyQuadralateralPaths_Test() {
117 size_t index = 0;
118 if (firstTest) {
119 while (index < simplifyTestsCount && simplifyTests[index] != firstTest) {
120 ++index;
121 }
122 }
123 for ( ; index < simplifyTestsCount; ++index) {
124 (*simplifyTests[index])();
125 }
126 }
127