summaryrefslogtreecommitdiffstats
path: root/tests/utils.cpp
blob: dfaab173551bb7b16eacf181abc35d0d4f7cc8d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "utils.h"

#include <QList>
#include <math.h>

double variance(const QList<double> &values)
{
    //The variance of a single value is 0
    if (values.size() == 1) {
        return 0;
    }
    double mean = 0;
    for (auto value : values) {
        mean += value;
    }
    mean = mean / static_cast<double>(values.size());
    double variance = 0;
    for (auto value : values) {
        variance += pow(static_cast<double>(value) - mean, 2);
    }
    variance = variance / static_cast<double>(values.size() - 1);
    return variance;
}

double maxDifference(const QList<double> &values)
{
    auto max = values.first();
    auto min = values.first();
    for (auto value : values) {
        if (value > max) {
            max = value;
        }
        if (value < min) {
            min = value;
        }
    }
    return max - min;
}