tst_chartdataset.cpp
648 lines
| 19.1 KiB
| text/x-c
|
CppLexer
Michal Klocek
|
r771 | /**************************************************************************** | ||
** | ||||
** 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_ChartDataSet: public QObject { | ||||
Q_OBJECT | ||||
private Q_SLOTS: | ||||
void skip(); | ||||
}; | ||||
void tst_ChartDataSet::skip() | ||||
{ | ||||
Marek Rosa
|
r2055 | #ifdef QT5_QUICK_1 | ||
QSKIP("This test requires the debug version of library"); | ||||
#else | ||||
Michal Klocek
|
r1977 | QSKIP("This test requires the debug version of library", SkipAll); | ||
Marek Rosa
|
r2055 | #endif | ||
Michal Klocek
|
r1977 | } | ||
QTEST_MAIN(tst_ChartDataSet) | ||||
#include "tst_chartdataset.moc" | ||||
#else | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r224 | #include <QtTest/QtTest> | ||
Michal Klocek
|
r1541 | #include <qabstractaxis.h> | ||
Marek Rosa
|
r1805 | #include <qvalueaxis.h> | ||
Marek Rosa
|
r1810 | #include <qbarcategoryaxis.h> | ||
Michal Klocek
|
r349 | #include <qlineseries.h> | ||
Michal Klocek
|
r1564 | #include <qareaseries.h> | ||
#include <qscatterseries.h> | ||||
#include <qsplineseries.h> | ||||
#include <qpieseries.h> | ||||
sauimone
|
r1594 | #include <qbarseries.h> | ||
Michal Klocek
|
r1564 | #include <qpercentbarseries.h> | ||
#include <qstackedbarseries.h> | ||||
Michal Klocek
|
r224 | #include <private/chartdataset_p.h> | ||
#include <private/domain_p.h> | ||||
Tero Ahola
|
r1109 | #include <tst_definitions.h> | ||
Michal Klocek
|
r224 | |||
QTCOMMERCIALCHART_USE_NAMESPACE | ||||
Tero Ahola
|
r988 | Q_DECLARE_METATYPE(Domain *) | ||
Michal Klocek
|
r1541 | Q_DECLARE_METATYPE(QAbstractAxis *) | ||
Tero Ahola
|
r988 | Q_DECLARE_METATYPE(QAbstractSeries *) | ||
Michal Klocek
|
r1564 | Q_DECLARE_METATYPE(QList<QAbstractSeries *>) | ||
Q_DECLARE_METATYPE(QList<QAbstractAxis *>) | ||||
Tero Ahola
|
r988 | Q_DECLARE_METATYPE(QLineSeries *) | ||
Michal Klocek
|
r224 | |||
class tst_ChartDataSet: public QObject { | ||||
Michal Klocek
|
r771 | Q_OBJECT | ||
public Q_SLOTS: | ||||
Michal Klocek
|
r224 | void initTestCase(); | ||
void cleanupTestCase(); | ||||
void init(); | ||||
void cleanup(); | ||||
Michal Klocek
|
r771 | private Q_SLOTS: | ||
Michal Klocek
|
r224 | void chartdataset_data(); | ||
void chartdataset(); | ||||
void addSeries_data(); | ||||
void addSeries(); | ||||
Michal Klocek
|
r1564 | void setAxisX_data(); | ||
void setAxisX(); | ||||
void setAxisY_data(); | ||||
void setAxisY(); | ||||
Michal Klocek
|
r224 | void removeSeries_data(); | ||
void removeSeries(); | ||||
Michal Klocek
|
r258 | void removeAllSeries_data(); | ||
void removeAllSeries(); | ||||
Michal Klocek
|
r910 | void seriesCount_data(); | ||
void seriesCount(); | ||||
Michal Klocek
|
r771 | void seriesIndex_data(); | ||
void seriesIndex(); | ||||
void domain_data(); | ||||
void domain(); | ||||
void zoomInDomain_data(); | ||||
void zoomInDomain(); | ||||
void zoomOutDomain_data(); | ||||
void zoomOutDomain(); | ||||
void scrollDomain_data(); | ||||
void scrollDomain(); | ||||
Michal Klocek
|
r1593 | |||
Michal Klocek
|
r1078 | private: | ||
ChartDataSet* m_dataset; | ||||
Michal Klocek
|
r224 | }; | ||
void tst_ChartDataSet::initTestCase() | ||||
{ | ||||
Michal Klocek
|
r439 | qRegisterMetaType<Domain*>(); | ||
Michal Klocek
|
r1564 | qRegisterMetaType<QAbstractAxis*>(); | ||
Tero Ahola
|
r989 | qRegisterMetaType<QAbstractSeries*>(); | ||
Michal Klocek
|
r224 | } | ||
void tst_ChartDataSet::cleanupTestCase() | ||||
{ | ||||
} | ||||
void tst_ChartDataSet::init() | ||||
{ | ||||
Michal Klocek
|
r1078 | m_dataset = new ChartDataSet(); | ||
Michal Klocek
|
r224 | } | ||
Michal Klocek
|
r1078 | |||
Michal Klocek
|
r224 | void tst_ChartDataSet::cleanup() | ||
{ | ||||
Michal Klocek
|
r1078 | QList<QAbstractSeries*> series = m_dataset->series(); | ||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* serie, series) | ||
Michal Klocek
|
r1078 | { | ||
m_dataset->removeSeries(serie); | ||||
} | ||||
Michal Klocek
|
r224 | } | ||
void tst_ChartDataSet::chartdataset_data() | ||||
{ | ||||
} | ||||
void tst_ChartDataSet::chartdataset() | ||||
{ | ||||
Michal Klocek
|
r1564 | QVERIFY(m_dataset->axisX(0) == 0); | ||
QVERIFY(m_dataset->axisY(0) == 0); | ||||
Michal Klocek
|
r910 | QLineSeries* series = new QLineSeries(this); | ||
Michal Klocek
|
r1078 | QCOMPARE(m_dataset->seriesIndex(series),-1); | ||
Michal Klocek
|
r1564 | QVERIFY(m_dataset->domain(series) == 0); | ||
QVERIFY(m_dataset->axisX(series) == 0); | ||||
QVERIFY(m_dataset->axisY(series) == 0); | ||||
Michal Klocek
|
r1577 | m_dataset->createDefaultAxes(); | ||
Michal Klocek
|
r224 | } | ||
Michal Klocek
|
r1564 | |||
Michal Klocek
|
r224 | void tst_ChartDataSet::addSeries_data() | ||
{ | ||||
Michal Klocek
|
r1564 | QTest::addColumn<QAbstractSeries*>("series"); | ||
QAbstractSeries* line = new QLineSeries(this); | ||||
QAbstractSeries* area = new QAreaSeries(static_cast<QLineSeries*>(line)); | ||||
QAbstractSeries* scatter = new QScatterSeries(this); | ||||
QAbstractSeries* spline = new QSplineSeries(this); | ||||
QAbstractSeries* pie = new QPieSeries(this); | ||||
sauimone
|
r1594 | QAbstractSeries* bar = new QBarSeries(this); | ||
Michal Klocek
|
r1564 | QAbstractSeries* percent = new QPercentBarSeries(this); | ||
QAbstractSeries* stacked = new QStackedBarSeries(this); | ||||
QTest::newRow("line") << line; | ||||
QTest::newRow("area") << area; | ||||
QTest::newRow("scatter") << scatter; | ||||
QTest::newRow("spline") << spline; | ||||
QTest::newRow("pie") << pie; | ||||
QTest::newRow("bar") << bar; | ||||
QTest::newRow("percent") << percent; | ||||
QTest::newRow("stacked") << stacked; | ||||
} | ||||
void tst_ChartDataSet::addSeries() | ||||
{ | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1564 | QFETCH(QAbstractSeries*, series); | ||
Michal Klocek
|
r439 | |||
Jani Honkonen
|
r2110 | QSignalSpy spy0(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
Michal Klocek
|
r1564 | QSignalSpy spy1(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||
Jani Honkonen
|
r2110 | QSignalSpy spy2(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||
QSignalSpy spy3(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r439 | |||
Michal Klocek
|
r1564 | m_dataset->addSeries(series); | ||
Michal Klocek
|
r1577 | m_dataset->createDefaultAxes(); | ||
Michal Klocek
|
r1564 | if(series->type()==QAbstractSeries::SeriesTypePie){ | ||
TRY_COMPARE(spy0.count(), 0); | ||||
}else{ | ||||
TRY_COMPARE(spy0.count(), 2); | ||||
} | ||||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), 1); | ||||
TRY_COMPARE(spy3.count(), 0); | ||||
Michal Klocek
|
r224 | } | ||
Michal Klocek
|
r1564 | |||
void tst_ChartDataSet::setAxisX_data() | ||||
Michal Klocek
|
r224 | { | ||
Michal Klocek
|
r1567 | QTest::addColumn<QList<QAbstractSeries*> >("seriesList"); | ||
QTest::addColumn<QList<QAbstractAxis*> >("axisList"); | ||||
QTest::addColumn<int>("axisCount"); | ||||
Michal Klocek
|
r1564 | |||
QAbstractSeries* line = new QLineSeries(this); | ||||
QAbstractSeries* area = new QAreaSeries(static_cast<QLineSeries*>(line)); | ||||
QAbstractSeries* scatter = new QScatterSeries(this); | ||||
QAbstractSeries* spline = new QSplineSeries(this); | ||||
Tero Ahola
|
r1913 | /*QAbstractSeries* pie = */new QPieSeries(this); | ||
/*QAbstractSeries* bar = */new QBarSeries(this); | ||||
/*QAbstractSeries* percent = */new QPercentBarSeries(this); | ||||
/*QAbstractSeries* stacked = */new QStackedBarSeries(this); | ||||
Michal Klocek
|
r1564 | |||
Michal Klocek
|
r1567 | QTest::newRow("line,spline,scatter: axis 0 axis1 axis 2") | ||
<< (QList<QAbstractSeries*>() << line << spline << scatter) | ||||
Marek Rosa
|
r1804 | << (QList<QAbstractAxis*>() << new QValueAxis(this) << new QValueAxis(this) << new QValueAxis(this)) << 3; | ||
Michal Klocek
|
r1567 | |||
QTest::newRow("area: axis 0") << (QList<QAbstractSeries*>() << area) | ||||
Marek Rosa
|
r1804 | << (QList<QAbstractAxis*>() << new QValueAxis(this)) << 1; | ||
Michal Klocek
|
r1564 | |||
Michal Klocek
|
r1567 | QList<QAbstractAxis*> axes0; | ||
Marek Rosa
|
r1804 | axes0 << new QValueAxis(this) << new QValueAxis(this); | ||
Michal Klocek
|
r1567 | axes0 << axes0.last(); | ||
QTest::newRow("line,spline,scatter: axis 0 axis1 axis 1") | ||||
<< (QList<QAbstractSeries*>() << line << spline << scatter) | ||||
<< axes0 << 2; | ||||
//TODO: add more test cases | ||||
Michal Klocek
|
r1564 | } | ||
void tst_ChartDataSet::setAxisX() | ||||
{ | ||||
QFETCH(QList<QAbstractSeries*>, seriesList); | ||||
QFETCH(QList<QAbstractAxis*>, axisList); | ||||
Michal Klocek
|
r439 | QFETCH(int, axisCount); | ||
Michal Klocek
|
r411 | |||
Michal Klocek
|
r1564 | Q_ASSERT(seriesList.count() == axisList.count()); | ||
Jani Honkonen
|
r2110 | QSignalSpy spy0(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
QSignalSpy spy1(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||||
QSignalSpy spy2(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||||
QSignalSpy spy3(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r411 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList){ | ||
Michal Klocek
|
r1564 | m_dataset->addSeries(series); | ||
} | ||||
Michal Klocek
|
r411 | |||
Michal Klocek
|
r1577 | TRY_COMPARE(spy0.count(), 0); | ||
Tero Ahola
|
r1109 | TRY_COMPARE(spy1.count(), 0); | ||
Michal Klocek
|
r1564 | TRY_COMPARE(spy2.count(), seriesList.count()); | ||
Tero Ahola
|
r1109 | TRY_COMPARE(spy3.count(), 0); | ||
Michal Klocek
|
r224 | |||
Michal Klocek
|
r1564 | QSignalSpy spy4(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
QSignalSpy spy5(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||||
Jani Honkonen
|
r2110 | QSignalSpy spy6(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||
QSignalSpy spy7(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r1564 | |||
for(int i=0 ; i < seriesList.count(); i++){ | ||||
Michal Klocek
|
r1696 | m_dataset->setAxis(seriesList.at(i),axisList.at(i),Qt::Horizontal); | ||
Michal Klocek
|
r1564 | } | ||
TRY_COMPARE(spy4.count(), axisCount); | ||||
Michal Klocek
|
r1577 | TRY_COMPARE(spy5.count(), 0); | ||
Michal Klocek
|
r1564 | TRY_COMPARE(spy6.count(), 0); | ||
TRY_COMPARE(spy7.count(), 0); | ||||
Michal Klocek
|
r974 | |||
Michal Klocek
|
r1564 | for(int i=0 ; i < seriesList.count(); i++){ | ||
QVERIFY(m_dataset->axisX(seriesList.at(i)) == axisList.at(i)); | ||||
} | ||||
Michal Klocek
|
r224 | } | ||
Michal Klocek
|
r1564 | void tst_ChartDataSet::setAxisY_data() | ||
Michal Klocek
|
r224 | { | ||
Michal Klocek
|
r1564 | setAxisX_data(); | ||
Michal Klocek
|
r224 | } | ||
Michal Klocek
|
r1564 | void tst_ChartDataSet::setAxisY() | ||
Michal Klocek
|
r224 | { | ||
Michal Klocek
|
r1564 | QFETCH(QList<QAbstractSeries*>, seriesList); | ||
QFETCH(QList<QAbstractAxis*>, axisList); | ||||
Michal Klocek
|
r439 | QFETCH(int, axisCount); | ||
Michal Klocek
|
r224 | |||
Michal Klocek
|
r1564 | Q_ASSERT(seriesList.count() == axisList.count()); | ||
Michal Klocek
|
r224 | |||
Michal Klocek
|
r1564 | QSignalSpy spy0(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
QSignalSpy spy1(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||||
Jani Honkonen
|
r2110 | QSignalSpy spy2(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||
QSignalSpy spy3(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r224 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList){ | ||
Michal Klocek
|
r1564 | m_dataset->addSeries(series); | ||
} | ||||
Michal Klocek
|
r224 | |||
Michal Klocek
|
r1577 | TRY_COMPARE(spy0.count(), 0); | ||
Michal Klocek
|
r1564 | TRY_COMPARE(spy1.count(), 0); | ||
TRY_COMPARE(spy2.count(), seriesList.count()); | ||||
TRY_COMPARE(spy3.count(), 0); | ||||
Michal Klocek
|
r224 | |||
Michal Klocek
|
r1564 | QSignalSpy spy4(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
QSignalSpy spy5(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||||
Jani Honkonen
|
r2110 | QSignalSpy spy6(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||
QSignalSpy spy7(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r1564 | |||
for(int i=0 ; i < seriesList.count(); i++){ | ||||
Michal Klocek
|
r1696 | m_dataset->setAxis(seriesList.at(i),axisList.at(i),Qt::Vertical); | ||
Michal Klocek
|
r1564 | } | ||
TRY_COMPARE(spy4.count(), axisCount); | ||||
Michal Klocek
|
r1577 | TRY_COMPARE(spy5.count(), 0); | ||
Michal Klocek
|
r1564 | TRY_COMPARE(spy6.count(), 0); | ||
TRY_COMPARE(spy7.count(), 0); | ||||
Michal Klocek
|
r974 | |||
Michal Klocek
|
r1564 | for(int i=0 ; i < seriesList.count(); i++){ | ||
QVERIFY(m_dataset->axisY(seriesList.at(i)) == axisList.at(i)); | ||||
} | ||||
Michal Klocek
|
r224 | } | ||
Michal Klocek
|
r1564 | void tst_ChartDataSet::removeSeries_data() | ||
Michal Klocek
|
r224 | { | ||
Michal Klocek
|
r1564 | addSeries_data(); | ||
} | ||||
Michal Klocek
|
r974 | |||
Michal Klocek
|
r1564 | void tst_ChartDataSet::removeSeries() | ||
{ | ||||
QFETCH(QAbstractSeries*, series); | ||||
Michal Klocek
|
r974 | |||
Michal Klocek
|
r1564 | m_dataset->addSeries(series); | ||
Michal Klocek
|
r1577 | m_dataset->createDefaultAxes(); | ||
Michal Klocek
|
r974 | |||
Jani Honkonen
|
r2110 | QSignalSpy spy0(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
Michal Klocek
|
r1564 | QSignalSpy spy1(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||
Jani Honkonen
|
r2110 | QSignalSpy spy2(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||
QSignalSpy spy3(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r974 | |||
Michal Klocek
|
r1564 | m_dataset->removeSeries(series); | ||
Michal Klocek
|
r974 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 0); | ||
Michal Klocek
|
r1564 | if (series->type() == QAbstractSeries::SeriesTypePie) { | ||
TRY_COMPARE(spy1.count(), 0); | ||||
} | ||||
else { | ||||
TRY_COMPARE(spy1.count(), 2); | ||||
} | ||||
Tero Ahola
|
r1109 | TRY_COMPARE(spy2.count(), 0); | ||
Michal Klocek
|
r1564 | TRY_COMPARE(spy3.count(), 1); | ||
Michal Klocek
|
r224 | } | ||
Michal Klocek
|
r1564 | void tst_ChartDataSet::removeAllSeries_data() | ||
Michal Klocek
|
r224 | { | ||
Michal Klocek
|
r1564 | QTest::addColumn<QList<QAbstractSeries*> >("seriesList"); | ||
QTest::addColumn<QList<QAbstractAxis*> >("axisList"); | ||||
QTest::addColumn<int>("axisCount"); | ||||
Michal Klocek
|
r224 | |||
Michal Klocek
|
r1564 | QTest::newRow("line,spline,scatter: axis 0 axis1 axis 2") | ||
Michal Klocek
|
r1567 | << (QList<QAbstractSeries*>() << new QLineSeries(this) << new QSplineSeries(this) | ||
<< new QScatterSeries(this)) | ||||
Marek Rosa
|
r1804 | << (QList<QAbstractAxis*>() << new QValueAxis(this) << new QValueAxis(this) | ||
<< new QValueAxis(this)) << 3; | ||||
Michal Klocek
|
r1564 | //TODO: | ||
} | ||||
void tst_ChartDataSet::removeAllSeries() | ||||
{ | ||||
QFETCH(QList<QAbstractSeries*>, seriesList); | ||||
QFETCH(QList<QAbstractAxis*>, axisList); | ||||
QFETCH(int, axisCount); | ||||
Michal Klocek
|
r258 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1564 | m_dataset->addSeries(series); | ||
} | ||||
Michal Klocek
|
r258 | |||
Michal Klocek
|
r1564 | for (int i = 0; i < seriesList.count(); i++) { | ||
Michal Klocek
|
r1696 | m_dataset->setAxis(seriesList.at(i), axisList.at(i),Qt::Horizontal); | ||
Michal Klocek
|
r1564 | } | ||
Michal Klocek
|
r258 | |||
Jani Honkonen
|
r2110 | QSignalSpy spy0(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
QSignalSpy spy1(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||||
QSignalSpy spy2(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||||
QSignalSpy spy3(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r258 | |||
Michal Klocek
|
r1564 | m_dataset->removeAllSeries(); | ||
Michal Klocek
|
r258 | |||
Michal Klocek
|
r1564 | TRY_COMPARE(spy0.count(), 0); | ||
Michal Klocek
|
r1577 | TRY_COMPARE(spy1.count(), axisCount); | ||
Michal Klocek
|
r1564 | TRY_COMPARE(spy2.count(), 0); | ||
TRY_COMPARE(spy3.count(), seriesList.count()); | ||||
Michal Klocek
|
r258 | } | ||
Michal Klocek
|
r1564 | |||
Michal Klocek
|
r910 | void tst_ChartDataSet::seriesCount_data() | ||
{ | ||||
Michal Klocek
|
r1564 | QTest::addColumn<QList<QAbstractSeries*> >("seriesList"); | ||
QTest::addColumn<int>("seriesCount"); | ||||
QTest::newRow("line,line, line, spline 3") << (QList<QAbstractSeries*>() << new QLineSeries(this) << new QLineSeries(this) << new QLineSeries(this) << new QSplineSeries(this) ) << 3; | ||||
QTest::newRow("scatter,scatter, line, line 2") << (QList<QAbstractSeries*>() << new QScatterSeries(this) << new QScatterSeries(this) << new QLineSeries(this) << new QLineSeries(this) ) << 2; | ||||
Michal Klocek
|
r910 | } | ||
void tst_ChartDataSet::seriesCount() | ||||
{ | ||||
Michal Klocek
|
r1564 | QFETCH(QList<QAbstractSeries*>, seriesList); | ||
QFETCH(int, seriesCount); | ||||
Michal Klocek
|
r910 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList){ | ||
Michal Klocek
|
r1564 | m_dataset->addSeries(series); | ||
} | ||||
Michal Klocek
|
r910 | |||
Jani Honkonen
|
r2110 | QSignalSpy spy0(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
QSignalSpy spy1(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||||
QSignalSpy spy2(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||||
QSignalSpy spy3(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r910 | |||
Michal Klocek
|
r1564 | QCOMPARE(m_dataset->seriesCount(seriesList.at(0)->type()),seriesCount); | ||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 0); | ||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), 0); | ||||
TRY_COMPARE(spy3.count(), 0); | ||||
Michal Klocek
|
r910 | } | ||
Michal Klocek
|
r771 | void tst_ChartDataSet::seriesIndex_data() | ||
{ | ||||
Michal Klocek
|
r1564 | QTest::addColumn<QList<QAbstractSeries*> >("seriesList"); | ||
QTest::newRow("line,line, line, spline") << (QList<QAbstractSeries*>() << new QLineSeries(this) << new QLineSeries(this) << new QLineSeries(this) << new QSplineSeries(this) ); | ||||
QTest::newRow("scatter,scatter, line, line") << (QList<QAbstractSeries*>() << new QScatterSeries(this) << new QScatterSeries(this) << new QLineSeries(this) << new QLineSeries(this) ); | ||||
Michal Klocek
|
r771 | } | ||
void tst_ChartDataSet::seriesIndex() | ||||
{ | ||||
Michal Klocek
|
r910 | |||
Michal Klocek
|
r1564 | QFETCH(QList<QAbstractSeries*>, seriesList); | ||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1564 | m_dataset->addSeries(series); | ||
} | ||||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2110 | QSignalSpy spy0(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
QSignalSpy spy1(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||||
Michal Klocek
|
r1078 | QSignalSpy spy2(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||
QSignalSpy spy3(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1564 | for (int i = 0; i < seriesList.count(); i++) { | ||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), i); | ||||
} | ||||
Michal Klocek
|
r771 | |||
Tero Ahola
|
r1109 | TRY_COMPARE(spy0.count(), 0); | ||
TRY_COMPARE(spy1.count(), 0); | ||||
TRY_COMPARE(spy2.count(), 0); | ||||
TRY_COMPARE(spy3.count(), 0); | ||||
Michal Klocek
|
r910 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1564 | m_dataset->removeSeries(series); | ||
} | ||||
Michal Klocek
|
r910 | |||
Michal Klocek
|
r1564 | for (int i = 0; i < seriesList.count(); i++) { | ||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), -1); | ||||
} | ||||
Michal Klocek
|
r910 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1564 | m_dataset->addSeries(series); | ||
} | ||||
Michal Klocek
|
r910 | |||
Michal Klocek
|
r1564 | for (int i = 0; i < seriesList.count(); i++) { | ||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), i); | ||||
} | ||||
Michal Klocek
|
r910 | |||
Michal Klocek
|
r1564 | m_dataset->removeSeries(seriesList.at(1)); | ||
Michal Klocek
|
r910 | |||
Michal Klocek
|
r1564 | for (int i = 0; i < seriesList.count(); i++) { | ||
if (i != 1) | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), i); | ||||
else | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), -1); | ||||
} | ||||
Michal Klocek
|
r910 | |||
Michal Klocek
|
r1564 | m_dataset->addSeries(seriesList.at(1)); | ||
for (int i = 0; i < seriesList.count(); i++) { | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), i); | ||||
} | ||||
m_dataset->removeSeries(seriesList.at(2)); | ||||
for (int i = 0; i < seriesList.count(); i++) { | ||||
if (i != 2) | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), i); | ||||
else | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), -1); | ||||
} | ||||
m_dataset->removeSeries(seriesList.at(0)); | ||||
for (int i = 0; i < seriesList.count(); i++) { | ||||
if (i != 2 && i != 0) | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), i); | ||||
else | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), -1); | ||||
} | ||||
m_dataset->addSeries(seriesList.at(2)); | ||||
m_dataset->addSeries(seriesList.at(0)); | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1564 | for (int i = 0; i < seriesList.count(); i++) { | ||
if (i == 2) | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), 0); | ||||
else if (i == 0) | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), 2); | ||||
else | ||||
QCOMPARE(m_dataset->seriesIndex(seriesList.at(i)), i); | ||||
} | ||||
} | ||||
Michal Klocek
|
r1568 | |||
Michal Klocek
|
r771 | void tst_ChartDataSet::domain_data() | ||
{ | ||||
addSeries_data(); | ||||
} | ||||
void tst_ChartDataSet::domain() | ||||
{ | ||||
Michal Klocek
|
r1568 | QFETCH(QAbstractSeries*, series); | ||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2110 | QSignalSpy spy0(m_dataset, SIGNAL(axisAdded(QAbstractAxis*,Domain*))); | ||
QSignalSpy spy1(m_dataset, SIGNAL(axisRemoved(QAbstractAxis*))); | ||||
QSignalSpy spy2(m_dataset, SIGNAL(seriesAdded(QAbstractSeries*,Domain*))); | ||||
QSignalSpy spy3(m_dataset, SIGNAL(seriesRemoved(QAbstractSeries*))); | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1568 | m_dataset->addSeries(series); | ||
QVERIFY(m_dataset->domain(series)); | ||||
Michal Klocek
|
r1577 | TRY_COMPARE(spy0.count(), 0); | ||
Tero Ahola
|
r1109 | TRY_COMPARE(spy1.count(), 0); | ||
Michal Klocek
|
r1568 | TRY_COMPARE(spy2.count(), 1); | ||
QList<QVariant> arguments = spy2.takeFirst(); | ||||
Domain *domain = (Domain *) arguments.at(1).value<Domain *>(); | ||||
QVERIFY(m_dataset->domain(series) == domain); | ||||
Tero Ahola
|
r1109 | TRY_COMPARE(spy3.count(), 0); | ||
Michal Klocek
|
r1568 | |||
Michal Klocek
|
r771 | } | ||
void tst_ChartDataSet::zoomInDomain_data() | ||||
{ | ||||
Michal Klocek
|
r1593 | QTest::addColumn<bool >("sameAxis"); | ||
Michal Klocek
|
r1568 | QTest::addColumn<QList<QAbstractSeries*> >("seriesList"); | ||
Michal Klocek
|
r1593 | QTest::newRow("sameAxis: line,line, line, spline") << true << (QList<QAbstractSeries*>() << new QLineSeries(this) << new QLineSeries(this) << new QLineSeries(this) << new QSplineSeries(this) ); | ||
QTest::newRow("separeateAxis: line,line, line, spline") << false << (QList<QAbstractSeries*>() << new QLineSeries(this) << new QLineSeries(this) << new QLineSeries(this) << new QSplineSeries(this) ); | ||||
Michal Klocek
|
r771 | } | ||
void tst_ChartDataSet::zoomInDomain() | ||||
{ | ||||
Michal Klocek
|
r1593 | QFETCH(bool, sameAxis); | ||
Michal Klocek
|
r1568 | QFETCH(QList<QAbstractSeries*>, seriesList); | ||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1568 | m_dataset->addSeries(series); | ||
} | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1593 | if(sameAxis) m_dataset->createDefaultAxes(); | ||
Michal Klocek
|
r1588 | |||
Michal Klocek
|
r1568 | QList<QSignalSpy*> spyList; | ||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1698 | spyList << new QSignalSpy(m_dataset->domain(series),SIGNAL(updated())); | ||
Michal Klocek
|
r1568 | } | ||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1568 | m_dataset->zoomInDomain(QRect(0, 0, 100, 100), QSize(1000, 1000)); | ||
Jani Honkonen
|
r2100 | foreach (QSignalSpy* spy, spyList) { | ||
Michal Klocek
|
r1568 | TRY_COMPARE(spy->count(), 1); | ||
} | ||||
qDeleteAll(spyList); | ||||
Michal Klocek
|
r771 | } | ||
Michal Klocek
|
r1593 | |||
Michal Klocek
|
r771 | void tst_ChartDataSet::zoomOutDomain_data() | ||
{ | ||||
Michal Klocek
|
r1593 | zoomInDomain_data(); | ||
Michal Klocek
|
r771 | } | ||
void tst_ChartDataSet::zoomOutDomain() | ||||
{ | ||||
Michal Klocek
|
r1593 | QFETCH(bool, sameAxis); | ||
QFETCH(QList<QAbstractSeries*>, seriesList); | ||||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1593 | m_dataset->addSeries(series); | ||
} | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1593 | if (sameAxis) | ||
m_dataset->createDefaultAxes(); | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1593 | QList<QSignalSpy*> spyList; | ||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1698 | spyList << new QSignalSpy(m_dataset->domain(series), SIGNAL(updated())); | ||
Michal Klocek
|
r1593 | } | ||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1593 | m_dataset->zoomOutDomain(QRect(0, 0, 100, 100), QSize(1000, 1000)); | ||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2100 | foreach (QSignalSpy* spy, spyList) { | ||
Michal Klocek
|
r1593 | TRY_COMPARE(spy->count(), 1); | ||
} | ||||
qDeleteAll (spyList); | ||||
Michal Klocek
|
r771 | } | ||
void tst_ChartDataSet::scrollDomain_data() | ||||
{ | ||||
Michal Klocek
|
r1593 | zoomInDomain_data(); | ||
Michal Klocek
|
r771 | } | ||
void tst_ChartDataSet::scrollDomain() | ||||
{ | ||||
Michal Klocek
|
r1593 | QFETCH(bool, sameAxis); | ||
QFETCH(QList<QAbstractSeries*>, seriesList); | ||||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1593 | m_dataset->addSeries(series); | ||
} | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1593 | if (sameAxis) | ||
m_dataset->createDefaultAxes(); | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1593 | QList<QSignalSpy*> spyList; | ||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2100 | foreach (QAbstractSeries* series, seriesList) { | ||
Michal Klocek
|
r1593 | spyList | ||
<< new QSignalSpy(m_dataset->domain(series), | ||||
Michal Klocek
|
r1698 | SIGNAL(updated())); | ||
Michal Klocek
|
r1593 | } | ||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1593 | m_dataset->scrollDomain(10, 10, QSize(1000, 1000)); | ||
Michal Klocek
|
r771 | |||
Jani Honkonen
|
r2100 | foreach (QSignalSpy* spy, spyList) { | ||
Michal Klocek
|
r1593 | TRY_COMPARE(spy->count(), 1); | ||
} | ||||
Michal Klocek
|
r771 | |||
Michal Klocek
|
r1593 | qDeleteAll(spyList); | ||
Michal Klocek
|
r771 | } | ||
Michal Klocek
|
r1593 | |||
Michal Klocek
|
r224 | QTEST_MAIN(tst_ChartDataSet) | ||
#include "tst_chartdataset.moc" | ||||
Michal Klocek
|
r1977 | #endif | ||