File indexing completed on 2024-05-05 16:00:17

0001 /***************************************************************************
0002     File                 : FitTest.h
0003     Project              : LabPlot
0004     Description          : Tests for data fitting
0005     --------------------------------------------------------------------
0006     Copyright            : (C) 2017 Alexander Semke (alexander.semke@web.de)
0007     Copyright            : (C) 2018 Stefan Gerlach (stefan.gerlach@uni.kn)
0008  ***************************************************************************/
0009 
0010 /***************************************************************************
0011  *                                                                         *
0012  *  This program is free software; you can redistribute it and/or modify   *
0013  *  it under the terms of the GNU General Public License as published by   *
0014  *  the Free Software Foundation; either version 2 of the License, or      *
0015  *  (at your option) any later version.                                    *
0016  *                                                                         *
0017  *  This program is distributed in the hope that it will be useful,        *
0018  *  but WITHOUT ANY WARRANTY; without even the implied warranty of         *
0019  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
0020  *  GNU General Public License for more details.                           *
0021  *                                                                         *
0022  *   You should have received a copy of the GNU General Public License     *
0023  *   along with this program; if not, write to the Free Software           *
0024  *   Foundation, Inc., 51 Franklin Street, Fifth Floor,                    *
0025  *   Boston, MA  02110-1301  USA                                           *
0026  *                                                                         *
0027  ***************************************************************************/
0028 #ifndef FITTEST_H
0029 #define FITTEST_H
0030 
0031 #include <../AnalysisTest.h>
0032 
0033 class FitTest : public AnalysisTest {
0034     Q_OBJECT
0035 
0036 private slots:
0037     //linear regression (see NIST/linear data)
0038     void testLinearNorris();
0039     void testLinearPontius();
0040     void testLinearNoInt1();    // using custom model
0041     void testLinearNoInt1_2();  // using polynomial model with fixed parameter
0042     void testLinearNoInt2();    // using custom model
0043     void testLinearNoInt2_2();  // using polynomial model with fixed parameter
0044     void testLinearFilip();
0045 
0046     void testLinearWampler1();
0047     void testLinearWampler2();
0048     void testLinearWampler3();
0049     void testLinearWampler4();
0050     void testLinearWampler5();
0051 
0052     void testLinearWP_OLS();
0053     void testLinearR_lm2();
0054 
0055     //non-linear regression
0056     void testNonLinearMisra1a();
0057     void testNonLinearMisra1a_2();  // second set of start values
0058     void testNonLinearMisra1a_3();  // third set of start values
0059     void testNonLinearMisra1b();
0060     void testNonLinearMisra1b_2();  // second set of start values
0061     void testNonLinearMisra1b_3();  // third set of start values
0062     void testNonLinearMisra1c();
0063     void testNonLinearMisra1c_2();  // second set of start values
0064     void testNonLinearMisra1c_3();  // third set of start values
0065     void testNonLinearMisra1d();
0066     void testNonLinearMisra1d_2();  // second set of start values
0067     void testNonLinearMisra1d_3();  // third set of start values
0068     void testNonLinearMGH09();
0069     void testNonLinearMGH09_2();    // second set of start values
0070     void testNonLinearMGH09_3();    // third set of start values
0071     void testNonLinearMGH10();
0072     void testNonLinearMGH10_2();    // second set of start values
0073     void testNonLinearMGH10_3();    // third set of start values
0074     void testNonLinearRat43();
0075     void testNonLinearRat43_2();    // second set of start values
0076     void testNonLinearRat43_3();    // third set of start values
0077 
0078     void testNonLinearMichaelis_Menten();
0079 
0080     //fits with weights
0081     void testNonLinearGP_lcdemo();
0082     void testLinearGP_PY_noerror();
0083     void testLinearGP_PY_yerror_polynomial();
0084     void testLinearGP_PY_yerror_custom();
0085     void testLinearGP_PY_xyerror_polynomial();
0086     void testLinearGP_PY_xyerror_custom();
0087     void testLinearGP_PY_xyerror_custom_instrumental_weight();
0088     void testLinearGP_PY_xyerror_custom_inverse_weight();
0089 
0090     void testNonLinear_yerror_zero_bug408535();
0091 };
0092 #endif