tst_domain.cpp
743 lines
| 19.6 KiB
| text/x-c
|
CppLexer
Michal Klocek
|
r774 | /**************************************************************************** | ||
** | ||||
** Copyright (C) 2012 Digia Plc | ||||
** All rights reserved. | ||||
** For any questions to Digia, please use contact form at http://qt.digia.com | ||||
** | ||||
** This file is part of the Qt Commercial Charts Add-on. | ||||
** | ||||
** $QT_BEGIN_LICENSE$ | ||||
** Licensees holding valid Qt Commercial licenses may use this file in | ||||
** accordance with the Qt Commercial License Agreement provided with the | ||||
** Software or, alternatively, in accordance with the terms contained in | ||||
** a written agreement between you and Digia. | ||||
** | ||||
** If you have questions regarding the use of this file, please use | ||||
** contact form at http://qt.digia.com | ||||
** $QT_END_LICENSE$ | ||||
** | ||||
****************************************************************************/ | ||||
Michal Klocek
|
r1977 | #ifndef BUILD_PRIVATE_UNIT_TESTS | ||
#include <QtTest/QtTest> | ||||
class tst_Domain: public QObject { | ||||
Q_OBJECT | ||||
private Q_SLOTS: | ||||
void skip(); | ||||
}; | ||||
void tst_Domain::skip() | ||||
{ | ||||
QSKIP("This test requires the debug version of library", SkipAll); | ||||
} | ||||
QTEST_MAIN(tst_Domain) | ||||
#include "tst_domain.moc" | ||||
#else | ||||
Michal Klocek
|
r774 | |||
Michal Klocek
|
r439 | #include <QtTest/QtTest> | ||
Marek Rosa
|
r2275 | #include <private/xydomain_p.h> | ||
Michal Klocek
|
r1698 | #include <private/qabstractaxis_p.h> | ||
Tero Ahola
|
r1109 | #include <tst_definitions.h> | ||
Michal Klocek
|
r439 | |||
QTCOMMERCIALCHART_USE_NAMESPACE | ||||
Marek Rosa
|
r2275 | Q_DECLARE_METATYPE(XYDomain*) | ||
Michal Klocek
|
r439 | Q_DECLARE_METATYPE(QSizeF) | ||
Michal Klocek
|
r2273 | Q_DECLARE_METATYPE(QMargins) | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | |||
class AxisMock: public QAbstractAxisPrivate | ||||
{ | ||||
Q_OBJECT | ||||
public: | ||||
Michal Klocek
|
r2273 | AxisMock(Qt::Alignment alignment):QAbstractAxisPrivate(0){ setAlignment(alignment);}; | ||
void initializeGraphics(QGraphicsItem* item) | ||||
Michal Klocek
|
r1726 | { | ||
Michal Klocek
|
r2273 | Q_UNUSED(item); | ||
Michal Klocek
|
r1726 | }; | ||
Marek Rosa
|
r2275 | |||
void initializeDomain(AbstractDomain* domain) | ||||
Michal Klocek
|
r1726 | { | ||
Q_UNUSED(domain); | ||||
}; | ||||
void setMin(const QVariant &min) | ||||
{ | ||||
Q_UNUSED(min); | ||||
} | ||||
Michal Klocek
|
r1698 | qreal min() { return m_min;} | ||
Michal Klocek
|
r1726 | void setMax(const QVariant &max) | ||
{ | ||||
Q_UNUSED(max); | ||||
} | ||||
Michal Klocek
|
r1698 | qreal max() { return m_max; } | ||
Michal Klocek
|
r1726 | void setRange(const QVariant &min, const QVariant &max) | ||
{ | ||||
Q_UNUSED(min); | ||||
Q_UNUSED(max); | ||||
}; | ||||
Michal Klocek
|
r2273 | void setRange(qreal min, qreal max) | ||
{ | ||||
m_min=min; | ||||
m_max=max; | ||||
emit rangeChanged(min,max); | ||||
}; | ||||
Michal Klocek
|
r1726 | int count () const { return m_count; } | ||
Michal Klocek
|
r1698 | |||
void handleDomainUpdated(){}; | ||||
public: | ||||
Michal Klocek
|
r1726 | int m_count; | ||
Michal Klocek
|
r1698 | qreal m_min; | ||
qreal m_max; | ||||
}; | ||||
Michal Klocek
|
r773 | class tst_Domain: public QObject | ||
Michal Klocek
|
r439 | { | ||
Michal Klocek
|
r773 | Q_OBJECT | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r774 | public Q_SLOTS: | ||
Michal Klocek
|
r439 | void initTestCase(); | ||
void cleanupTestCase(); | ||||
void init(); | ||||
void cleanup(); | ||||
Michal Klocek
|
r774 | private Q_SLOTS: | ||
Michal Klocek
|
r439 | void domain(); | ||
Michal Klocek
|
r2273 | void handleHorizontalAxisRangeChanged_data(); | ||
void handleHorizontalAxisRangeChanged(); | ||||
void handleVerticalAxisRangeChanged_data(); | ||||
void handleVerticalAxisRangeChanged(); | ||||
Michal Klocek
|
r439 | void isEmpty_data(); | ||
void isEmpty(); | ||||
void maxX_data(); | ||||
void maxX(); | ||||
void maxY_data(); | ||||
void maxY(); | ||||
void minX_data(); | ||||
void minX(); | ||||
void minY_data(); | ||||
void minY(); | ||||
void operatorEquals_data(); | ||||
void operatorEquals(); | ||||
void setRange_data(); | ||||
void setRange(); | ||||
void setRangeX_data(); | ||||
void setRangeX(); | ||||
void setRangeY_data(); | ||||
void setRangeY(); | ||||
void spanX_data(); | ||||
void spanX(); | ||||
void spanY_data(); | ||||
void spanY(); | ||||
Michal Klocek
|
r2273 | void zoomIn_data(); | ||
void zoomIn(); | ||||
void zoomOut_data(); | ||||
void zoomOut(); | ||||
Michal Klocek
|
r773 | void move_data(); | ||
void move(); | ||||
Michal Klocek
|
r439 | }; | ||
void tst_Domain::initTestCase() | ||||
{ | ||||
} | ||||
void tst_Domain::cleanupTestCase() | ||||
{ | ||||
} | ||||
void tst_Domain::init() | ||||
{ | ||||
} | ||||
void tst_Domain::cleanup() | ||||
{ | ||||
} | ||||
void tst_Domain::domain() | ||||
{ | ||||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
QCOMPARE(domain.isEmpty(), true); | ||||
QCOMPARE(domain.maxX(), 0.0); | ||||
QCOMPARE(domain.maxY(), 0.0); | ||||
QCOMPARE(domain.minX(), 0.0); | ||||
QCOMPARE(domain.minY(), 0.0); | ||||
} | ||||
Michal Klocek
|
r2273 | void tst_Domain::handleHorizontalAxisRangeChanged_data() | ||
Michal Klocek
|
r439 | { | ||
QTest::addColumn<qreal>("min"); | ||||
QTest::addColumn<qreal>("max"); | ||||
QTest::newRow("-1 1") << -1.0 << 1.0; | ||||
QTest::newRow("0 1") << 0.0 << 1.0; | ||||
QTest::newRow("-1 0") << -1.0 << 0.0; | ||||
} | ||||
Michal Klocek
|
r2273 | void tst_Domain::handleHorizontalAxisRangeChanged() | ||
Michal Klocek
|
r439 | { | ||
QFETCH(qreal, min); | ||||
QFETCH(qreal, max); | ||||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r2273 | AxisMock axis(Qt::AlignBottom); | ||
QObject::connect(&axis,SIGNAL(rangeChanged(qreal,qreal)),&domain,SLOT(handleHorizontalAxisRangeChanged(qreal,qreal))); | ||||
axis.setRange(min,max); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2242 | QVERIFY(qFuzzyCompare(domain.minX(), min)); | ||
QVERIFY(qFuzzyCompare(domain.maxX(), max)); | ||||
Michal Klocek
|
r439 | |||
QList<QVariant> arg1 = spy1.first(); | ||||
Marek Rosa
|
r2242 | QVERIFY(qFuzzyCompare(arg1.at(0).toReal(), min)); | ||
QVERIFY(qFuzzyCompare(arg1.at(1).toReal(), max)); | ||||
Michal Klocek
|
r439 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 1); | ||
TRY_COMPARE(spy1.count(), 1); | ||||
TRY_COMPARE(spy2.count(), 0); | ||||
Michal Klocek
|
r439 | |||
} | ||||
Michal Klocek
|
r2273 | void tst_Domain::handleVerticalAxisRangeChanged_data() | ||
Michal Klocek
|
r439 | { | ||
QTest::addColumn<qreal>("min"); | ||||
QTest::addColumn<qreal>("max"); | ||||
QTest::newRow("-1 1") << -1.0 << 1.0; | ||||
QTest::newRow("0 1") << 0.0 << 1.0; | ||||
QTest::newRow("-1 0") << -1.0 << 0.0; | ||||
} | ||||
Michal Klocek
|
r2273 | void tst_Domain::handleVerticalAxisRangeChanged() | ||
Michal Klocek
|
r439 | { | ||
QFETCH(qreal, min); | ||||
QFETCH(qreal, max); | ||||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r2273 | AxisMock axis(Qt::AlignLeft); | ||
QObject::connect(&axis, SIGNAL(rangeChanged(qreal,qreal)), &domain, SLOT(handleVerticalAxisRangeChanged(qreal,qreal))); | ||||
axis.setRange(min,max); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2242 | QVERIFY(qFuzzyCompare(domain.minY(), min)); | ||
QVERIFY(qFuzzyCompare(domain.maxY(), max)); | ||||
Michal Klocek
|
r439 | |||
QList<QVariant> arg1 = spy2.first(); | ||||
Marek Rosa
|
r2242 | QVERIFY(qFuzzyCompare(arg1.at(0).toReal(), min)); | ||
QVERIFY(qFuzzyCompare(arg1.at(1).toReal(), max)); | ||||
Michal Klocek
|
r439 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 1); | ||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), 1); | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::isEmpty_data() | ||||
{ | ||||
QTest::addColumn<qreal>("minX"); | ||||
QTest::addColumn<qreal>("maxX"); | ||||
QTest::addColumn<qreal>("minY"); | ||||
QTest::addColumn<qreal>("maxY"); | ||||
Michal Klocek
|
r2273 | QTest::addColumn<QSizeF>("size"); | ||
Michal Klocek
|
r439 | QTest::addColumn<bool>("isEmpty"); | ||
Michal Klocek
|
r2273 | QTest::newRow("0 0 0 0") << 0.0 << 0.0 << 0.0 << 0.0 << QSizeF(1,1) << true; | ||
QTest::newRow("0 1 0 0") << 0.0 << 1.0 << 0.0 << 0.0 << QSizeF(1,1) << true; | ||||
QTest::newRow("0 0 0 1") << 0.0 << 1.0 << 0.0 << 0.0 << QSizeF(1,1) << true; | ||||
QTest::newRow("0 1 0 1") << 0.0 << 1.0 << 0.0 << 1.0 << QSizeF(1,1) << false; | ||||
QTest::newRow("0 1 0 1") << 0.0 << 1.0 << 0.0 << 1.0 << QSizeF(-11,1) << true; | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::isEmpty() | ||||
{ | ||||
Michal Klocek
|
r773 | QFETCH(qreal, minX); | ||
QFETCH(qreal, maxX); | ||||
QFETCH(qreal, minY); | ||||
QFETCH(qreal, maxY); | ||||
Michal Klocek
|
r2273 | QFETCH(QSizeF, size); | ||
Michal Klocek
|
r439 | QFETCH(bool, isEmpty); | ||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r773 | domain.setRange(minX, maxX, minY, maxY); | ||
Michal Klocek
|
r2273 | domain.setSize(size); | ||
Michal Klocek
|
r439 | QCOMPARE(domain.isEmpty(), isEmpty); | ||
} | ||||
void tst_Domain::maxX_data() | ||||
{ | ||||
QTest::addColumn<qreal>("maxX1"); | ||||
QTest::addColumn<qreal>("maxX2"); | ||||
QTest::addColumn<int>("count"); | ||||
QTest::newRow("1") << 0.0 << 1.0 << 1; | ||||
QTest::newRow("1.0") << 1.0 << 1.0 << 1; | ||||
QTest::newRow("2.0") << 1.0 << 0.0 << 2; | ||||
} | ||||
void tst_Domain::maxX() | ||||
{ | ||||
QFETCH(qreal, maxX1); | ||||
QFETCH(qreal, maxX2); | ||||
QFETCH(int, count); | ||||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
domain.setMaxX(maxX1); | ||||
QCOMPARE(domain.maxX(), maxX1); | ||||
domain.setMaxX(maxX2); | ||||
QCOMPARE(domain.maxX(), maxX2); | ||||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), count); | ||
TRY_COMPARE(spy1.count(), count); | ||||
TRY_COMPARE(spy2.count(), 0); | ||||
Michal Klocek
|
r439 | |||
} | ||||
void tst_Domain::maxY_data() | ||||
{ | ||||
Michal Klocek
|
r773 | QTest::addColumn<qreal>("maxY1"); | ||
QTest::addColumn<qreal>("maxY2"); | ||||
QTest::addColumn<int>("count"); | ||||
QTest::newRow("1") << 0.0 << 1.0 << 1; | ||||
QTest::newRow("1.0") << 1.0 << 1.0 << 1; | ||||
QTest::newRow("2.0") << 1.0 << 0.0 << 2; | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::maxY() | ||||
{ | ||||
Michal Klocek
|
r773 | QFETCH(qreal, maxY1); | ||
QFETCH(qreal, maxY2); | ||||
QFETCH(int, count); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | domain.setMaxY(maxY1); | ||
QCOMPARE(domain.maxY(), maxY1); | ||||
domain.setMaxY(maxY2); | ||||
QCOMPARE(domain.maxY(), maxY2); | ||||
Michal Klocek
|
r439 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), count); | ||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), count); | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::minX_data() | ||||
{ | ||||
Michal Klocek
|
r773 | QTest::addColumn<qreal>("minX1"); | ||
QTest::addColumn<qreal>("minX2"); | ||||
QTest::addColumn<int>("count"); | ||||
QTest::newRow("1") << 0.0 << 1.0 << 1; | ||||
QTest::newRow("1.0") << 1.0 << 1.0 << 1; | ||||
QTest::newRow("2.0") << 1.0 << 0.0 << 2; | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::minX() | ||||
{ | ||||
Michal Klocek
|
r773 | QFETCH(qreal, minX1); | ||
QFETCH(qreal, minX2); | ||||
QFETCH(int, count); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | domain.setMinX(minX1); | ||
QCOMPARE(domain.minX(), minX1); | ||||
domain.setMinX(minX2); | ||||
QCOMPARE(domain.minX(), minX2); | ||||
Michal Klocek
|
r439 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), count); | ||
TRY_COMPARE(spy1.count(), count); | ||||
TRY_COMPARE(spy2.count(), 0); | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::minY_data() | ||||
{ | ||||
Michal Klocek
|
r773 | QTest::addColumn<qreal>("minY1"); | ||
QTest::addColumn<qreal>("minY2"); | ||||
QTest::addColumn<int>("count"); | ||||
QTest::newRow("1") << 0.0 << 1.0 << 1; | ||||
QTest::newRow("1.0") << 1.0 << 1.0 << 1; | ||||
QTest::newRow("2.0") << 1.0 << 0.0 << 2; | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::minY() | ||||
{ | ||||
Michal Klocek
|
r773 | QFETCH(qreal, minY1); | ||
QFETCH(qreal, minY2); | ||||
QFETCH(int, count); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | domain.setMinY(minY1); | ||
QCOMPARE(domain.minY(), minY1); | ||||
domain.setMinY(minY2); | ||||
QCOMPARE(domain.minY(), minY2); | ||||
Michal Klocek
|
r439 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), count); | ||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), count); | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::operatorEquals_data() | ||||
{ | ||||
Marek Rosa
|
r2275 | QTest::addColumn<XYDomain*>("domain1"); | ||
QTest::addColumn<XYDomain*>("domain2"); | ||||
Michal Klocek
|
r439 | QTest::addColumn<bool>("equals"); | ||
QTest::addColumn<bool>("notEquals"); | ||||
Marek Rosa
|
r2275 | XYDomain* a; | ||
XYDomain* b; | ||||
a = new XYDomain(); | ||||
Michal Klocek
|
r773 | a->setRange(0, 100, 0, 100); | ||
Marek Rosa
|
r2275 | b = new XYDomain(); | ||
Michal Klocek
|
r773 | b->setRange(0, 100, 0, 100); | ||
QTest::newRow("equals") << a << b << true << false; | ||||
Marek Rosa
|
r2275 | a = new XYDomain(); | ||
Michal Klocek
|
r773 | a->setRange(0, 100, 0, 100); | ||
Marek Rosa
|
r2275 | b = new XYDomain(); | ||
Michal Klocek
|
r773 | b->setRange(0, 100, 0, 1); | ||
Michal Klocek
|
r439 | QTest::newRow("equals") << a << b << false << true; | ||
Marek Rosa
|
r2275 | a = new XYDomain(); | ||
Michal Klocek
|
r773 | a->setRange(0, 100, 0, 100); | ||
Marek Rosa
|
r2275 | b = new XYDomain(); | ||
Michal Klocek
|
r773 | b->setRange(0, 1, 0, 100); | ||
Michal Klocek
|
r439 | QTest::newRow("equals") << a << b << false << true; | ||
} | ||||
void tst_Domain::operatorEquals() | ||||
{ | ||||
Marek Rosa
|
r2275 | QFETCH(XYDomain*, domain1); | ||
QFETCH(XYDomain*, domain2); | ||||
Michal Klocek
|
r439 | QFETCH(bool, equals); | ||
QFETCH(bool, notEquals); | ||||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
QCOMPARE(*domain1==*domain2, equals); | ||||
QCOMPARE(*domain1!=*domain2, notEquals); | ||||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 0); | ||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), 0); | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::setRange_data() | ||||
{ | ||||
QTest::addColumn<qreal>("minX"); | ||||
QTest::addColumn<qreal>("maxX"); | ||||
QTest::addColumn<qreal>("minY"); | ||||
QTest::addColumn<qreal>("maxY"); | ||||
QTest::newRow("1,2,1,2") << 1.0 << 2.0 << 1.0 << 2.0; | ||||
QTest::newRow("1,3,1,3") << 1.0 << 3.0 << 1.0 << 3.0; | ||||
QTest::newRow("-1,5,-2,-1") << -1.0 << 5.0 << -2.0 << -1.0; | ||||
} | ||||
void tst_Domain::setRange() | ||||
{ | ||||
QFETCH(qreal, minX); | ||||
QFETCH(qreal, maxX); | ||||
QFETCH(qreal, minY); | ||||
QFETCH(qreal, maxY); | ||||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
domain.setRange(minX, maxX, minY, maxY); | ||||
QCOMPARE(domain.minX(), minX); | ||||
QCOMPARE(domain.maxX(), maxX); | ||||
QCOMPARE(domain.minY(), minY); | ||||
QCOMPARE(domain.maxY(), maxY); | ||||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 1); | ||
TRY_COMPARE(spy1.count(), 1); | ||||
TRY_COMPARE(spy2.count(), 1); | ||||
Michal Klocek
|
r439 | |||
} | ||||
void tst_Domain::setRangeX_data() | ||||
{ | ||||
Michal Klocek
|
r773 | QTest::addColumn<qreal>("min"); | ||
QTest::addColumn<qreal>("max"); | ||||
QTest::newRow("-1 1") << -1.0 << 1.0; | ||||
QTest::newRow("0 1") << 0.0 << 1.0; | ||||
QTest::newRow("-1 0") << -1.0 << 0.0; | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::setRangeX() | ||||
{ | ||||
Michal Klocek
|
r773 | QFETCH(qreal, min); | ||
QFETCH(qreal, max); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | domain.setRangeX(min, max); | ||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2242 | QVERIFY(qFuzzyCompare(domain.minX(), min)); | ||
QVERIFY(qFuzzyCompare(domain.maxX(), max)); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | QList<QVariant> arg1 = spy1.first(); | ||
Marek Rosa
|
r2242 | QVERIFY(qFuzzyCompare(arg1.at(0).toReal(), min)); | ||
QVERIFY(qFuzzyCompare(arg1.at(1).toReal(), max)); | ||||
Michal Klocek
|
r439 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 1); | ||
TRY_COMPARE(spy1.count(), 1); | ||||
TRY_COMPARE(spy2.count(), 0); | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::setRangeY_data() | ||||
{ | ||||
Michal Klocek
|
r773 | QTest::addColumn<qreal>("min"); | ||
QTest::addColumn<qreal>("max"); | ||||
QTest::newRow("-1 1") << -1.0 << 1.0; | ||||
QTest::newRow("0 1") << 0.0 << 1.0; | ||||
QTest::newRow("-1 0") << -1.0 << 0.0; | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::setRangeY() | ||||
{ | ||||
Michal Klocek
|
r773 | QFETCH(qreal, min); | ||
QFETCH(qreal, max); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | domain.setRangeY(min, max); | ||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2242 | QVERIFY(qFuzzyCompare(domain.minY(), min)); | ||
QVERIFY(qFuzzyCompare(domain.maxY(), max)); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | QList<QVariant> arg1 = spy2.first(); | ||
Marek Rosa
|
r2242 | QVERIFY(qFuzzyCompare(arg1.at(0).toReal(), min)); | ||
QVERIFY(qFuzzyCompare(arg1.at(1).toReal(), max)); | ||||
Michal Klocek
|
r439 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 1); | ||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), 1); | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::spanX_data() | ||||
{ | ||||
Michal Klocek
|
r773 | QTest::addColumn<qreal>("minX"); | ||
QTest::addColumn<qreal>("maxX"); | ||||
Michal Klocek
|
r439 | QTest::addColumn<qreal>("spanX"); | ||
QTest::newRow("1 2 1") << 1.0 << 2.0 << 1.0; | ||||
QTest::newRow("0 2 2") << 1.0 << 2.0 << 1.0; | ||||
} | ||||
void tst_Domain::spanX() | ||||
{ | ||||
QFETCH(qreal, minX); | ||||
QFETCH(qreal, maxX); | ||||
QFETCH(qreal, spanX); | ||||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | domain.setRangeX(minX, maxX); | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
QCOMPARE(domain.spanX(), spanX); | ||||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 0); | ||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), 0); | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::spanY_data() | ||||
{ | ||||
Michal Klocek
|
r773 | QTest::addColumn<qreal>("minY"); | ||
QTest::addColumn<qreal>("maxY"); | ||||
QTest::addColumn<qreal>("spanY"); | ||||
QTest::newRow("1 2 1") << 1.0 << 2.0 << 1.0; | ||||
QTest::newRow("0 2 2") << 1.0 << 2.0 << 1.0; | ||||
Michal Klocek
|
r439 | } | ||
void tst_Domain::spanY() | ||||
{ | ||||
Michal Klocek
|
r773 | QFETCH(qreal, minY); | ||
QFETCH(qreal, maxY); | ||||
QFETCH(qreal, spanY); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | domain.setRangeY(minY, maxY); | ||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r773 | QCOMPARE(domain.spanY(), spanY); | ||
Michal Klocek
|
r439 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 0); | ||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), 0); | ||||
Michal Klocek
|
r439 | } | ||
Michal Klocek
|
r2273 | void tst_Domain::zoomIn_data() | ||
Michal Klocek
|
r439 | { | ||
Michal Klocek
|
r2273 | QTest::addColumn<QMargins>("range"); | ||
QTest::addColumn<QSizeF>("size"); | ||||
QTest::addColumn<QMargins>("zoom"); | ||||
QTest::addColumn<QMargins>("result"); | ||||
QTest::newRow("first") << QMargins(0,0,1000,1000) << QSizeF(1000, 1000) << | ||||
QMargins(100, 100, 900, 900) << QMargins(100,100,900,900); | ||||
QTest::newRow("second") << QMargins(0,0,2000,2000) << QSizeF(1000, 1000) << | ||||
QMargins(100, 100, 900, 900) << QMargins(200,200,1800,1800); | ||||
Michal Klocek
|
r439 | } | ||
Michal Klocek
|
r2273 | void tst_Domain::zoomIn() | ||
Michal Klocek
|
r439 | { | ||
Michal Klocek
|
r2273 | QFETCH(QMargins, range); | ||
QFETCH(QSizeF, size); | ||||
QFETCH(QMargins, zoom); | ||||
QFETCH(QMargins, result); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r2273 | domain.setRange(range.left(), range.right(), range.top(),range.bottom()); | ||
domain.setSize(size); | ||||
QSignalSpy spy0(&domain, SIGNAL(updated())); | ||||
QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
domain.zoomIn(QRectF(zoom.left(),zoom.top(),zoom.right()-zoom.left(),zoom.bottom()-zoom.top())); | ||||
QCOMPARE(domain.minX(),qreal(result.left())); | ||||
QCOMPARE(domain.maxX(),qreal(result.right())); | ||||
QCOMPARE(domain.minY(),qreal(result.top())); | ||||
QCOMPARE(domain.maxY(),qreal(result.bottom())); | ||||
TRY_COMPARE(spy0.count(), 1); | ||||
TRY_COMPARE(spy1.count(), 1); | ||||
TRY_COMPARE(spy2.count(), 1); | ||||
} | ||||
void tst_Domain::zoomOut_data() | ||||
{ | ||||
QTest::addColumn<QMargins>("range"); | ||||
QTest::addColumn<QSizeF>("size"); | ||||
QTest::addColumn<QMargins>("zoom"); | ||||
QTest::addColumn<QMargins>("result"); | ||||
QTest::newRow("first") << QMargins(100,100,900,900) << QSizeF(1000, 1000) << | ||||
QMargins(100, 100, 900, 900) << QMargins(0,0,1000,1000); | ||||
QTest::newRow("second") << QMargins(200,200,1800,1800) << QSizeF(1000, 1000) << | ||||
QMargins(100, 100, 900, 900) << QMargins(0,0,2000,2000); | ||||
} | ||||
void tst_Domain::zoomOut() | ||||
{ | ||||
QFETCH(QMargins, range); | ||||
QFETCH(QSizeF, size); | ||||
QFETCH(QMargins, zoom); | ||||
QFETCH(QMargins, result); | ||||
Michal Klocek
|
r439 | |||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r2273 | domain.setRange(range.left(), range.right(), range.top(),range.bottom()); | ||
domain.setSize(size); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
domain.zoomOut(QRectF(zoom.left(),zoom.top(),zoom.right()-zoom.left(),zoom.bottom()-zoom.top())); | ||||
QCOMPARE(domain.minX(),qreal(result.left())); | ||||
QCOMPARE(domain.maxX(),qreal(result.right())); | ||||
QCOMPARE(domain.minY(),qreal(result.top())); | ||||
QCOMPARE(domain.maxY(),qreal(result.bottom())); | ||||
TRY_COMPARE(spy0.count(), 1); | ||||
TRY_COMPARE(spy1.count(), 1); | ||||
TRY_COMPARE(spy2.count(), 1); | ||||
Michal Klocek
|
r439 | } | ||
Michal Klocek
|
r773 | void tst_Domain::move_data() | ||
{ | ||||
Michal Klocek
|
r2273 | QTest::addColumn<QMargins>("range"); | ||
QTest::addColumn<QSizeF>("size"); | ||||
Michal Klocek
|
r773 | QTest::addColumn<int>("dx"); | ||
QTest::addColumn<int>("dy"); | ||||
Michal Klocek
|
r2273 | QTest::addColumn<QMargins>("result"); | ||
QTest::newRow("first") << QMargins(0,0,1000,1000) << QSizeF(1000, 1000) << | ||||
10 << 10 << QMargins(10,10,1010,1010); | ||||
QTest::newRow("second") << QMargins(0,0,1000,1000) << QSizeF(1000, 1000) << | ||||
-10 << -10 << QMargins(-10,-10,990,990); | ||||
Michal Klocek
|
r773 | } | ||
void tst_Domain::move() | ||||
{ | ||||
Michal Klocek
|
r2273 | QFETCH(QMargins, range); | ||
QFETCH(QSizeF, size); | ||||
Michal Klocek
|
r773 | QFETCH(int, dx); | ||
QFETCH(int, dy); | ||||
Michal Klocek
|
r2273 | QFETCH(QMargins, result); | ||
Michal Klocek
|
r773 | |||
Marek Rosa
|
r2275 | XYDomain domain; | ||
Michal Klocek
|
r2273 | domain.setRange(range.left(), range.right(), range.top(),range.bottom()); | ||
domain.setSize(size); | ||||
Michal Klocek
|
r773 | |||
Michal Klocek
|
r1698 | QSignalSpy spy0(&domain, SIGNAL(updated())); | ||
Michal Klocek
|
r2273 | QSignalSpy spy1(&domain, SIGNAL(rangeHorizontalChanged(qreal,qreal))); | ||
QSignalSpy spy2(&domain, SIGNAL(rangeVerticalChanged(qreal,qreal))); | ||||
Michal Klocek
|
r773 | |||
Michal Klocek
|
r2273 | domain.move(dx, dy); | ||
Michal Klocek
|
r773 | |||
Michal Klocek
|
r2273 | QCOMPARE(domain.minX(),qreal(result.left())); | ||
QCOMPARE(domain.maxX(),qreal(result.right())); | ||||
QCOMPARE(domain.minY(),qreal(result.top())); | ||||
QCOMPARE(domain.maxY(),qreal(result.bottom())); | ||||
Michal Klocek
|
r773 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 1); | ||
Tero Ahola
|
r1111 | TRY_COMPARE(spy1.count(), (dx != 0 ? 1 : 0)); | ||
TRY_COMPARE(spy2.count(), (dy != 0 ? 1 : 0)); | ||||
Michal Klocek
|
r773 | } | ||
Michal Klocek
|
r439 | QTEST_MAIN(tst_Domain) | ||
#include "tst_domain.moc" | ||||
Michal Klocek
|
r1977 | #endif | ||