File indexing completed on 2025-01-19 03:42:37
0001 /* 0002 * This file is part of KQuickCharts 0003 * SPDX-FileCopyrightText: 2019 Arjen Hiemstra <ahiemstra@heimr.nl> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #include <QTest> 0009 0010 #include "datasource/ArraySource.h" 0011 0012 class ArraySourceTest : public QObject 0013 { 0014 Q_OBJECT 0015 0016 private Q_SLOTS: 0017 void testCreate() 0018 { 0019 // Basic creation should create an empty source. 0020 auto source = new ArraySource{}; 0021 0022 QCOMPARE(source->itemCount(), 0); 0023 QCOMPARE(source->item(0), QVariant{}); 0024 QCOMPARE(source->minimum(), QVariant{}); 0025 QCOMPARE(source->maximum(), QVariant{}); 0026 } 0027 0028 void testWithArray_data() 0029 { 0030 QTest::addColumn<QVariantList>("array"); 0031 QTest::addColumn<int>("itemCount"); 0032 QTest::addColumn<QVariant>("firstItem"); 0033 QTest::addColumn<QVariant>("lastItem"); 0034 QTest::addColumn<QVariant>("minimum"); 0035 QTest::addColumn<QVariant>("maximum"); 0036 0037 QTest::newRow("simple ints") << QVariantList{0, 1, 2, 3, 4} << 5 << QVariant{0} << QVariant{4} << QVariant{0} << QVariant{4}; 0038 QTest::newRow("random ints") << QVariantList{-3, 6, 4, 9, 4} << 5 << QVariant{-3} << QVariant{4} << QVariant{-3} << QVariant{9}; 0039 QTest::newRow("floats") << QVariantList{2.56, 4.45, 2.5, 5.3} << 4 << QVariant{2.56} << QVariant{5.3} << QVariant{2.5} << QVariant{5.3}; 0040 } 0041 0042 void testWithArray() 0043 { 0044 auto source = new ArraySource{}; 0045 QFETCH(QVariantList, array); 0046 source->setArray(array); 0047 0048 QFETCH(int, itemCount); 0049 QCOMPARE(source->itemCount(), itemCount); 0050 0051 QFETCH(QVariant, firstItem); 0052 QCOMPARE(source->item(0), firstItem); 0053 0054 QFETCH(QVariant, lastItem); 0055 QCOMPARE(source->item(itemCount - 1), lastItem); 0056 0057 QCOMPARE(source->item(itemCount), QVariant{}); 0058 0059 QFETCH(QVariant, minimum); 0060 QCOMPARE(source->minimum(), minimum); 0061 0062 QFETCH(QVariant, maximum); 0063 QCOMPARE(source->maximum(), maximum); 0064 } 0065 0066 void testWrap_data() 0067 { 0068 QTest::addColumn<QVariantList>("array"); 0069 QTest::addColumn<int>("itemCount"); 0070 QTest::addColumn<QVariant>("firstItem"); 0071 QTest::addColumn<QVariant>("lastItem"); 0072 0073 QTest::newRow("simple ints") << QVariantList{0, 1, 2, 3, 4} << 5 << QVariant{0} << QVariant{4}; 0074 QTest::newRow("random ints") << QVariantList{-3, 6, 4, 9, 4} << 5 << QVariant{-3} << QVariant{4}; 0075 QTest::newRow("floats") << QVariantList{2.56, 4.45, 2.5, 5.3} << 4 << QVariant{2.56} << QVariant{5.3}; 0076 } 0077 0078 void testWrap() 0079 { 0080 auto source = new ArraySource{}; 0081 QFETCH(QVariantList, array); 0082 source->setArray(array); 0083 source->setWrap(true); 0084 0085 QFETCH(int, itemCount); 0086 QFETCH(QVariant, firstItem); 0087 QFETCH(QVariant, lastItem); 0088 0089 QCOMPARE(source->item(0), firstItem); 0090 QCOMPARE(source->item(itemCount - 1), lastItem); 0091 QCOMPARE(source->item(itemCount), firstItem); 0092 QCOMPARE(source->item(itemCount * 2 - 1), lastItem); 0093 0094 QCOMPARE(source->item(itemCount * 99), firstItem); 0095 } 0096 }; 0097 0098 QTEST_GUILESS_MAIN(ArraySourceTest) 0099 0100 #include "ArraySourceTest.moc"