#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include "../../../shared/util.h"
+#include <private/qabstractanimation_p.h>
class tst_qsgage : public QObject
{
tst_qsgage::tst_qsgage()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgage::test_kill()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/kill.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/jump.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/onceoff.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/sustained.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
+ //TODO: Ensure some particles have lived to 0.4s point despite unified timer
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
#include <qmath.h>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgangleddirection : public QObject
{
tst_qsgangleddirection::tst_qsgangleddirection()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgangleddirection::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgcumulativedirection : public QObject
{
tst_qsgcumulativedirection::tst_qsgcumulativedirection()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgcumulativedirection::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgcustomaffector : public QObject
{
tst_qsgcustomaffector::tst_qsgcustomaffector()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgcustomaffector::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 100.f);
QCOMPARE(d->endSize, 100.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgcustomparticle : public QObject
{
tst_qsgcustomparticle::tst_qsgcustomparticle()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgcustomparticle::test_basic()
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QVERIFY(view);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
bool oneNonZero = false;
QCOMPARE(system->groupData[0]->size(), 500);
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
QVERIFY(d->r >= 0.0 && d->r <= 1.0);
if (d->r != 0.0 )
oneNonZero = true;
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgellipseextruder : public QObject
{
tst_qsgellipseextruder::tst_qsgellipseextruder()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
bool tst_qsgellipseextruder::inCircle(qreal x, qreal y, qreal r, bool borderOnly)
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
//Filled
QCOMPARE(system->groupData[0]->size(), 500);
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
//Just border
QCOMPARE(system->groupData[1]->size(), 500);
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgfriction : public QObject
{
tst_qsgfriction::tst_qsgfriction()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgfriction::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
//Default is just slowed a little
QCOMPARE(system->groupData[0]->size(), 500);
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
//Nondefault comes to a complete stop within the first half of its life
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsggravity : public QObject
{
tst_qsggravity::tst_qsggravity()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsggravity::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
const double CONV_FACTOR = 0.017453292519943295;//Degrees to radians
tst_qsgimageparticle::tst_qsgimageparticle()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgimageparticle::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
QCOMPARE(d->color.r, (uchar)255);
QCOMPARE(d->color.g, (uchar)255);
QCOMPARE(d->color.b, (uchar)255);
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/colored.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
QCOMPARE(d->color.r, (uchar)003);
QCOMPARE(d->color.g, (uchar)002);
QCOMPARE(d->color.b, (uchar)001);
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/deformed.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
QCOMPARE(d->color.r, (uchar)255);
QCOMPARE(d->color.g, (uchar)255);
QCOMPARE(d->color.b, (uchar)255);
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/tabled.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
QCOMPARE(d->color.r, (uchar)255);
QCOMPARE(d->color.g, (uchar)255);
QCOMPARE(d->color.b, (uchar)255);
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/sprite.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
QCOMPARE(d->color.r, (uchar)255);
QCOMPARE(d->color.g, (uchar)255);
QCOMPARE(d->color.b, (uchar)255);
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
#include <private/qsgimage_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgitemparticle : public QObject
{
tst_qsgitemparticle::tst_qsgitemparticle()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgitemparticle::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
if (d->t > ((qreal)system->timeInt/1000.0) - 0.05)//Delegates appear between frames, may miss the first couple
continue;
- if (d->t < ((qreal)system->timeInt/1000.0) - 0.5)//Delegates cleared on death
+ if (d->t < ((qreal)system->timeInt/1000.0) - 0.45)//Delegates cleared on death
continue;
QVERIFY(d->delegate);
QVERIFY(qobject_cast<QSGImage*>(d->delegate));
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsglineextruder : public QObject
{
tst_qsglineextruder::tst_qsglineextruder()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsglineextruder::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
QCOMPARE(system->groupData[1]->size(), 500);
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgmaskextruder : public QObject
{
tst_qsgmaskextruder::tst_qsgmaskextruder()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgmaskextruder::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgparticlegroup : public QObject
{
tst_qsgparticlegroup::tst_qsgparticlegroup()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgparticlegroup::test_instantTransition()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
//A frame or two worth of particles will be missed, the transition doesn't take effect on the frame it's spawned (QTBUG-21781)
QVERIFY(system->groupData[0]->size() <= 500 && system->groupData[0]->size() >= 450);
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgparticlesystem : public QObject
{
tst_qsgparticlesystem::tst_qsgparticlesystem()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgparticlesystem::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
int stillAlive = 0;
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
QVERIFY(extremelyFuzzyCompare(stillAlive, 500, 5));//Small simulation variance is permissible.
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgpointattractor : public QObject
{
tst_qsgpointattractor::tst_qsgpointattractor()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgpointattractor::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgpointdirection : public QObject
{
tst_qsgpointdirection::tst_qsgpointdirection()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgpointdirection::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgrectangleextruder : public QObject
{
tst_qsgrectangleextruder::tst_qsgrectangleextruder()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgrectangleextruder::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
QCOMPARE(system->groupData[1]->size(), 500);
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgtargetdirection : public QObject
{
tst_qsgtargetdirection::tst_qsgtargetdirection()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgtargetdirection::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgtrailemitter : public QObject
{
tst_qsgtrailemitter::tst_qsgtrailemitter()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgtrailemitter::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
foreach (QSGParticleData *d, system->groupData[0]->data) {
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
QCOMPARE(system->groupData[1]->size(), 500);
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgturbulence : public QObject
{
tst_qsgturbulence::tst_qsgturbulence()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgturbulence::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
//Note that the noise image built-in provides the 'randomness', so this test should be stable so long as it and the size
//of the Turbulence item remain the same
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
}
}
#include <QtTest/QtTest>
#include "../shared/particlestestsshared.h"
#include <private/qsgparticlesystem_p.h>
+#include <private/qabstractanimation_p.h>
class tst_qsgwander : public QObject
{
tst_qsgwander::tst_qsgwander()
{
+ QUnifiedTimer::instance()->setConsistentTiming(true);
}
void tst_qsgwander::test_basic()
{
QSGView* view = createView(QCoreApplication::applicationDirPath() + "/data/basic.qml", 600);
QSGParticleSystem* system = view->rootObject()->findChild<QSGParticleSystem*>("system");
+ ensureAnimTime(600, system->m_animation);
QCOMPARE(system->groupData[0]->size(), 500);
//Since Wander is random perturbations, the compromise between stability and actual testing is to hope that one of
QCOMPARE(d->lifeSpan, 0.5f);
QCOMPARE(d->size, 32.f);
QCOMPARE(d->endSize, 32.f);
- QVERIFY(d->t <= ((qreal)system->timeInt/1000.0));
+ QVERIFY(myFuzzyLEQ(d->t, ((qreal)system->timeInt/1000.0)));
if (d->vx != 0.0f)
vxChanged = true;
if (d->vy != 0.0f)
#define PARTICLES_TESTS_SHARED
#include <QSGView>
#include <QtTest>
+#include <QAbstractAnimation>
const qreal EPSILON = 0.0001;
bool extremelyFuzzyCompare(qreal a, qreal b, qreal e)//For cases which can have larger variances
return canvas;
}
+void ensureAnimTime(int requiredTime, QAbstractAnimation* anim)//With consistentTiming, who knows how long an animation really takes...
+{
+ while (anim->currentTime() < requiredTime)
+ QTest::qWait(100);
+}
+
#endif