File indexing completed on 2024-05-12 16:45:27

0001 /***************************************************************************
0002  * SPDX-FileCopyrightText: 2022 S. MANKOWSKI stephane@mankowski.fr
0003  * SPDX-FileCopyrightText: 2022 G. DE BURE support@mankowski.fr
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  ***************************************************************************/
0006 /** @file
0007  * This file is a test for SKGTableWithGraph component.
0008  *
0009  * @author Stephane MANKOWSKI / Guillaume DE BURE
0010  */
0011 #include "skgtesttablewithgraph.h"
0012 #include "skgtablewithgraph.h"
0013 #include "skgtestmacro.h"
0014 
0015 void SKGTESTTableWithGraph::Test()
0016 {
0017     KLocalizedString::setApplicationDomain("skrooge");
0018 
0019     SKGTableWithGraph graph(nullptr);
0020 
0021     SKGStringListList data;
0022 
0023     data.append(QStringList() << QStringLiteral("Category") << QStringLiteral("2013-01") << QStringLiteral("2013-02") << QStringLiteral("2013-03") << QStringLiteral("2013-04") << QStringLiteral("2013-05") << QStringLiteral("2013-06"));
0024     data.append(QStringList() << QStringLiteral("Auto") << QStringLiteral("-50") << QStringLiteral("-40.5") << QStringLiteral("-40") << QStringLiteral("-60") << QStringLiteral("-70") << QStringLiteral("-100"));
0025     data.append(QStringList() << QStringLiteral("Food") << QStringLiteral("-510.0") << QStringLiteral("-520") << QStringLiteral("-530.55") << QLatin1String("") << QStringLiteral("-535") << QStringLiteral("-520"));
0026     data.append(QStringList() << QStringLiteral("s1") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0027     data.append(QStringList() << QStringLiteral("s2") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0028     data.append(QStringList() << QStringLiteral("s3") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0029     data.append(QStringList() << QStringLiteral("s4") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0030     data.append(QStringList() << QStringLiteral("s5") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0031     data.append(QStringList() << QStringLiteral("s6") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0032     data.append(QStringList() << QStringLiteral("s7") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0033     data.append(QStringList() << QStringLiteral("s8") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0034     data.append(QStringList() << QStringLiteral("s9") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0035     data.append(QStringList() << QStringLiteral("s10") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0036     data.append(QStringList() << QStringLiteral("s11") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0037     data.append(QStringList() << QStringLiteral("s12") << QStringLiteral("1") << QStringLiteral("2") << QStringLiteral("3") << QLatin1String("") << QStringLiteral("4") << QStringLiteral("5"));
0038 
0039     SKGServices::SKGUnitInfo info1;
0040     info1.Symbol = 'P';
0041     info1.Name = 'P';
0042     info1.Date = QDate::currentDate();
0043     info1.NbDecimal = 2;
0044     info1.Value = 1;
0045 
0046     SKGServices::SKGUnitInfo info2;
0047     info2.Symbol = 'S';
0048     info2.Name = 'S';
0049     info2.Date = QDate::currentDate();
0050     info2.NbDecimal = 4;
0051     info2.Value = 0.5;
0052     graph.setData(data, info1, info2);
0053 
0054     graph.setBackgroundColor(Qt::black);
0055     QCOMPARE(graph.isGraphVisible(), true);
0056     QCOMPARE(graph.isTableVisible(), true);
0057     QCOMPARE(graph.isTextReportVisible(), false);
0058     QCOMPARE(graph.isGraphTypeSelectorVisible(), true);
0059 
0060     QCOMPARE(graph.switchLegendVisibility(), true);
0061 
0062     QCOMPARE(graph.switchLinearRegressionVisibility(), false);
0063     QCOMPARE(graph.switchLinearRegressionVisibility(), true);
0064 
0065     QCOMPARE(graph.switchLimitsVisibility(), false);
0066     QCOMPARE(graph.switchLimitsVisibility(), true);
0067 
0068     QCOMPARE(graph.swithOriginVisibility(), false);
0069     QCOMPARE(graph.swithOriginVisibility(), true);
0070 
0071     QCOMPARE(graph.getAdditionalDisplayMode(), SKGTableWithGraph::ALL);
0072 
0073     graph.setShadowVisible(true);
0074     QCOMPARE(graph.isShadowVisible(), true);
0075 
0076     graph.setShadowVisible(false);
0077     QCOMPARE(graph.isShadowVisible(), false);
0078 
0079     graph.setSelectable(true);
0080     QCOMPARE(graph.isSelectable(), true);
0081 
0082     graph.setSelectable(false);
0083     QCOMPARE(graph.isSelectable(), false);
0084 
0085     for (int i = 0; i < 9; ++i) {
0086         graph.setGraphType(static_cast<SKGTableWithGraph::GraphType>(i));
0087         QCOMPARE(graph.getGraphType(), static_cast<SKGTableWithGraph::GraphType>(i));
0088         QTest::qWait(1000);
0089         graph.graph()->exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGGraphicsView_" + SKGServices::intToString(i) + ".png");
0090     }
0091 
0092     // Graph
0093     QTest::qWait(2000);
0094 
0095     graph.resetColors();
0096     SKGGraphicsView* g = graph.graph();
0097     g->onCopy();
0098     g->onSwitchToolBarVisibility();
0099     g->onSwitchToolBarVisibility();
0100     g->exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGGraphicsView.svg");
0101     g->exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGGraphicsView.pdf");
0102     g->exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGGraphicsView.jpeg");
0103     g->setAntialiasing(false);
0104     g->setAntialiasing(true);
0105 
0106     SKGShow* show = graph.getShowWidget();
0107     show->setState(QStringLiteral("text"));
0108     show->getMode();
0109     show->setDisplayTitle(true);
0110     QCOMPARE(show->getDisplayTitle(), true);
0111     show->setDisplayTitle(false);
0112     QCOMPARE(show->getDisplayTitle(), false);
0113 
0114     /*QCOMPARE(graph.isGraphVisible(), true);
0115     QCOMPARE(graph.isTableVisible(), true);
0116     QCOMPARE(graph.isTextReportVisible(), true);*/
0117 
0118     SKGWebView* t = graph.textReport();
0119     QTest::qWait(2000);
0120     t->onZoomIn();
0121     t->onZoomOriginal();
0122     t->onZoomOut();
0123     t->exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGWebView.odt");
0124     t->exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGWebView.pdf");
0125     t->exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGWebView.html");
0126     t->exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGWebView.htm");
0127     t->exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGWebView.png");
0128 
0129     graph.exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGTableWithGraph.csv");
0130     graph.exportInFile(SKGTest::getTestPath(QStringLiteral("OUT")) % "/skgtesttablewithgraph/SKGTableWithGraph.txt");
0131 
0132     graph.getTable();
0133 }
0134 
0135 QTEST_MAIN(SKGTESTTableWithGraph)
0136