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

Side by Side Diff: third_party/WebKit/Source/platform/animation/TimingFunctionTest.cpp

Issue 2775143002: Implement frames() timing function (Closed)
Patch Set: Created 3 years, 8 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 /* 1 /*
2 * Copyright (c) 2013, Google Inc. All rights reserved. 2 * Copyright (c) 2013, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 108
109 RefPtr<TimingFunction> stepTimingCustomMiddle = 109 RefPtr<TimingFunction> stepTimingCustomMiddle =
110 StepsTimingFunction::create(4, StepsTimingFunction::StepPosition::MIDDLE); 110 StepsTimingFunction::create(4, StepsTimingFunction::StepPosition::MIDDLE);
111 EXPECT_EQ("steps(4, middle)", stepTimingCustomMiddle->toString()); 111 EXPECT_EQ("steps(4, middle)", stepTimingCustomMiddle->toString());
112 112
113 RefPtr<TimingFunction> stepTimingCustomEnd = 113 RefPtr<TimingFunction> stepTimingCustomEnd =
114 StepsTimingFunction::create(5, StepsTimingFunction::StepPosition::END); 114 StepsTimingFunction::create(5, StepsTimingFunction::StepPosition::END);
115 EXPECT_EQ("steps(5)", stepTimingCustomEnd->toString()); 115 EXPECT_EQ("steps(5)", stepTimingCustomEnd->toString());
116 } 116 }
117 117
118 TEST_F(TimingFunctionTest, FrameToString) {
119 RefPtr<TimingFunction> frameTiming = FramesTimingFunction::create(3);
120 EXPECT_EQ("frames(3)", frameTiming->toString());
121 }
122
118 TEST_F(TimingFunctionTest, BaseOperatorEq) { 123 TEST_F(TimingFunctionTest, BaseOperatorEq) {
119 RefPtr<TimingFunction> linearTiming = LinearTimingFunction::shared(); 124 RefPtr<TimingFunction> linearTiming = LinearTimingFunction::shared();
120 RefPtr<TimingFunction> cubicTiming1 = CubicBezierTimingFunction::preset( 125 RefPtr<TimingFunction> cubicTiming1 = CubicBezierTimingFunction::preset(
121 CubicBezierTimingFunction::EaseType::EASE_IN); 126 CubicBezierTimingFunction::EaseType::EASE_IN);
122 RefPtr<TimingFunction> cubicTiming2 = 127 RefPtr<TimingFunction> cubicTiming2 =
123 CubicBezierTimingFunction::create(0.17, 0.67, 1, -1.73); 128 CubicBezierTimingFunction::create(0.17, 0.67, 1, -1.73);
124 RefPtr<TimingFunction> stepsTiming1 = 129 RefPtr<TimingFunction> stepsTiming1 =
125 StepsTimingFunction::preset(StepsTimingFunction::StepPosition::END); 130 StepsTimingFunction::preset(StepsTimingFunction::StepPosition::END);
126 RefPtr<TimingFunction> stepsTiming2 = 131 RefPtr<TimingFunction> stepsTiming2 =
127 StepsTimingFunction::create(5, StepsTimingFunction::StepPosition::START); 132 StepsTimingFunction::create(5, StepsTimingFunction::StepPosition::START);
133 RefPtr<TimingFunction> framesTiming = FramesTimingFunction::create(5);
128 134
129 Vector<std::pair<std::string, RefPtr<TimingFunction>>> v; 135 Vector<std::pair<std::string, RefPtr<TimingFunction>>> v;
130 v.push_back(std::make_pair("linearTiming", linearTiming)); 136 v.push_back(std::make_pair("linearTiming", linearTiming));
131 v.push_back(std::make_pair("cubicTiming1", cubicTiming1)); 137 v.push_back(std::make_pair("cubicTiming1", cubicTiming1));
132 v.push_back(std::make_pair("cubicTiming2", cubicTiming2)); 138 v.push_back(std::make_pair("cubicTiming2", cubicTiming2));
133 v.push_back(std::make_pair("stepsTiming1", stepsTiming1)); 139 v.push_back(std::make_pair("stepsTiming1", stepsTiming1));
134 v.push_back(std::make_pair("stepsTiming2", stepsTiming2)); 140 v.push_back(std::make_pair("stepsTiming2", stepsTiming2));
141 v.push_back(std::make_pair("framesTiming", framesTiming));
135 notEqualHelperLoop(v); 142 notEqualHelperLoop(v);
136 } 143 }
137 144
138 TEST_F(TimingFunctionTest, LinearOperatorEq) { 145 TEST_F(TimingFunctionTest, LinearOperatorEq) {
139 RefPtr<TimingFunction> linearTiming1 = LinearTimingFunction::shared(); 146 RefPtr<TimingFunction> linearTiming1 = LinearTimingFunction::shared();
140 RefPtr<TimingFunction> linearTiming2 = LinearTimingFunction::shared(); 147 RefPtr<TimingFunction> linearTiming2 = LinearTimingFunction::shared();
141 EXPECT_EQ(*linearTiming1, *linearTiming1); 148 EXPECT_EQ(*linearTiming1, *linearTiming1);
142 EXPECT_EQ(*linearTiming1, *linearTiming2); 149 EXPECT_EQ(*linearTiming1, *linearTiming2);
143 } 150 }
144 151
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 248
242 TEST_F(TimingFunctionTest, StepsOperatorEqPreset) { 249 TEST_F(TimingFunctionTest, StepsOperatorEqPreset) {
243 RefPtr<TimingFunction> stepsA = 250 RefPtr<TimingFunction> stepsA =
244 StepsTimingFunction::preset(StepsTimingFunction::StepPosition::START); 251 StepsTimingFunction::preset(StepsTimingFunction::StepPosition::START);
245 RefPtr<TimingFunction> stepsB = 252 RefPtr<TimingFunction> stepsB =
246 StepsTimingFunction::create(1, StepsTimingFunction::StepPosition::START); 253 StepsTimingFunction::create(1, StepsTimingFunction::StepPosition::START);
247 EXPECT_EQ(*stepsA, *stepsB); 254 EXPECT_EQ(*stepsA, *stepsB);
248 EXPECT_EQ(*stepsB, *stepsA); 255 EXPECT_EQ(*stepsB, *stepsA);
249 } 256 }
250 257
258 TEST_F(TimingFunctionTest, FramesOperatorEq) {
259 RefPtr<TimingFunction> framesTiming1 = FramesTimingFunction::create(5);
260 RefPtr<TimingFunction> framesTiming2 = FramesTimingFunction::create(7);
261
262 EXPECT_EQ(*FramesTimingFunction::create(5), *framesTiming1);
263 EXPECT_EQ(*FramesTimingFunction::create(7), *framesTiming2);
264
265 Vector<std::pair<std::string, RefPtr<TimingFunction>>> v;
266 v.push_back(std::make_pair("framesTiming1", framesTiming1));
267 v.push_back(std::make_pair("framesTiming2", framesTiming2));
268 notEqualHelperLoop(v);
269 }
270
251 TEST_F(TimingFunctionTest, LinearEvaluate) { 271 TEST_F(TimingFunctionTest, LinearEvaluate) {
252 RefPtr<TimingFunction> linearTiming = LinearTimingFunction::shared(); 272 RefPtr<TimingFunction> linearTiming = LinearTimingFunction::shared();
253 EXPECT_EQ(0.2, linearTiming->evaluate(0.2, 0)); 273 EXPECT_EQ(0.2, linearTiming->evaluate(0.2, 0));
254 EXPECT_EQ(0.6, linearTiming->evaluate(0.6, 0)); 274 EXPECT_EQ(0.6, linearTiming->evaluate(0.6, 0));
255 EXPECT_EQ(-0.2, linearTiming->evaluate(-0.2, 0)); 275 EXPECT_EQ(-0.2, linearTiming->evaluate(-0.2, 0));
256 EXPECT_EQ(1.6, linearTiming->evaluate(1.6, 0)); 276 EXPECT_EQ(1.6, linearTiming->evaluate(1.6, 0));
257 } 277 }
258 278
259 TEST_F(TimingFunctionTest, LinearRange) { 279 TEST_F(TimingFunctionTest, LinearRange) {
260 double start = 0; 280 double start = 0;
(...skipping 18 matching lines...) Expand all
279 EXPECT_NEAR(0, start, 0.01); 299 EXPECT_NEAR(0, start, 0.01);
280 EXPECT_NEAR(1, end, 0.01); 300 EXPECT_NEAR(1, end, 0.01);
281 301
282 start = -1; 302 start = -1;
283 end = 10; 303 end = 10;
284 steps->range(&start, &end); 304 steps->range(&start, &end);
285 EXPECT_NEAR(0, start, 0.01); 305 EXPECT_NEAR(0, start, 0.01);
286 EXPECT_NEAR(1, end, 0.01); 306 EXPECT_NEAR(1, end, 0.01);
287 } 307 }
288 308
309 TEST_F(TimingFunctionTest, FrameRange) {
310 double start = 0;
311 double end = 1;
312 RefPtr<TimingFunction> frames = FramesTimingFunction::create(4);
313 frames->range(&start, &end);
314 EXPECT_NEAR(0, start, 0.01);
315 EXPECT_NEAR(1, end, 0.01);
316
317 start = -1;
318 end = 10;
319 frames->range(&start, &end);
320 EXPECT_NEAR(0, start, 0.01);
321 EXPECT_NEAR(1, end, 0.01);
322 }
323
289 TEST_F(TimingFunctionTest, CubicRange) { 324 TEST_F(TimingFunctionTest, CubicRange) {
290 double start = 0; 325 double start = 0;
291 double end = 1; 326 double end = 1;
292 327
293 RefPtr<TimingFunction> cubicEaseTiming = CubicBezierTimingFunction::preset( 328 RefPtr<TimingFunction> cubicEaseTiming = CubicBezierTimingFunction::preset(
294 CubicBezierTimingFunction::EaseType::EASE); 329 CubicBezierTimingFunction::EaseType::EASE);
295 start = 0; 330 start = 0;
296 end = 1; 331 end = 1;
297 cubicEaseTiming->range(&start, &end); 332 cubicEaseTiming->range(&start, &end);
298 EXPECT_NEAR(0, start, 0.01); 333 EXPECT_NEAR(0, start, 0.01);
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 EXPECT_EQ(0.25, stepsTimingCustomEnd->evaluate(0.25, 0)); 495 EXPECT_EQ(0.25, stepsTimingCustomEnd->evaluate(0.25, 0));
461 EXPECT_EQ(0.25, stepsTimingCustomEnd->evaluate(0.49, 0)); 496 EXPECT_EQ(0.25, stepsTimingCustomEnd->evaluate(0.49, 0));
462 EXPECT_EQ(0.50, stepsTimingCustomEnd->evaluate(0.50, 0)); 497 EXPECT_EQ(0.50, stepsTimingCustomEnd->evaluate(0.50, 0));
463 EXPECT_EQ(0.50, stepsTimingCustomEnd->evaluate(0.74, 0)); 498 EXPECT_EQ(0.50, stepsTimingCustomEnd->evaluate(0.74, 0));
464 EXPECT_EQ(0.75, stepsTimingCustomEnd->evaluate(0.75, 0)); 499 EXPECT_EQ(0.75, stepsTimingCustomEnd->evaluate(0.75, 0));
465 EXPECT_EQ(0.75, stepsTimingCustomEnd->evaluate(0.99, 0)); 500 EXPECT_EQ(0.75, stepsTimingCustomEnd->evaluate(0.99, 0));
466 EXPECT_EQ(1.00, stepsTimingCustomEnd->evaluate(1.00, 0)); 501 EXPECT_EQ(1.00, stepsTimingCustomEnd->evaluate(1.00, 0));
467 EXPECT_EQ(1.00, stepsTimingCustomEnd->evaluate(2.00, 0)); 502 EXPECT_EQ(1.00, stepsTimingCustomEnd->evaluate(2.00, 0));
468 } 503 }
469 504
505 TEST_F(TimingFunctionTest, FramesEvaluate) {
506 RefPtr<TimingFunction> framesTiming = FramesTimingFunction::create(5);
507 EXPECT_EQ(0.00, framesTiming->evaluate(-2.00, 0));
508 EXPECT_EQ(0.00, framesTiming->evaluate(0.00, 0));
509 EXPECT_EQ(0.00, framesTiming->evaluate(0.19, 0));
510 EXPECT_EQ(0.25, framesTiming->evaluate(0.20, 0));
511 EXPECT_EQ(0.25, framesTiming->evaluate(0.39, 0));
512 EXPECT_EQ(0.50, framesTiming->evaluate(0.40, 0));
513 EXPECT_EQ(0.50, framesTiming->evaluate(0.59, 0));
514 EXPECT_EQ(0.75, framesTiming->evaluate(0.60, 0));
515 EXPECT_EQ(0.75, framesTiming->evaluate(0.79, 0));
516 EXPECT_EQ(1.00, framesTiming->evaluate(0.80, 0));
517 EXPECT_EQ(1.00, framesTiming->evaluate(1.00, 0));
518 EXPECT_EQ(1.00, framesTiming->evaluate(3.00, 0));
519 }
520
470 } // namespace 521 } // namespace
471 522
472 } // namespace blink 523 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698