File indexing completed on 2024-04-28 03:48:04

0001 /*
0002     File                 : FitTest.h
0003     Project              : LabPlot
0004     Description          : Tests for data fitting
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2017 Alexander Semke <alexander.semke@web.de>
0007     SPDX-FileCopyrightText: 2018-2021 Stefan Gerlach <stefan.gerlach@uni.kn>
0008 
0009     SPDX-License-Identifier: GPL-2.0-or-later
0010 */
0011 #ifndef FITTEST_H
0012 #define FITTEST_H
0013 
0014 #include <../AnalysisTest.h>
0015 
0016 class FitTest : public AnalysisTest {
0017     Q_OBJECT
0018 
0019 private Q_SLOTS:
0020     // linear regression (see NIST/linear data)
0021     void testLinearNorris();
0022     void testLinearPontius();
0023     void testLinearNoInt1(); // using custom model
0024     void testLinearNoInt1_2(); // using polynomial model with fixed parameter
0025     void testLinearNoInt2(); // using custom model
0026     void testLinearNoInt2_2(); // using polynomial model with fixed parameter
0027     void testLinearFilip();
0028 
0029     void testLinearWampler1();
0030     void testLinearWampler2();
0031     void testLinearWampler3();
0032     void testLinearWampler4();
0033     void testLinearWampler5();
0034 
0035     void testLinearWP_OLS();
0036     void testLinearR_lm2();
0037 
0038     // non-linear regression
0039     void testNonLinearMisra1a();
0040     void testNonLinearMisra1a_2(); // second set of start values
0041     void testNonLinearMisra1a_3(); // third set of start values
0042     void testNonLinearMisra1b();
0043     void testNonLinearMisra1b_2(); // second set of start values
0044     void testNonLinearMisra1b_3(); // third set of start values
0045     void testNonLinearMisra1c();
0046     void testNonLinearMisra1c_2(); // second set of start values
0047     void testNonLinearMisra1c_3(); // third set of start values
0048     void testNonLinearMisra1d();
0049     void testNonLinearMisra1d_2(); // second set of start values
0050     void testNonLinearMisra1d_3(); // third set of start values
0051     void testNonLinearMGH09();
0052     void testNonLinearMGH09_2(); // second set of start values
0053     void testNonLinearMGH09_3(); // third set of start values
0054     void testNonLinearMGH10();
0055     void testNonLinearMGH10_2(); // second set of start values
0056     void testNonLinearMGH10_3(); // third set of start values
0057     void testNonLinearRat43();
0058     void testNonLinearRat43_2(); // second set of start values
0059     void testNonLinearRat43_3(); // third set of start values
0060 
0061     void testNonLinearMichaelis_Menten();
0062 
0063     // fits with weights
0064     void testNonLinearGP_lcdemo();
0065     void testLinearGP_PY_noerror();
0066     void testLinearGP_PY_yerror_polynomial();
0067     void testLinearGP_PY_yerror_custom();
0068     void testLinearGP_PY_xyerror_polynomial();
0069     void testLinearGP_PY_xyerror_custom();
0070     void testLinearGP_PY_xyerror_custom_instrumental_weight();
0071     void testLinearGP_PY_xyerror_custom_inverse_weight();
0072 
0073     void testNonLinear_yerror_zero_bug408535();
0074 
0075     // histogram fit
0076     void testHistogramFit();
0077     void testHistogramGaussianML();
0078     void testHistogramExponentialML();
0079     void testHistogramLaplaceML();
0080     void testHistogramCauchyML();
0081     void testHistogramLognormalML();
0082     void testHistogramPoissonML();
0083     void testHistogramBinomialML();
0084 };
0085 #endif