File indexing completed on 2024-12-01 09:43:55

0001 /*
0002     File                 : ColumnTest.h
0003     Project              : LabPlot
0004     Description          : Tests for Column
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2021 Martin Marmsoler <martin.marmsoler@gmail.com>
0007     SPDX-FileCopyrightText: 2022 Stefan Gerlach <stefan.gerlach@uni.kn>
0008     SPDX-FileCopyrightText: 2022-2023 Alexander Semke <alexander.semke@web.de>
0009 
0010     SPDX-License-Identifier: GPL-2.0-or-later
0011 */
0012 
0013 #ifndef COLUMNTEST_H
0014 #define COLUMNTEST_H
0015 
0016 #include "../../CommonTest.h"
0017 
0018 class ColumnTest : public CommonTest {
0019     Q_OBJECT
0020 
0021 private Q_SLOTS:
0022     void initTestCase();
0023 
0024     // ranges
0025     void doubleMinimum();
0026     void doubleMaximum();
0027     void integerMinimum();
0028     void integerMaximum();
0029     void bigIntMinimum();
0030     void bigIntMaximum();
0031 
0032     // statistical properties for different column modes
0033     void statisticsDouble(); // only positive double values
0034     void statisticsDoubleNegative(); // contains negative values (> -100)
0035     void statisticsDoubleBigNegative(); // contains big negative values (<= -100)
0036     void statisticsDoubleZero(); // contains zero value
0037     void statisticsInt(); // only positive integer values
0038     void statisticsIntNegative(); // contains negative values (> -100)
0039     void statisticsIntBigNegative(); // contains big negative values (<= -100)
0040     void statisticsIntZero(); // contains zero value
0041     void statisticsIntOverflow(); // check overflow of integer
0042     void statisticsBigInt(); // big ints
0043     void statisticsText();
0044 
0045     void statisticsMaskValues();
0046     void statisticsClearSpreadsheetMasks();
0047 
0048     // generation of column values via a formula
0049     void testFormulaAutoUpdateEnabledResize();
0050     void testFormulaAutoUpdateEnabled();
0051     void testFormulaAutoUpdateDisabled();
0052     void testFormulaAutoResizeEnabled();
0053     void testFormulaAutoResizeDisabled();
0054 
0055     // dictionary related tests for text columns
0056     void testDictionaryIndex();
0057     void testTextFrequencies();
0058 
0059     // performance of save and load
0060     void loadDoubleFromProject();
0061     void loadIntegerFromProject();
0062     void loadBigIntegerFromProject();
0063     void loadTextFromProject();
0064     void loadDateTimeFromProject();
0065     void saveLoadDateTime();
0066 
0067     void testIndexForValue();
0068     void testIndexForValueDoubleVector();
0069 
0070     void testInsertRow();
0071     void testRemoveRow();
0072 
0073     void testFormula();
0074     void testFormulaCell();
0075     void testFormulaCellInvalid();
0076     void testFormulaCellConstExpression();
0077     void testFormulaCellMulti();
0078     void testFormulasmmin();
0079     void testFormulasmmax();
0080     void testFormulasma();
0081 
0082     void testFormulasMinColumnInvalid();
0083 
0084     void testFormulasSize();
0085     void testFormulasMin();
0086     void testFormulasMax();
0087     void testFormulasMean();
0088     void testFormulasMedian();
0089     void testFormulasStdev();
0090     void testFormulasVar();
0091     void testFormulasGm();
0092     void testFormulasHm();
0093     void testFormulasChm();
0094     void testFormulasStatisticsMode();
0095     void testFormulasQuartile1();
0096     void testFormulasQuartile3();
0097     void testFormulasIqr();
0098     void testFormulasPercentile1();
0099     void testFormulasPercentile5();
0100     void testFormulasPercentile10();
0101     void testFormulasPercentile90();
0102     void testFormulasPercentile95();
0103     void testFormulasPercentile99();
0104     void testFormulasTrimean();
0105     void testFormulasMeandev();
0106     void testFormulasMeandevmedian();
0107     void testFormulasMediandev();
0108     void testFormulasSkew();
0109     void testFormulasKurt();
0110     void testFormulasEntropy();
0111     void testFormulasQuantile();
0112     void testFormulasPercentile();
0113 
0114     void clearContentNoFormula();
0115     void clearContentFormula();
0116 
0117     void testRowCountMonotonIncrease();
0118     void testRowCountMonotonDecrease();
0119     void testRowCountNonMonoton();
0120     void testRowCountDateTime();
0121     void testRowCountDateTimeMonotonDecrease();
0122 
0123     void testRowCountValueLabels();
0124     void testRowCountValueLabelsDateTime();
0125 };
0126 
0127 #endif // COLUMNTEST_H