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

Side by Side Diff: cc/animation/timing_function_unittest.cc

Issue 140253013: Define accelerated steps time function. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: git cl upload Created 6 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
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
ajuma 2014/02/21 19:05:08 Note that this file has been deleted since you pos
5 #include "cc/animation/timing_function.h" 5 #include "cc/animation/timing_function.h"
6 6
7 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
8 8
9 namespace cc { 9 namespace cc {
10 namespace { 10 namespace {
11 11
12 TEST(TimingFunctionTest, CubicBezierTimingFunction) { 12 TEST(TimingFunctionTest, CubicBezierTimingFunction) {
13 scoped_ptr<CubicBezierTimingFunction> function = 13 scoped_ptr<CubicBezierTimingFunction> function =
14 CubicBezierTimingFunction::Create(0.25, 0.0, 0.75, 1.0); 14 CubicBezierTimingFunction::Create(0.25, 0.0, 0.75, 1.0);
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 EXPECT_EQ(0.f, min); 130 EXPECT_EQ(0.f, min);
131 EXPECT_EQ(1.f, max); 131 EXPECT_EQ(1.f, max);
132 132
133 // Derivative has two roots > 1. 133 // Derivative has two roots > 1.
134 function = CubicBezierTimingFunction::Create(0.25, 0.367, 0.75, 0.7); 134 function = CubicBezierTimingFunction::Create(0.25, 0.367, 0.75, 0.7);
135 function->Range(&min, &max); 135 function->Range(&min, &max);
136 EXPECT_EQ(0.f, min); 136 EXPECT_EQ(0.f, min);
137 EXPECT_EQ(1.f, max); 137 EXPECT_EQ(1.f, max);
138 } 138 }
139 139
140 TEST(TimingFunctionTest, StepsTimingFunction) {
141 scoped_ptr<StepsTimingFunction> function =
142 StepsTimingFunction::Create(36, false);
143
144 double epsilon = 0.00015;
145
146 EXPECT_NEAR(function->GetValue(0), 0, epsilon);
ajuma 2014/02/21 19:05:08 We might be able to just use EXPECT_FLOAT_EQ here,
147 EXPECT_NEAR(function->GetValue(0.05), 1.f/36.f, epsilon);
148 EXPECT_NEAR(function->GetValue(0.1), 3.f/36.f, epsilon);
149 EXPECT_NEAR(function->GetValue(0.15), 5.f/36.f, epsilon);
150 EXPECT_NEAR(function->GetValue(0.2), 7.f/36.f, epsilon);
151 EXPECT_NEAR(function->GetValue(0.25), 9.f/36.f, epsilon);
152 EXPECT_NEAR(function->GetValue(0.3), 10.f/36.f, epsilon);
153 EXPECT_NEAR(function->GetValue(0.35), 12.f/36.f, epsilon);
154 EXPECT_NEAR(function->GetValue(0.4), 14.f/36.f, epsilon);
155 EXPECT_NEAR(function->GetValue(0.45), 16.f/36.f, epsilon);
156 EXPECT_NEAR(function->GetValue(0.5), 18.f/36.f, epsilon);
157 EXPECT_NEAR(function->GetValue(0.6), 21.f/36.f, epsilon);
158 EXPECT_NEAR(function->GetValue(0.65), 23.f/36.f, epsilon);
159 EXPECT_NEAR(function->GetValue(0.7), 25.f/36.f, epsilon);
160 EXPECT_NEAR(function->GetValue(0.75), 27.f/36.f, epsilon);
161 EXPECT_NEAR(function->GetValue(0.8), 28.f/36.f, epsilon);
162 EXPECT_NEAR(function->GetValue(0.85), 30.f/36.f, epsilon);
163 EXPECT_NEAR(function->GetValue(0.9), 32.f/36.f, epsilon);
164 EXPECT_NEAR(function->GetValue(0.95), 34.f/36.f, epsilon);
165 EXPECT_NEAR(function->GetValue(1), 1, epsilon);
166 }
167
168 TEST(TimingFunctionTest, StepsTimingFunctionStepsAtStart) {
169 return;
170 scoped_ptr<StepsTimingFunction> function =
171 StepsTimingFunction::Create(36, true);
172
173 double epsilon = 0.00015;
174
175 EXPECT_NEAR(function->GetValue(0), 1.f/36.f, epsilon);
176 EXPECT_NEAR(function->GetValue(0.05), 2.f/36.f, epsilon);
177 EXPECT_NEAR(function->GetValue(0.1), 4.f/36.f, epsilon);
178 EXPECT_NEAR(function->GetValue(0.15), 6.f/36.f, epsilon);
179 EXPECT_NEAR(function->GetValue(0.2), 8.f/36.f, epsilon);
180 EXPECT_NEAR(function->GetValue(0.25), 10.f/36.f, epsilon);
181 EXPECT_NEAR(function->GetValue(0.3), 11.f/36.f, epsilon);
182 EXPECT_NEAR(function->GetValue(0.35), 13.f/36.f, epsilon);
183 EXPECT_NEAR(function->GetValue(0.4), 15.f/36.f, epsilon);
184 EXPECT_NEAR(function->GetValue(0.45), 17.f/36.f, epsilon);
185 EXPECT_NEAR(function->GetValue(0.5), 19.f/36.f, epsilon);
186 EXPECT_NEAR(function->GetValue(0.6), 22.f/36.f, epsilon);
187 EXPECT_NEAR(function->GetValue(0.65), 24.f/36.f, epsilon);
188 EXPECT_NEAR(function->GetValue(0.7), 26.f/36.f, epsilon);
189 EXPECT_NEAR(function->GetValue(0.75), 28.f/36.f, epsilon);
190 EXPECT_NEAR(function->GetValue(0.8), 29.f/36.f, epsilon);
191 EXPECT_NEAR(function->GetValue(0.85), 31.f/36.f, epsilon);
192 EXPECT_NEAR(function->GetValue(0.9), 33.f/36.f, epsilon);
193 EXPECT_NEAR(function->GetValue(0.95), 35.f/36.f, epsilon);
194 EXPECT_NEAR(function->GetValue(1), 1, epsilon);
195 }
196
197 TEST(TimingFunctionTest, StepsTimingFunctionRange) {
198 double epsilon = 0.00015;
199 float min, max;
200
201 scoped_ptr<StepsTimingFunction> function =
202 StepsTimingFunction::Create(36, false);
203
204 function->Range(&min, &max);
205 EXPECT_EQ(0.f, min);
206 EXPECT_EQ(1.f, max);
207
208 function = StepsTimingFunction::Create(36, true);
209 function->Range(&min, &max);
210 EXPECT_NEAR(min, 1.f/36.f, epsilon);
211 EXPECT_EQ(1.f, max);
212 }
213
140 } // namespace 214 } // namespace
141 } // namespace cc 215 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698