| 221 | } |
| 222 | |
| 223 | void FitTest::testLinearNoInt1_2() { |
| 224 | // NIST data for NoInt1 dataset |
| 225 | QVector<int> xData = {60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70}; |
| 226 | QVector<int> yData = {130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140}; |
| 227 | |
| 228 | // data source columns |
| 229 | Column xDataColumn(QStringLiteral("x"), AbstractColumn::ColumnMode::Integer); |
| 230 | xDataColumn.replaceInteger(0, xData); |
| 231 | |
| 232 | Column yDataColumn(QStringLiteral("y"), AbstractColumn::ColumnMode::Integer); |
| 233 | yDataColumn.replaceInteger(0, yData); |
| 234 | |
| 235 | XYFitCurve fitCurve(QStringLiteral("fit")); |
| 236 | fitCurve.setXDataColumn(&xDataColumn); |
| 237 | fitCurve.setYDataColumn(&yDataColumn); |
| 238 | |
| 239 | // prepare the fit |
| 240 | XYFitCurve::FitData fitData = fitCurve.fitData(); |
| 241 | fitData.modelCategory = nsl_fit_model_basic; |
| 242 | fitData.modelType = nsl_fit_model_polynomial; |
| 243 | fitData.degree = 1; |
| 244 | XYFitCurve::initFitData(fitData); |
| 245 | fitData.paramStartValues[0] = 0; |
| 246 | fitData.paramFixed[0] = true; |
| 247 | fitCurve.setFitData(fitData); |
| 248 | |
| 249 | // perform the fit |
| 250 | fitCurve.recalculate(); |
| 251 | const XYFitCurve::FitResult& fitResult = fitCurve.fitResult(); |
| 252 | |
| 253 | // check the results |
| 254 | QCOMPARE(fitResult.available, true); |
| 255 | QCOMPARE(fitResult.valid, true); |
| 256 | |
| 257 | const int np = fitData.paramNames.size(); |
| 258 | QCOMPARE(np, 2); |
| 259 | |
| 260 | QCOMPARE(fitResult.paramValues.at(0), 0.); |
| 261 | QCOMPARE(fitResult.paramValues.at(1), 2.07438016528926); |
| 262 | QCOMPARE(fitResult.errorValues.at(1), 0.165289256198347e-1); |
| 263 | |
| 264 | QCOMPARE(fitResult.rsd, 3.56753034006338); |
| 265 | QCOMPARE(fitResult.sse, 127.272727272727); |
| 266 | QCOMPARE(fitResult.rms, 12.7272727272727); |
| 267 | QCOMPARE(fitResult.rsquare, 0.999365492298663); |
| 268 | DEBUG(std::setprecision(15) << fitResult.fdist_F); // result: 15760.25 |
| 269 | QCOMPARE(fitResult.fdist_F, 15750.25); |
| 270 | } |
| 271 | |
| 272 | void FitTest::testLinearNoInt2() { |
| 273 | // NIST data for NoInt2 dataset |
nothing calls this directly
no test coverage detected