diff options
Diffstat (limited to 'tests/utils.cpp')
-rw-r--r-- | tests/utils.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/utils.cpp b/tests/utils.cpp new file mode 100644 index 0000000..dfaab17 --- /dev/null +++ b/tests/utils.cpp | |||
@@ -0,0 +1,38 @@ | |||
1 | #include "utils.h" | ||
2 | |||
3 | #include <QList> | ||
4 | #include <math.h> | ||
5 | |||
6 | double variance(const QList<double> &values) | ||
7 | { | ||
8 | //The variance of a single value is 0 | ||
9 | if (values.size() == 1) { | ||
10 | return 0; | ||
11 | } | ||
12 | double mean = 0; | ||
13 | for (auto value : values) { | ||
14 | mean += value; | ||
15 | } | ||
16 | mean = mean / static_cast<double>(values.size()); | ||
17 | double variance = 0; | ||
18 | for (auto value : values) { | ||
19 | variance += pow(static_cast<double>(value) - mean, 2); | ||
20 | } | ||
21 | variance = variance / static_cast<double>(values.size() - 1); | ||
22 | return variance; | ||
23 | } | ||
24 | |||
25 | double maxDifference(const QList<double> &values) | ||
26 | { | ||
27 | auto max = values.first(); | ||
28 | auto min = values.first(); | ||
29 | for (auto value : values) { | ||
30 | if (value > max) { | ||
31 | max = value; | ||
32 | } | ||
33 | if (value < min) { | ||
34 | min = value; | ||
35 | } | ||
36 | } | ||
37 | return max - min; | ||
38 | } | ||