/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Charts module of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:GPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3 or (at your option) any later version ** approved by the KDE Free Qt Foundation. The licenses are as published by ** the Free Software Foundation and appearing in the file LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #include #include #include QT_CHARTS_USE_NAMESPACE class tst_QCandlestickSet : public QObject { Q_OBJECT public Q_SLOTS: void initTestCase(); void cleanupTestCase(); void init(); void cleanup(); private Q_SLOTS: void qCandlestickSet_data(); void qCandlestickSet(); void timestamp_data(); void timestamp(); void open_data(); void open(); void high_data(); void high(); void low_data(); void low(); void close_data(); void close(); void brush(); void pen(); private: QCandlestickSet* m_candlestickSet; }; void tst_QCandlestickSet::initTestCase() { } void tst_QCandlestickSet::cleanupTestCase() { QTest::qWait(1); // Allow final deleteLaters to run } void tst_QCandlestickSet::init() { m_candlestickSet = new QCandlestickSet(QDateTime::currentMSecsSinceEpoch()); m_candlestickSet->setOpen(2345.67); m_candlestickSet->setHigh(4567.89); m_candlestickSet->setLow(1234.56); m_candlestickSet->setClose(3456.78); } void tst_QCandlestickSet::cleanup() { delete m_candlestickSet; m_candlestickSet = nullptr; } void tst_QCandlestickSet::qCandlestickSet_data() { QTest::addColumn("timestamp"); QTest::addColumn("expectedTimestamp"); QTest::newRow("timestamp less than zero") << -1.0 << 0.0; QTest::newRow("timestamp equals zero") << 0.0 << 0.0; QTest::newRow("timestamp greater than zero") << 1.0 << 1.0; QTest::newRow("timestamp rounded down") << 4.321 << 4.0; QTest::newRow("timestamp rounded up") << 5.678 << 6.0; } void tst_QCandlestickSet::qCandlestickSet() { QFETCH(qreal, timestamp); QFETCH(qreal, expectedTimestamp); QCandlestickSet candlestickSet(timestamp); QCOMPARE(candlestickSet.timestamp(), expectedTimestamp); } void tst_QCandlestickSet::timestamp_data() { QTest::addColumn("timestamp"); QTest::addColumn("expectedTimestamp"); QTest::newRow("timestamp less than zero") << -1.0 << 0.0; QTest::newRow("timestamp equals zero") << 0.0 << 0.0; QTest::newRow("timestamp greater than zero") << 1.0 << 1.0; QTest::newRow("timestamp rounded down") << 4.321 << 4.0; QTest::newRow("timestamp rounded up") << 5.678 << 6.0; } void tst_QCandlestickSet::timestamp() { QFETCH(qreal, timestamp); QFETCH(qreal, expectedTimestamp); QSignalSpy spy(m_candlestickSet, SIGNAL(timestampChanged())); m_candlestickSet->setTimestamp(timestamp); QCOMPARE(m_candlestickSet->timestamp(), expectedTimestamp); QCOMPARE(spy.count(), 1); // Try set same timestamp value m_candlestickSet->setTimestamp(expectedTimestamp); QCOMPARE(m_candlestickSet->timestamp(), expectedTimestamp); QCOMPARE(spy.count(), 1); } void tst_QCandlestickSet::open_data() { QTest::addColumn("open"); QTest::newRow("open less than zero") << -1.234; QTest::newRow("open equals zero") << 0.0; QTest::newRow("open greater than zero") << 1.234; } void tst_QCandlestickSet::open() { QFETCH(qreal, open); QSignalSpy spy(m_candlestickSet, SIGNAL(openChanged())); m_candlestickSet->setOpen(open); QCOMPARE(m_candlestickSet->open(), open); QCOMPARE(spy.count(), 1); // Try set same open value m_candlestickSet->setOpen(open); QCOMPARE(m_candlestickSet->open(), open); QCOMPARE(spy.count(), 1); } void tst_QCandlestickSet::high_data() { QTest::addColumn("high"); QTest::newRow("high less than zero") << -1.234; QTest::newRow("high equals zero") << 0.0; QTest::newRow("high greater than zero") << 1.234; } void tst_QCandlestickSet::high() { QFETCH(qreal, high); QSignalSpy spy(m_candlestickSet, SIGNAL(highChanged())); m_candlestickSet->setHigh(high); QCOMPARE(m_candlestickSet->high(), high); QCOMPARE(spy.count(), 1); // Try set same high value m_candlestickSet->setHigh(high); QCOMPARE(m_candlestickSet->high(), high); QCOMPARE(spy.count(), 1); } void tst_QCandlestickSet::low_data() { QTest::addColumn("low"); QTest::newRow("low less than zero") << -1.234; QTest::newRow("low equals zero") << 0.0; QTest::newRow("low greater than zero") << 1.234; } void tst_QCandlestickSet::low() { QFETCH(qreal, low); QSignalSpy spy(m_candlestickSet, SIGNAL(lowChanged())); m_candlestickSet->setLow(low); QCOMPARE(m_candlestickSet->low(), low); QCOMPARE(spy.count(), 1); // Try set same low value m_candlestickSet->setLow(low); QCOMPARE(m_candlestickSet->low(), low); QCOMPARE(spy.count(), 1); } void tst_QCandlestickSet::close_data() { QTest::addColumn("close"); QTest::newRow("close less than zero") << -1.234; QTest::newRow("close equals zero") << 0.0; QTest::newRow("close greater than zero") << 1.234; } void tst_QCandlestickSet::close() { QFETCH(qreal, close); QSignalSpy spy(m_candlestickSet, SIGNAL(closeChanged())); m_candlestickSet->setClose(close); QCOMPARE(m_candlestickSet->close(), close); QCOMPARE(spy.count(), 1); // Try set same close value m_candlestickSet->setClose(close); QCOMPARE(m_candlestickSet->close(), close); QCOMPARE(spy.count(), 1); } void tst_QCandlestickSet::brush() { QSignalSpy spy(m_candlestickSet, SIGNAL(brushChanged())); QCOMPARE(m_candlestickSet->brush(), QBrush(Qt::NoBrush)); m_candlestickSet->setBrush(QBrush(Qt::NoBrush)); QCOMPARE(m_candlestickSet->brush(), QBrush(Qt::NoBrush)); QCOMPARE(spy.count(), 0); QBrush brush(QColor(128, 128, 128, 128)); m_candlestickSet->setBrush(brush); QCOMPARE(m_candlestickSet->brush(), brush); QCOMPARE(spy.count(), 1); // Try set same brush m_candlestickSet->setBrush(brush); QCOMPARE(m_candlestickSet->brush(), brush); QCOMPARE(spy.count(), 1); } void tst_QCandlestickSet::pen() { QSignalSpy spy(m_candlestickSet, SIGNAL(penChanged())); QCOMPARE(m_candlestickSet->pen(), QPen(Qt::NoPen)); m_candlestickSet->setPen(QPen(Qt::NoPen)); QCOMPARE(m_candlestickSet->pen(), QPen(Qt::NoPen)); QCOMPARE(spy.count(), 0); QPen pen(QColor(128, 128, 128, 128)); m_candlestickSet->setPen(pen); QCOMPARE(m_candlestickSet->pen(), pen); QCOMPARE(spy.count(), 1); // Try set same pen m_candlestickSet->setPen(pen); QCOMPARE(m_candlestickSet->pen(), pen); QCOMPARE(spy.count(), 1); } QTEST_GUILESS_MAIN(tst_QCandlestickSet) #include "tst_qcandlestickset.moc"