File indexing completed on 2024-05-12 04:20:15
0001 /** 0002 * SPDX-FileCopyrightText: 2001-2015 Klaralvdalens Datakonsult AB. All rights reserved. 0003 * 0004 * This file is part of the KD Chart library. 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include <QtTest/QtTest> 0010 #include <KChartChart> 0011 #include <KChartGlobal> 0012 #include <KChartBarDiagram> 0013 #include <KChartCartesianCoordinatePlane> 0014 #include <KChartMeasure> 0015 0016 #include <TableModel.h> 0017 0018 using namespace KChart; 0019 0020 class TestMeasure : public QObject { 0021 Q_OBJECT 0022 private Q_SLOTS: 0023 0024 void initTestCase() 0025 { 0026 m_chart = new Chart(nullptr); 0027 m_model = new TableModel( this ); 0028 m_model->loadFromCSV( ":/data" ); 0029 m_bars = new BarDiagram(); 0030 m_bars->setModel( m_model ); 0031 m_chart->coordinatePlane()->replaceDiagram( m_bars ); 0032 m_chart->setGeometry(100,100, 300,200); 0033 m_chart->show(); 0034 } 0035 0036 void testMeasureCalculationModeAbsolute() 0037 { 0038 KChart::Measure m( 100.0 ); 0039 m.setCalculationMode( KChartEnums::MeasureCalculationModeAbsolute ); 0040 QCOMPARE( 0041 m.calculatedValue(nullptr, KChartEnums::MeasureOrientationAuto), 0042 100.0 ); 0043 } 0044 0045 void testMeasureCalculationModeRelativeHorizontalOrientation() 0046 { 0047 KChart::Measure m( 0048 100.0, 0049 KChartEnums::MeasureCalculationModeRelative, 0050 KChartEnums::MeasureOrientationHorizontal ); 0051 m.setReferenceArea( m_chart ); 0052 QCOMPARE( 0053 m.calculatedValue(nullptr, KChartEnums::MeasureOrientationAuto), 0054 m_chart->size().width() / 10.0 ); 0055 } 0056 0057 void testMeasureCalculationModeRelativeVerticalOrientation() 0058 { 0059 KChart::Measure m( 0060 100.0, 0061 KChartEnums::MeasureCalculationModeRelative, 0062 KChartEnums::MeasureOrientationVertical ); 0063 m.setReferenceArea( m_chart ); 0064 QCOMPARE( 0065 m.calculatedValue(nullptr, KChartEnums::MeasureOrientationAuto), 0066 m_chart->size().height() / 10.0 ); 0067 } 0068 0069 void testMeasureCalculationModeAuto() 0070 { 0071 KChart::Measure m( 100.0 ); 0072 m.setCalculationMode( KChartEnums::MeasureCalculationModeAuto ); 0073 QCOMPARE( 0074 m.calculatedValue(m_chart, KChartEnums::MeasureOrientationHorizontal), 0075 m_chart->size().width() / 10.0 ); 0076 QCOMPARE( 0077 m.calculatedValue(m_chart, KChartEnums::MeasureOrientationVertical), 0078 m_chart->size().height() / 10.0 ); 0079 QCOMPARE( 0080 m.calculatedValue(m_chart, KChartEnums::MeasureOrientationMinimum), 0081 qMin( m_chart->size().width(), m_chart->size().height() ) / 10.0 ); 0082 QCOMPARE( 0083 m.calculatedValue(m_chart, KChartEnums::MeasureOrientationMaximum), 0084 qMax( m_chart->size().width(), m_chart->size().height() ) / 10.0 ); 0085 } 0086 0087 void testMeasureCalculationModeAutoArea() 0088 { 0089 KChart::Measure m( 0090 100.0, 0091 KChartEnums::MeasureCalculationModeAutoArea, 0092 KChartEnums::MeasureOrientationHorizontal ); 0093 QCOMPARE( 0094 m.calculatedValue(m_chart, KChartEnums::MeasureOrientationAuto), 0095 m_chart->size().width() / 10.0 ); 0096 m.setReferenceOrientation( KChartEnums::MeasureOrientationVertical ); 0097 QCOMPARE( 0098 m.calculatedValue(m_chart, KChartEnums::MeasureOrientationAuto), 0099 m_chart->size().height() / 10.0 ); 0100 m.setReferenceOrientation( KChartEnums::MeasureOrientationMinimum ); 0101 QCOMPARE( 0102 m.calculatedValue(m_chart, KChartEnums::MeasureOrientationAuto), 0103 qMin( m_chart->size().width(), m_chart->size().height() ) / 10.0 ); 0104 m.setReferenceOrientation( KChartEnums::MeasureOrientationMaximum ); 0105 QCOMPARE( 0106 m.calculatedValue(m_chart, KChartEnums::MeasureOrientationAuto), 0107 qMax( m_chart->size().width(), m_chart->size().height() ) / 10.0 ); 0108 } 0109 0110 void testMeasureAutoOrientation() 0111 { 0112 KChart::Measure m( 0113 100.0, 0114 KChartEnums::MeasureCalculationModeAutoOrientation, 0115 KChartEnums::MeasureOrientationAuto ); 0116 m.setReferenceArea( m_chart ); 0117 QCOMPARE( 0118 m.calculatedValue(nullptr, KChartEnums::MeasureOrientationHorizontal), 0119 m_chart->size().width() / 10.0 ); 0120 QCOMPARE( 0121 m.calculatedValue(nullptr, KChartEnums::MeasureOrientationVertical), 0122 m_chart->size().height() / 10.0 ); 0123 QCOMPARE( 0124 m.calculatedValue(nullptr, KChartEnums::MeasureOrientationMinimum), 0125 qMin( m_chart->size().width(), m_chart->size().height() ) / 10.0 ); 0126 QCOMPARE( 0127 m.calculatedValue(nullptr, KChartEnums::MeasureOrientationMaximum), 0128 qMax( m_chart->size().width(), m_chart->size().height() ) / 10.0 ); 0129 } 0130 0131 0132 void cleanupTestCase() 0133 { 0134 } 0135 0136 private: 0137 Chart *m_chart; 0138 BarDiagram *m_bars; 0139 TableModel *m_model; 0140 0141 }; 0142 0143 QTEST_MAIN(TestMeasure) 0144 0145 #include "main.moc"