File indexing completed on 2024-04-28 15:29:28
0001 /* 0002 SPDX-FileCopyrightText: 2012 Benjamin Port <benjamin.port@ben2367.fr> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include <kplotobject.h> 0008 #include <kplotpoint.h> 0009 0010 #include <QBrush> 0011 #include <QPen> 0012 #include <QTest> 0013 0014 static const QColor DEFAULT_COLOR = Qt::blue; 0015 static const QColor MODIFIED_COLOR = Qt::red; 0016 0017 static const double DEFAULT_WIDTH = 2; 0018 0019 static const QBrush DEFAULT_BRUSH = QBrush(DEFAULT_COLOR); 0020 static const QBrush MODIFIED_BRUSH = QBrush(MODIFIED_COLOR); 0021 0022 static const QPen DEFAULT_PEN = QPen(DEFAULT_COLOR, 1); 0023 static const QPen MODIFIED_PEN = QPen(MODIFIED_COLOR, 2); 0024 0025 static const KPlotObject::PlotType DEFAULT_PLOT_TYPE = KPlotObject::Bars; 0026 0027 static const KPlotObject::PointStyle DEFAULT_POINT_STYLE = KPlotObject::Asterisk; 0028 0029 class KPlotObjectTest : public QObject 0030 { 0031 Q_OBJECT 0032 0033 private Q_SLOTS: 0034 void initTestCase() 0035 { 0036 m_kPlotObject = new KPlotObject(DEFAULT_COLOR, DEFAULT_PLOT_TYPE, DEFAULT_WIDTH, DEFAULT_POINT_STYLE); 0037 } 0038 0039 void cleanupTestCase() 0040 { 0041 delete m_kPlotObject; 0042 } 0043 0044 void testBrush() 0045 { 0046 // verify default brush 0047 QCOMPARE(m_kPlotObject->brush(), DEFAULT_BRUSH); 0048 0049 // change brush 0050 m_kPlotObject->setBrush(MODIFIED_BRUSH); 0051 QCOMPARE(m_kPlotObject->brush(), MODIFIED_BRUSH); 0052 } 0053 0054 void testBarBrush() 0055 { 0056 // verify default brush 0057 QCOMPARE(m_kPlotObject->barBrush(), DEFAULT_BRUSH); 0058 0059 // change brush 0060 m_kPlotObject->setBarBrush(MODIFIED_BRUSH); 0061 QCOMPARE(m_kPlotObject->barBrush(), MODIFIED_BRUSH); 0062 } 0063 0064 void testPen() 0065 { 0066 // test default pen 0067 QCOMPARE(m_kPlotObject->pen(), DEFAULT_PEN); 0068 0069 // change pen 0070 m_kPlotObject->setPen(MODIFIED_PEN); 0071 QCOMPARE(m_kPlotObject->pen(), MODIFIED_PEN); 0072 } 0073 0074 void testLinePen() 0075 { 0076 // test default pen 0077 QCOMPARE(m_kPlotObject->linePen(), DEFAULT_PEN); 0078 0079 // change pen 0080 m_kPlotObject->setLinePen(MODIFIED_PEN); 0081 QCOMPARE(m_kPlotObject->linePen(), MODIFIED_PEN); 0082 } 0083 0084 void testBarPen() 0085 { 0086 // test default pen 0087 QCOMPARE(m_kPlotObject->barPen(), DEFAULT_PEN); 0088 0089 // change pen 0090 m_kPlotObject->setBarPen(MODIFIED_PEN); 0091 QCOMPARE(m_kPlotObject->barPen(), MODIFIED_PEN); 0092 } 0093 0094 void testLabelPen() 0095 { 0096 // test default pen 0097 QCOMPARE(m_kPlotObject->labelPen(), DEFAULT_PEN); 0098 0099 // change pen 0100 m_kPlotObject->setLabelPen(MODIFIED_PEN); 0101 QCOMPARE(m_kPlotObject->labelPen(), MODIFIED_PEN); 0102 } 0103 0104 void testSize() 0105 { 0106 // verify default size 0107 QCOMPARE(m_kPlotObject->size(), DEFAULT_WIDTH); 0108 0109 // modify size and test the new one 0110 m_kPlotObject->setSize(3.0); 0111 QCOMPARE(m_kPlotObject->size(), 3.0); 0112 } 0113 0114 void testDefaultPlotType() 0115 { 0116 QCOMPARE(m_kPlotObject->plotTypes(), DEFAULT_PLOT_TYPE); 0117 } 0118 0119 void testShowBars() 0120 { 0121 m_kPlotObject->setShowBars(false); 0122 QVERIFY(!(m_kPlotObject->plotTypes() & KPlotObject::Bars)); 0123 0124 m_kPlotObject->setShowBars(true); 0125 QVERIFY(m_kPlotObject->plotTypes() & KPlotObject::Bars); 0126 } 0127 0128 void testShowLines() 0129 { 0130 m_kPlotObject->setShowLines(false); 0131 QVERIFY(!(m_kPlotObject->plotTypes() & KPlotObject::Lines)); 0132 0133 m_kPlotObject->setShowLines(true); 0134 QVERIFY(m_kPlotObject->plotTypes() & KPlotObject::Lines); 0135 } 0136 0137 void testShowPoints() 0138 { 0139 m_kPlotObject->setShowPoints(false); 0140 QVERIFY(!(m_kPlotObject->plotTypes() & KPlotObject::Points)); 0141 0142 m_kPlotObject->setShowPoints(true); 0143 QVERIFY(m_kPlotObject->plotTypes() & KPlotObject::Points); 0144 } 0145 0146 void testPointStyle() 0147 { 0148 QCOMPARE(m_kPlotObject->pointStyle(), DEFAULT_POINT_STYLE); 0149 0150 m_kPlotObject->setPointStyle(KPlotObject::Star); 0151 QCOMPARE(m_kPlotObject->pointStyle(), KPlotObject::Star); 0152 } 0153 0154 void testAddPoint() 0155 { 0156 // verify list is empty 0157 QCOMPARE(m_kPlotObject->points().size(), 0); 0158 0159 // test: void KPlotObject::addPoint( const QPointF &p, const QString &label, double barWidth ) 0160 m_kPlotObject->addPoint(QPointF(1, 0), QStringLiteral("label1"), 1.0); 0161 QCOMPARE(m_kPlotObject->points().size(), 1); 0162 KPlotPoint *p1 = m_kPlotObject->points().at(0); 0163 QCOMPARE(p1->position(), QPointF(1, 0)); 0164 QCOMPARE(p1->label(), QString::fromLatin1("label1")); 0165 QCOMPARE(p1->barWidth(), 1.0); 0166 0167 // test void KPlotObject::addPoint( KPlotPoint *p ) 0168 KPlotPoint *p2 = new KPlotPoint(2, 2, QStringLiteral("label2"), 2.0); 0169 m_kPlotObject->addPoint(p2); 0170 QCOMPARE(m_kPlotObject->points().size(), 2); 0171 KPlotPoint *p2List = m_kPlotObject->points().at(1); 0172 QCOMPARE(p2, p2List); 0173 delete p2; 0174 0175 // test void KPlotObject::addPoint( double x, double y, const QString &label, double barWidth ) 0176 m_kPlotObject->addPoint(3, 3, QStringLiteral("label3"), 3.0); 0177 QCOMPARE(m_kPlotObject->points().size(), 3); 0178 KPlotPoint *p3 = m_kPlotObject->points().at(2); 0179 QCOMPARE(p3->position(), QPointF(3, 3)); 0180 QCOMPARE(p3->label(), QString::fromLatin1("label3")); 0181 QCOMPARE(p3->barWidth(), 3.0); 0182 } 0183 0184 void testRemovePoint() 0185 { 0186 // currently 3 points 0187 QCOMPARE(m_kPlotObject->points().size(), 3); 0188 0189 KPlotPoint *p1 = m_kPlotObject->points().at(0); 0190 KPlotPoint *p2 = m_kPlotObject->points().at(1); 0191 KPlotPoint *p3 = m_kPlotObject->points().at(2); 0192 0193 QCOMPARE(m_kPlotObject->points().at(0), p1); 0194 QCOMPARE(m_kPlotObject->points().at(1), p2); 0195 QCOMPARE(m_kPlotObject->points().at(2), p3); 0196 0197 m_kPlotObject->removePoint(1); 0198 QCOMPARE(m_kPlotObject->points().size(), 2); 0199 QCOMPARE(m_kPlotObject->points().at(0), p1); 0200 QCOMPARE(m_kPlotObject->points().at(1), p3); 0201 } 0202 0203 void testClearPoints() 0204 { 0205 // currently 2 points 0206 QCOMPARE(m_kPlotObject->points().size(), 2); 0207 m_kPlotObject->clearPoints(); 0208 QCOMPARE(m_kPlotObject->points().size(), 0); 0209 } 0210 0211 private: 0212 KPlotObject *m_kPlotObject; 0213 }; 0214 0215 QTEST_MAIN(KPlotObjectTest) 0216 0217 #include "kplotobjecttest.moc"