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

Unified Diff: Source/core/animation/InterpolableValueTest.cpp

Issue 1215563002: Implement left property animation on InvalidatableStyleInterpolation (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Make Windows not crash Created 5 years, 5 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
« no previous file with comments | « Source/core/animation/InterpolableValue.cpp ('k') | Source/core/animation/InterpolationType.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/animation/InterpolableValueTest.cpp
diff --git a/Source/core/animation/InterpolableValueTest.cpp b/Source/core/animation/InterpolableValueTest.cpp
index 3765e20ff2b9b67d02ac34c9f0c23114a0347a0c..de4b6d40c40eed2211f80abd83ace8c1c560c625 100644
--- a/Source/core/animation/InterpolableValueTest.cpp
+++ b/Source/core/animation/InterpolableValueTest.cpp
@@ -55,64 +55,17 @@ protected:
return toInterpolableBool(interpolationValue(*i.get()))->value();
}
+ void scaleAndAdd(InterpolableValue& base, double scale, const InterpolableValue& add)
+ {
+ base.scaleAndAdd(scale, add);
+ }
+
PassRefPtrWillBeRawPtr<Interpolation> interpolateLists(PassOwnPtrWillBeRawPtr<InterpolableList> listA, PassOwnPtrWillBeRawPtr<InterpolableList> listB, double progress)
{
RefPtrWillBeRawPtr<Interpolation> i = SampleInterpolation::create(listA, listB);
i->interpolate(0, progress);
return i;
}
-
- double addNumbers(double a, double b)
- {
- OwnPtrWillBeRawPtr<InterpolableValue> numA = InterpolableNumber::create(a);
- OwnPtrWillBeRawPtr<InterpolableValue> numB = InterpolableNumber::create(b);
-
- OwnPtrWillBeRawPtr<InterpolableValue> resultNumber = InterpolableNumber::create(0);
-
- numA->add(*numB, *resultNumber);
-
- return toInterpolableNumber(resultNumber.get())->value();
- }
-
- bool addBools(bool a, bool b)
- {
- OwnPtrWillBeRawPtr<InterpolableValue> boolA = InterpolableBool::create(a);
- OwnPtrWillBeRawPtr<InterpolableValue> boolB = InterpolableBool::create(b);
-
- OwnPtrWillBeRawPtr<InterpolableValue> resultBool = InterpolableBool::create(false);
-
- boolA->add(*boolB, *resultBool);
-
- return toInterpolableBool(resultBool.get())->value();
- }
-
- PassOwnPtrWillBeRawPtr<InterpolableList> addLists(PassOwnPtrWillBeRawPtr<InterpolableValue> listA, PassOwnPtrWillBeRawPtr<InterpolableValue> listB)
- {
- OwnPtrWillBeRawPtr<InterpolableList> result = InterpolableList::create(toInterpolableList(*listA));
-
- listA->add(*listB, *result);
-
- return result.release();
- }
-
- double multiplyNumber(double scalar, double n)
- {
- OwnPtrWillBeRawPtr<InterpolableValue> num = InterpolableNumber::create(n);
- OwnPtrWillBeRawPtr<InterpolableValue> result = InterpolableNumber::create(0);
-
- num->multiply(scalar, *result);
-
- return toInterpolableNumber(result.get())->value();
- }
-
- PassOwnPtrWillBeRawPtr<InterpolableList> multiplyList(double scalar, PassOwnPtrWillBeRawPtr<InterpolableValue> list)
- {
- OwnPtrWillBeRawPtr<InterpolableList> result = InterpolableList::create(toInterpolableList(*list));
-
- list->multiply(scalar, *result);
-
- return result.release();
- }
};
TEST_F(AnimationInterpolableValueTest, InterpolateNumbers)
@@ -177,102 +130,35 @@ TEST_F(AnimationInterpolableValueTest, NestedList)
EXPECT_TRUE(toInterpolableBool(outList->get(2))->value());
}
-TEST_F(AnimationInterpolableValueTest, AddNumbers)
+TEST_F(AnimationInterpolableValueTest, ScaleAndAddNumbers)
{
- EXPECT_FLOAT_EQ(42, addNumbers(20, 22));
- EXPECT_FLOAT_EQ(42, addNumbers(22, 20));
- EXPECT_FLOAT_EQ(50, addNumbers(0, 50));
- EXPECT_FLOAT_EQ(50, addNumbers(50, 0));
- EXPECT_FLOAT_EQ(32, addNumbers(42, -10));
- EXPECT_FLOAT_EQ(32, addNumbers(-10, 42));
- EXPECT_FLOAT_EQ(-32, addNumbers(-42, 10));
- EXPECT_FLOAT_EQ(-32, addNumbers(10, -42));
-}
+ OwnPtrWillBeRawPtr<InterpolableNumber> base = InterpolableNumber::create(10);
+ scaleAndAdd(*base, 2, *InterpolableNumber::create(1));
+ EXPECT_FLOAT_EQ(21, base->value());
-TEST_F(AnimationInterpolableValueTest, AddBools)
-{
- EXPECT_FALSE(addBools(false, false));
- EXPECT_TRUE(addBools(true, false));
- EXPECT_TRUE(addBools(false, true));
- EXPECT_TRUE(addBools(true, true));
-}
-
-TEST_F(AnimationInterpolableValueTest, AddLists)
-{
- OwnPtrWillBeRawPtr<InterpolableList> listA = InterpolableList::create(3);
- listA->set(0, InterpolableNumber::create(31));
- listA->set(1, InterpolableNumber::create(-20));
- listA->set(2, InterpolableNumber::create(42));
-
- OwnPtrWillBeRawPtr<InterpolableList> listB = InterpolableList::create(3);
- listB->set(0, InterpolableNumber::create(20));
- listB->set(1, InterpolableNumber::create(43));
- listB->set(2, InterpolableNumber::create(-60));
-
- OwnPtrWillBeRawPtr<InterpolableList> result = addLists(listA.release(), listB.release());
- EXPECT_FLOAT_EQ(51, toInterpolableNumber(result->get(0))->value());
- EXPECT_FLOAT_EQ(23, toInterpolableNumber(result->get(1))->value());
- EXPECT_FLOAT_EQ(-18, toInterpolableNumber(result->get(2))->value());
-}
-
-TEST_F(AnimationInterpolableValueTest, AddNestedLists)
-{
- OwnPtrWillBeRawPtr<InterpolableList> listA = InterpolableList::create(3);
- listA->set(0, InterpolableNumber::create(19));
- OwnPtrWillBeRawPtr<InterpolableList> subListA = InterpolableList::create(1);
- subListA->set(0, InterpolableNumber::create(67));
- listA->set(1, subListA.release());
- listA->set(2, InterpolableBool::create(false));
+ base = InterpolableNumber::create(10);
+ scaleAndAdd(*base, 0, *InterpolableNumber::create(5));
+ EXPECT_FLOAT_EQ(5, base->value());
- OwnPtrWillBeRawPtr<InterpolableList> listB = InterpolableList::create(3);
- listB->set(0, InterpolableNumber::create(21));
- OwnPtrWillBeRawPtr<InterpolableList> subListB = InterpolableList::create(1);
- subListB->set(0, InterpolableNumber::create(31));
- listB->set(1, subListB.release());
- listB->set(2, InterpolableBool::create(true));
-
- OwnPtrWillBeRawPtr<InterpolableList> result = addLists(listA.release(), listB.release());
- EXPECT_FLOAT_EQ(40, toInterpolableNumber(result->get(0))->value());
- EXPECT_FLOAT_EQ(98, toInterpolableNumber(toInterpolableList(result->get(1))->get(0))->value());
- EXPECT_TRUE(toInterpolableBool(result->get(2))->value());
+ base = InterpolableNumber::create(10);
+ scaleAndAdd(*base, -1, *InterpolableNumber::create(8));
+ EXPECT_FLOAT_EQ(-2, base->value());
}
-TEST_F(AnimationInterpolableValueTest, NumberScalarMultiplication)
+TEST_F(AnimationInterpolableValueTest, ScaleAndAddLists)
{
- EXPECT_FLOAT_EQ(42, multiplyNumber(6, 7));
- EXPECT_FLOAT_EQ(-20, multiplyNumber(-2, 10));
- EXPECT_FLOAT_EQ(-42, multiplyNumber(21, -2));
- EXPECT_FLOAT_EQ(20, multiplyNumber(-4, -5));
-
- EXPECT_FLOAT_EQ(0, multiplyNumber(0, 10));
- EXPECT_FLOAT_EQ(0, multiplyNumber(10, 0));
-}
-
-TEST_F(AnimationInterpolableValueTest, ListScalarMultiplication)
-{
- OwnPtrWillBeRawPtr<InterpolableList> listA = InterpolableList::create(3);
- listA->set(0, InterpolableNumber::create(5));
- OwnPtrWillBeRawPtr<InterpolableList> subListA = InterpolableList::create(2);
- subListA->set(0, InterpolableNumber::create(4));
- subListA->set(1, InterpolableNumber::create(7));
- listA->set(1, subListA.release());
- listA->set(2, InterpolableNumber::create(3));
-
- OwnPtrWillBeRawPtr<InterpolableList> resultA = multiplyList(6, listA.release());
- EXPECT_FLOAT_EQ(30, toInterpolableNumber(resultA->get(0))->value());
- EXPECT_FLOAT_EQ(24, toInterpolableNumber(toInterpolableList(resultA->get(1))->get(0))->value());
- EXPECT_FLOAT_EQ(42, toInterpolableNumber(toInterpolableList(resultA->get(1))->get(1))->value());
- EXPECT_FLOAT_EQ(18, toInterpolableNumber(resultA->get(2))->value());
-
- OwnPtrWillBeRawPtr<InterpolableList> listB = InterpolableList::create(3);
- listB->set(0, InterpolableNumber::create(8));
- listB->set(1, InterpolableNumber::create(-10));
- listB->set(2, InterpolableNumber::create(9));
-
- OwnPtrWillBeRawPtr<InterpolableList> resultB = multiplyList(0, listB.release());
- EXPECT_FLOAT_EQ(0, toInterpolableNumber(resultB->get(0))->value());
- EXPECT_FLOAT_EQ(0, toInterpolableNumber(resultB->get(1))->value());
- EXPECT_FLOAT_EQ(0, toInterpolableNumber(resultB->get(2))->value());
+ OwnPtrWillBeRawPtr<InterpolableList> baseList = InterpolableList::create(3);
+ baseList->set(0, InterpolableNumber::create(5));
+ baseList->set(1, InterpolableNumber::create(10));
+ baseList->set(2, InterpolableNumber::create(15));
+ OwnPtrWillBeRawPtr<InterpolableList> addList = InterpolableList::create(3);
+ addList->set(0, InterpolableNumber::create(1));
+ addList->set(1, InterpolableNumber::create(2));
+ addList->set(2, InterpolableNumber::create(3));
+ scaleAndAdd(*baseList, 2, *addList);
+ EXPECT_FLOAT_EQ(11, toInterpolableNumber(baseList->get(0))->value());
+ EXPECT_FLOAT_EQ(22, toInterpolableNumber(baseList->get(1))->value());
+ EXPECT_FLOAT_EQ(33, toInterpolableNumber(baseList->get(2))->value());
}
}
« no previous file with comments | « Source/core/animation/InterpolableValue.cpp ('k') | Source/core/animation/InterpolationType.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698