| 381 | QCOMPARE(stats.entropy, 2.); |
| 382 | } |
| 383 | void ColumnTest::statisticsIntZero() { |
| 384 | Column c(QStringLiteral("Integer column"), Column::ColumnMode::Integer); |
| 385 | c.setIntegers({1, 0, 2, 5}); |
| 386 | |
| 387 | auto& stats = c.statistics(); |
| 388 | |
| 389 | QCOMPARE(stats.size, 4); |
| 390 | QCOMPARE(stats.minimum, 0.); |
| 391 | QCOMPARE(stats.maximum, 5.); |
| 392 | QCOMPARE(stats.arithmeticMean, 2.); |
| 393 | QCOMPARE(stats.geometricMean, 1.77827941003892); // special case |
| 394 | QCOMPARE(stats.harmonicMean, 0.); |
| 395 | QCOMPARE(stats.contraharmonicMean, 3.75); |
| 396 | |
| 397 | QCOMPARE(stats.mode, NAN); |
| 398 | QCOMPARE(stats.firstQuartile, 0.75); |
| 399 | QCOMPARE(stats.median, 1.5); |
| 400 | QCOMPARE(stats.thirdQuartile, 2.75); |
| 401 | QCOMPARE(stats.iqr, 2.); |
| 402 | QCOMPARE(stats.percentile_1, 0.03); |
| 403 | QCOMPARE(stats.percentile_5, 0.15); |
| 404 | QCOMPARE(stats.percentile_10, 0.3); |
| 405 | QCOMPARE(stats.percentile_90, 4.1); |
| 406 | QCOMPARE(stats.percentile_95, 4.55); |
| 407 | QCOMPARE(stats.percentile_99, 4.91); |
| 408 | QCOMPARE(stats.trimean, 1.625); |
| 409 | QCOMPARE(stats.variance, 4.6666666666667); |
| 410 | QCOMPARE(stats.standardDeviation, 2.16024689946929); |
| 411 | QCOMPARE(stats.meanDeviation, 1.5); |
| 412 | QCOMPARE(stats.meanDeviationAroundMedian, 1.5); |
| 413 | QCOMPARE(stats.medianDeviation, 1.); |
| 414 | QCOMPARE(stats.skewness, 0.68724319348909); |
| 415 | QCOMPARE(stats.kurtosis, 2.); |
| 416 | QCOMPARE(stats.entropy, 2.); |
| 417 | } |
| 418 | void ColumnTest::statisticsIntOverflow() { |
| 419 | Column c(QStringLiteral("Integer column"), Column::ColumnMode::Integer); |
| 420 | c.setIntegers({1000000000, 1100000000, 1200000000, 1300000000}); |
nothing calls this directly
no test coverage detected