// Copyright (C) 2024 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #include #include class tst_seriestheme : public QObject { Q_OBJECT private slots: void initTestCase(); void cleanupTestCase(); void init(); void cleanup(); void construct(); void initialProperties(); void initializeProperties(); void invalidProperties(); void setResetSeries(); private: QSeriesTheme *m_theme; }; void tst_seriestheme::initTestCase() {} void tst_seriestheme::cleanupTestCase() {} void tst_seriestheme::init() { m_theme = new QSeriesTheme(); } void tst_seriestheme::cleanup() { delete m_theme; } void tst_seriestheme::construct() { QSeriesTheme *theme = new QSeriesTheme(); QVERIFY(theme); delete theme; } void tst_seriestheme::initialProperties() { QVERIFY(m_theme); QCOMPARE(m_theme->colorTheme(), QSeriesTheme::SeriesColorTheme::SeriesTheme1); QCOMPARE(m_theme->colors(), {}); QCOMPARE(m_theme->borderColors(), {}); QCOMPARE(m_theme->borderWidth(), 0); } void tst_seriestheme::initializeProperties() { QVERIFY(m_theme); QList colors = {"#ff0000", "#ee0000"}; QList bordercolors = {"#ffff00", "#eeee00"}; m_theme->setColorTheme(QSeriesTheme::SeriesColorTheme::SeriesTheme2); m_theme->setColors(colors); // override colors m_theme->setBorderColors(bordercolors); // override bordercolors m_theme->setBorderWidth(1.0); QCOMPARE(m_theme->colorTheme(), QSeriesTheme::SeriesColorTheme::SeriesTheme2); QCOMPARE(m_theme->colors(), colors); QCOMPARE(m_theme->borderColors(), bordercolors); QCOMPARE(m_theme->borderWidth(), 1.0); } void tst_seriestheme::invalidProperties() { QVERIFY(m_theme); m_theme->setBorderWidth(-1.0); QCOMPARE(m_theme->borderWidth(), 0.0); } void tst_seriestheme::setResetSeries() { QVERIFY(m_theme); QList colors1 = {"#3d9c73", "#63b179", "#88c580", "#aed987", "#d6ec91", "#ffff9d", "#fee17e", "#fcc267", "#f7a258", "#ef8250", "#e4604e", "#d43d51"}; QList bordercolors1 = {"#ffffff"}; QList colors2 = {"#00429d", "#485ba8", "#6c77b3", "#8a94be", "#a4b2ca", "#b9d4d6", "#ffd3bf", "#ffa59e", "#f4777f", "#dd4c65", "#be214d", "#93003a"}; QList bordercolors2 = {"#ffffff"}; // Count QCOMPARE(m_theme->graphSeriesCount(), 0); // Set theme to SeriesTheme1 m_theme->setColorTheme(QSeriesTheme::SeriesColorTheme::SeriesTheme1); QCOMPARE(m_theme->colors(), colors1); QCOMPARE(m_theme->borderColors(), bordercolors1); QCOMPARE(m_theme->graphSeriesColor(5), "#ff3d9c73"); // 0 series, this should return the first color // Set theme to SeriesTheme2 m_theme->setColorTheme(QSeriesTheme::SeriesColorTheme::SeriesTheme2); QCOMPARE(m_theme->colors(), colors2); QCOMPARE(m_theme->borderColors(), bordercolors2); QCOMPARE(m_theme->indexColorFrom(m_theme->colors(), 2), "#ff00429d"); // 0 series, this should return the first color // Reset theme m_theme->resetColorTheme(); QCOMPARE(m_theme->colorTheme(), QSeriesTheme::SeriesColorTheme::SeriesTheme1); QCOMPARE(m_theme->colors(), colors1); QCOMPARE(m_theme->borderColors(), bordercolors1); // Change series count m_theme->setGraphSeriesCount(12); QCOMPARE(m_theme->graphSeriesCount(), 12); QCOMPARE(m_theme->graphSeriesColor(5), "#ffffff9d"); QCOMPARE(m_theme->graphSeriesBorderColor(0), "#ffffffff"); QCOMPARE(m_theme->indexColorFrom(m_theme->colors(), 2), "#ff88c580"); } QTEST_MAIN(tst_seriestheme) #include "tst_seriestheme.moc"