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

Side by Side Diff: tests/PathMeasureTest.cpp

Issue 85463005: remove SkFloatToScalar macro (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: add flag to expose SkFloatToScalar to chromium Created 7 years 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/ParsePathTest.cpp ('k') | tests/PathOpsOpTest.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 /* 2 /*
3 * Copyright 2011 Google Inc. 3 * Copyright 2011 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 #include "Test.h" 8 #include "Test.h"
9 #include "SkPathMeasure.h" 9 #include "SkPathMeasure.h"
10 10
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
44 meas.getLength(); 44 meas.getLength();
45 #endif 45 #endif
46 } 46 }
47 47
48 static void test_small_segment() { 48 static void test_small_segment() {
49 #ifdef SK_SCALAR_IS_FLOAT 49 #ifdef SK_SCALAR_IS_FLOAT
50 SkPath path; 50 SkPath path;
51 const SkPoint pts[] = { 51 const SkPoint pts[] = {
52 { 100000, 100000}, 52 { 100000, 100000},
53 // big jump between these points, makes a big segment 53 // big jump between these points, makes a big segment
54 { SkFloatToScalar(1.0005f), SkFloatToScalar(0.9999f) }, 54 { 1.0005f, 0.9999f },
55 // tiny (non-zero) jump between these points 55 // tiny (non-zero) jump between these points
56 { SK_Scalar1, SK_Scalar1 }, 56 { SK_Scalar1, SK_Scalar1 },
57 }; 57 };
58 58
59 path.moveTo(pts[0]); 59 path.moveTo(pts[0]);
60 for (size_t i = 1; i < SK_ARRAY_COUNT(pts); ++i) { 60 for (size_t i = 1; i < SK_ARRAY_COUNT(pts); ++i) {
61 path.lineTo(pts[i]); 61 path.lineTo(pts[i]);
62 } 62 }
63 SkPathMeasure meas(path, false); 63 SkPathMeasure meas(path, false);
64 64
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 REPORTER_ASSERT(reporter, length == SK_Scalar1 * 4); 116 REPORTER_ASSERT(reporter, length == SK_Scalar1 * 4);
117 meas.nextContour(); 117 meas.nextContour();
118 length = meas.getLength(); 118 length = meas.getLength();
119 REPORTER_ASSERT(reporter, length == SK_Scalar1); 119 REPORTER_ASSERT(reporter, length == SK_Scalar1);
120 SkPoint position; 120 SkPoint position;
121 SkVector tangent; 121 SkVector tangent;
122 REPORTER_ASSERT(reporter, meas.getPosTan(SK_ScalarHalf, &position, &tangent) ); 122 REPORTER_ASSERT(reporter, meas.getPosTan(SK_ScalarHalf, &position, &tangent) );
123 REPORTER_ASSERT(reporter, 123 REPORTER_ASSERT(reporter,
124 SkScalarNearlyEqual(position.fX, 124 SkScalarNearlyEqual(position.fX,
125 -SK_ScalarHalf, 125 -SK_ScalarHalf,
126 SkFloatToScalar(0.0001f))); 126 0.0001f));
127 REPORTER_ASSERT(reporter, position.fY == 0); 127 REPORTER_ASSERT(reporter, position.fY == 0);
128 REPORTER_ASSERT(reporter, tangent.fX == -SK_Scalar1); 128 REPORTER_ASSERT(reporter, tangent.fX == -SK_Scalar1);
129 REPORTER_ASSERT(reporter, tangent.fY == 0); 129 REPORTER_ASSERT(reporter, tangent.fY == 0);
130 130
131 // Test degenerate paths 131 // Test degenerate paths
132 path.reset(); 132 path.reset();
133 path.moveTo(0, 0); 133 path.moveTo(0, 0);
134 path.lineTo(0, 0); 134 path.lineTo(0, 0);
135 path.lineTo(SK_Scalar1, 0); 135 path.lineTo(SK_Scalar1, 0);
136 path.quadTo(SK_Scalar1, 0, SK_Scalar1, 0); 136 path.quadTo(SK_Scalar1, 0, SK_Scalar1, 0);
137 path.quadTo(SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_Scalar1 * 2); 137 path.quadTo(SK_Scalar1, SK_Scalar1, SK_Scalar1, SK_Scalar1 * 2);
138 path.cubicTo(SK_Scalar1, SK_Scalar1 * 2, 138 path.cubicTo(SK_Scalar1, SK_Scalar1 * 2,
139 SK_Scalar1, SK_Scalar1 * 2, 139 SK_Scalar1, SK_Scalar1 * 2,
140 SK_Scalar1, SK_Scalar1 * 2); 140 SK_Scalar1, SK_Scalar1 * 2);
141 path.cubicTo(SK_Scalar1*2, SK_Scalar1 * 2, 141 path.cubicTo(SK_Scalar1*2, SK_Scalar1 * 2,
142 SK_Scalar1*3, SK_Scalar1 * 2, 142 SK_Scalar1*3, SK_Scalar1 * 2,
143 SK_Scalar1*4, SK_Scalar1 * 2); 143 SK_Scalar1*4, SK_Scalar1 * 2);
144 meas.setPath(&path, false); 144 meas.setPath(&path, false);
145 length = meas.getLength(); 145 length = meas.getLength();
146 REPORTER_ASSERT(reporter, length == SK_Scalar1 * 6); 146 REPORTER_ASSERT(reporter, length == SK_Scalar1 * 6);
147 REPORTER_ASSERT(reporter, meas.getPosTan(SK_ScalarHalf, &position, &tangent) ); 147 REPORTER_ASSERT(reporter, meas.getPosTan(SK_ScalarHalf, &position, &tangent) );
148 REPORTER_ASSERT(reporter, 148 REPORTER_ASSERT(reporter,
149 SkScalarNearlyEqual(position.fX, 149 SkScalarNearlyEqual(position.fX,
150 SK_ScalarHalf, 150 SK_ScalarHalf,
151 SkFloatToScalar(0.0001f))); 151 0.0001f));
152 REPORTER_ASSERT(reporter, position.fY == 0); 152 REPORTER_ASSERT(reporter, position.fY == 0);
153 REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1); 153 REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1);
154 REPORTER_ASSERT(reporter, tangent.fY == 0); 154 REPORTER_ASSERT(reporter, tangent.fY == 0);
155 REPORTER_ASSERT(reporter, meas.getPosTan(SkFloatToScalar(2.5f), &position, & tangent)); 155 REPORTER_ASSERT(reporter, meas.getPosTan(2.5f, &position, &tangent));
156 REPORTER_ASSERT(reporter, 156 REPORTER_ASSERT(reporter,
157 SkScalarNearlyEqual(position.fX, SK_Scalar1, SkFloatToScalar(0.0001f))); 157 SkScalarNearlyEqual(position.fX, SK_Scalar1, 0.0001f));
158 REPORTER_ASSERT(reporter, 158 REPORTER_ASSERT(reporter,
159 SkScalarNearlyEqual(position.fY, SkFloatToScalar(1.5f))); 159 SkScalarNearlyEqual(position.fY, 1.5f));
160 REPORTER_ASSERT(reporter, tangent.fX == 0); 160 REPORTER_ASSERT(reporter, tangent.fX == 0);
161 REPORTER_ASSERT(reporter, tangent.fY == SK_Scalar1); 161 REPORTER_ASSERT(reporter, tangent.fY == SK_Scalar1);
162 REPORTER_ASSERT(reporter, meas.getPosTan(SkFloatToScalar(4.5f), &position, & tangent)); 162 REPORTER_ASSERT(reporter, meas.getPosTan(4.5f, &position, &tangent));
163 REPORTER_ASSERT(reporter, 163 REPORTER_ASSERT(reporter,
164 SkScalarNearlyEqual(position.fX, 164 SkScalarNearlyEqual(position.fX,
165 SkFloatToScalar(2.5f), 165 2.5f,
166 SkFloatToScalar(0.0001f))); 166 0.0001f));
167 REPORTER_ASSERT(reporter, 167 REPORTER_ASSERT(reporter,
168 SkScalarNearlyEqual(position.fY, 168 SkScalarNearlyEqual(position.fY,
169 SkFloatToScalar(2.0f), 169 2.0f,
170 SkFloatToScalar(0.0001f))); 170 0.0001f));
171 REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1); 171 REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1);
172 REPORTER_ASSERT(reporter, tangent.fY == 0); 172 REPORTER_ASSERT(reporter, tangent.fY == 0);
173 173
174 path.reset(); 174 path.reset();
175 path.moveTo(0, 0); 175 path.moveTo(0, 0);
176 path.lineTo(SK_Scalar1, 0); 176 path.lineTo(SK_Scalar1, 0);
177 path.moveTo(SK_Scalar1, SK_Scalar1); 177 path.moveTo(SK_Scalar1, SK_Scalar1);
178 path.moveTo(SK_Scalar1 * 2, SK_Scalar1 * 2); 178 path.moveTo(SK_Scalar1 * 2, SK_Scalar1 * 2);
179 path.lineTo(SK_Scalar1, SK_Scalar1 * 2); 179 path.lineTo(SK_Scalar1, SK_Scalar1 * 2);
180 meas.setPath(&path, false); 180 meas.setPath(&path, false);
181 length = meas.getLength(); 181 length = meas.getLength();
182 REPORTER_ASSERT(reporter, length == SK_Scalar1); 182 REPORTER_ASSERT(reporter, length == SK_Scalar1);
183 REPORTER_ASSERT(reporter, meas.getPosTan(SK_ScalarHalf, &position, &tangent) ); 183 REPORTER_ASSERT(reporter, meas.getPosTan(SK_ScalarHalf, &position, &tangent) );
184 REPORTER_ASSERT(reporter, 184 REPORTER_ASSERT(reporter,
185 SkScalarNearlyEqual(position.fX, 185 SkScalarNearlyEqual(position.fX,
186 SK_ScalarHalf, 186 SK_ScalarHalf,
187 SkFloatToScalar(0.0001f))); 187 0.0001f));
188 REPORTER_ASSERT(reporter, position.fY == 0); 188 REPORTER_ASSERT(reporter, position.fY == 0);
189 REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1); 189 REPORTER_ASSERT(reporter, tangent.fX == SK_Scalar1);
190 REPORTER_ASSERT(reporter, tangent.fY == 0); 190 REPORTER_ASSERT(reporter, tangent.fY == 0);
191 meas.nextContour(); 191 meas.nextContour();
192 length = meas.getLength(); 192 length = meas.getLength();
193 REPORTER_ASSERT(reporter, length == SK_Scalar1); 193 REPORTER_ASSERT(reporter, length == SK_Scalar1);
194 REPORTER_ASSERT(reporter, meas.getPosTan(SK_ScalarHalf, &position, &tangent) ); 194 REPORTER_ASSERT(reporter, meas.getPosTan(SK_ScalarHalf, &position, &tangent) );
195 REPORTER_ASSERT(reporter, 195 REPORTER_ASSERT(reporter,
196 SkScalarNearlyEqual(position.fX, 196 SkScalarNearlyEqual(position.fX,
197 SkFloatToScalar(1.5f), 197 1.5f,
198 SkFloatToScalar(0.0001f))); 198 0.0001f));
199 REPORTER_ASSERT(reporter, 199 REPORTER_ASSERT(reporter,
200 SkScalarNearlyEqual(position.fY, 200 SkScalarNearlyEqual(position.fY,
201 SkFloatToScalar(2.0f), 201 2.0f,
202 SkFloatToScalar(0.0001f))); 202 0.0001f));
203 REPORTER_ASSERT(reporter, tangent.fX == -SK_Scalar1); 203 REPORTER_ASSERT(reporter, tangent.fX == -SK_Scalar1);
204 REPORTER_ASSERT(reporter, tangent.fY == 0); 204 REPORTER_ASSERT(reporter, tangent.fY == 0);
205 205
206 test_small_segment(); 206 test_small_segment();
207 test_small_segment2(); 207 test_small_segment2();
208 test_small_segment3(); 208 test_small_segment3();
209 } 209 }
210 210
211 #include "TestClassDef.h" 211 #include "TestClassDef.h"
212 DEFINE_TESTCLASS("PathMeasure", PathMeasureTestClass, TestPathMeasure) 212 DEFINE_TESTCLASS("PathMeasure", PathMeasureTestClass, TestPathMeasure)
OLDNEW
« no previous file with comments | « tests/ParsePathTest.cpp ('k') | tests/PathOpsOpTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698