summaryrefslogtreecommitdiffstats
path: root/tests/auto/animation
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2017-03-03 19:56:02 +0000
committerSean Harmer <sean.harmer@kdab.com>2017-03-06 17:20:04 +0000
commite76fabc8f1349d0eddf725453fc188d2ae0bf77e (patch)
treef2b162226f1cdb43d56ff356219285b383d59711 /tests/auto/animation
parent983f66c0a043e0f94b699c5119b7dc2ac91194aa (diff)
Extend animation utils test to cover evaluationDataForAnimator()
Change-Id: I537185cb10499562b7d578cd83ff28e2faba78b4 Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'tests/auto/animation')
-rw-r--r--tests/auto/animation/animationutils/tst_animationutils.cpp99
1 files changed, 99 insertions, 0 deletions
diff --git a/tests/auto/animation/animationutils/tst_animationutils.cpp b/tests/auto/animation/animationutils/tst_animationutils.cpp
index dd9734edf..1f91aedf1 100644
--- a/tests/auto/animation/animationutils/tst_animationutils.cpp
+++ b/tests/auto/animation/animationutils/tst_animationutils.cpp
@@ -53,6 +53,7 @@ Q_DECLARE_METATYPE(QVector<Qt3DCore::QPropertyUpdatedChangePtr>)
Q_DECLARE_METATYPE(Channel)
Q_DECLARE_METATYPE(AnimatorEvaluationData)
Q_DECLARE_METATYPE(ClipEvaluationData)
+Q_DECLARE_METATYPE(ClipAnimator *)
bool fuzzyCompare(float x1, float x2)
{
@@ -1110,6 +1111,104 @@ private Q_SLOTS:
// Cleanup
delete handler;
}
+
+ void checkEvaluationDataForAnimator_data()
+ {
+ QTest::addColumn<Handler *>("handler");
+ QTest::addColumn<ClipAnimator *>("animator");
+ QTest::addColumn<qint64>("globalTimeNS");
+ QTest::addColumn<AnimatorEvaluationData>("expectedAnimatorData");
+
+ Handler *handler;
+ ClipAnimator *animator;
+ qint64 globalTimeNS;
+ AnimatorEvaluationData expectedAnimatorData;
+
+ {
+ handler = new Handler();
+ const qint64 globalStartTimeNS = 0;
+ const int loops = 1;
+ animator = createClipAnimator(handler, globalStartTimeNS, loops);
+ globalTimeNS = 0;
+
+ expectedAnimatorData.loopCount = loops;
+ expectedAnimatorData.playbackRate = 1.0; // hard-wired for now
+ expectedAnimatorData.startTime = 0.0;
+ expectedAnimatorData.globalTime = 0.0;
+
+ QTest::newRow("globalStartTime = 0, globalTime = 0, loops = 1")
+ << handler << animator << globalTimeNS << expectedAnimatorData;
+ }
+
+ {
+ handler = new Handler();
+ const qint64 globalStartTimeNS = 0;
+ const int loops = 5;
+ animator = createClipAnimator(handler, globalStartTimeNS, loops);
+ globalTimeNS = 0;
+
+ expectedAnimatorData.loopCount = loops;
+ expectedAnimatorData.playbackRate = 1.0; // hard-wired for now
+ expectedAnimatorData.startTime = 0.0;
+ expectedAnimatorData.globalTime = 0.0;
+
+ QTest::newRow("globalStartTime = 0, globalTime = 0, loops = 5")
+ << handler << animator << globalTimeNS << expectedAnimatorData;
+ }
+
+ {
+ handler = new Handler();
+ const qint64 globalStartTimeNS = 0;
+ const int loops = 1;
+ animator = createClipAnimator(handler, globalStartTimeNS, loops);
+ globalTimeNS = 5000000000;
+
+ expectedAnimatorData.loopCount = loops;
+ expectedAnimatorData.playbackRate = 1.0; // hard-wired for now
+ expectedAnimatorData.startTime = 0.0;
+ expectedAnimatorData.globalTime = 5.0;
+
+ QTest::newRow("globalStartTime = 0, globalTime = 5, loops = 1")
+ << handler << animator << globalTimeNS << expectedAnimatorData;
+ }
+
+ {
+ handler = new Handler();
+ const qint64 globalStartTimeNS = 3000000000;
+ const int loops = 1;
+ animator = createClipAnimator(handler, globalStartTimeNS, loops);
+ globalTimeNS = 5000000000;
+
+ expectedAnimatorData.loopCount = loops;
+ expectedAnimatorData.playbackRate = 1.0; // hard-wired for now
+ expectedAnimatorData.startTime = 3.0;
+ expectedAnimatorData.globalTime = 5.0;
+
+ QTest::newRow("globalStartTime = 3, globalTime = 5, loops = 1")
+ << handler << animator << globalTimeNS << expectedAnimatorData;
+ }
+ }
+
+ void checkEvaluationDataForAnimator()
+ {
+ // GIVEN
+ QFETCH(Handler *, handler);
+ QFETCH(ClipAnimator *, animator);
+ QFETCH(qint64, globalTimeNS);
+ QFETCH(AnimatorEvaluationData, expectedAnimatorData);
+
+ // WHEN
+ AnimatorEvaluationData actualAnimatorData = evaluationDataForAnimator(animator, globalTimeNS);
+
+ // THEN
+ QCOMPARE(actualAnimatorData.loopCount, expectedAnimatorData.loopCount);
+ QVERIFY(fuzzyCompare(actualAnimatorData.playbackRate, expectedAnimatorData.playbackRate) == true);
+ QVERIFY(fuzzyCompare(actualAnimatorData.startTime, expectedAnimatorData.startTime) == true);
+ QVERIFY(fuzzyCompare(actualAnimatorData.globalTime, expectedAnimatorData.globalTime) == true);
+
+ // Cleanup
+ delete handler;
+ }
};
QTEST_MAIN(tst_AnimationUtils)