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

Unified 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 side-by-side diff with in-line comments
Download patch
Index: cc/animation/timing_function_unittest.cc
diff --git a/cc/animation/timing_function_unittest.cc b/cc/animation/timing_function_unittest.cc
index 4be225fd6b929f78c1db378b963cd65f3a6e6822..14b7c4c2a0d1c5c6d690eed041e85214d3881a86 100644
--- a/cc/animation/timing_function_unittest.cc
+++ b/cc/animation/timing_function_unittest.cc
@@ -137,5 +137,79 @@ TEST(TimingFunctionTest, CubicBezierTimingFunctionRange) {
EXPECT_EQ(1.f, max);
}
+TEST(TimingFunctionTest, StepsTimingFunction) {
+ scoped_ptr<StepsTimingFunction> function =
+ StepsTimingFunction::Create(36, false);
+
+ double epsilon = 0.00015;
+
+ 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,
+ EXPECT_NEAR(function->GetValue(0.05), 1.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.1), 3.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.15), 5.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.2), 7.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.25), 9.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.3), 10.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.35), 12.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.4), 14.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.45), 16.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.5), 18.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.6), 21.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.65), 23.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.7), 25.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.75), 27.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.8), 28.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.85), 30.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.9), 32.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.95), 34.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(1), 1, epsilon);
+}
+
+TEST(TimingFunctionTest, StepsTimingFunctionStepsAtStart) {
+ return;
+ scoped_ptr<StepsTimingFunction> function =
+ StepsTimingFunction::Create(36, true);
+
+ double epsilon = 0.00015;
+
+ EXPECT_NEAR(function->GetValue(0), 1.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.05), 2.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.1), 4.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.15), 6.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.2), 8.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.25), 10.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.3), 11.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.35), 13.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.4), 15.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.45), 17.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.5), 19.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.6), 22.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.65), 24.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.7), 26.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.75), 28.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.8), 29.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.85), 31.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.9), 33.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(0.95), 35.f/36.f, epsilon);
+ EXPECT_NEAR(function->GetValue(1), 1, epsilon);
+}
+
+TEST(TimingFunctionTest, StepsTimingFunctionRange) {
+ double epsilon = 0.00015;
+ float min, max;
+
+ scoped_ptr<StepsTimingFunction> function =
+ StepsTimingFunction::Create(36, false);
+
+ function->Range(&min, &max);
+ EXPECT_EQ(0.f, min);
+ EXPECT_EQ(1.f, max);
+
+ function = StepsTimingFunction::Create(36, true);
+ function->Range(&min, &max);
+ EXPECT_NEAR(min, 1.f/36.f, epsilon);
+ EXPECT_EQ(1.f, max);
+}
+
} // namespace
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698