From eeb0661f0671c3ff2c4fb9ce8da14d12ff788ef2 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 16 Oct 2017 09:42:48 +0200 Subject: Share variance/maxDifference implementation --- tests/utils.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tests/utils.cpp (limited to 'tests/utils.cpp') 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 @@ +#include "utils.h" + +#include +#include + +double variance(const QList &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(values.size()); + double variance = 0; + for (auto value : values) { + variance += pow(static_cast(value) - mean, 2); + } + variance = variance / static_cast(values.size() - 1); + return variance; +} + +double maxDifference(const QList &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; +} -- cgit v1.2.3