diff options
author | Geir Storli <geirst@yahooinc.com> | 2024-02-15 12:50:45 +0000 |
---|---|---|
committer | Geir Storli <geirst@yahooinc.com> | 2024-02-15 12:50:45 +0000 |
commit | 0fa36a7b5e65dd8d6ae20c7c285c0a207848c15d (patch) | |
tree | e6896248f8192498dd97c850a2ad1fc8887d6ae5 /searchlib/src/tests | |
parent | f7760f51b9a01b31639506e7957fb7caa8b8c963 (diff) |
Refactor and use auto instead of template argument.
Diffstat (limited to 'searchlib/src/tests')
-rw-r--r-- | searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp b/searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp index 9c084db4a5d..c5727abb9b6 100644 --- a/searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp +++ b/searchlib/src/tests/queryeval/iterator_benchmark/iterator_benchmark_test.cpp @@ -186,12 +186,34 @@ struct Stats { } }; +double +calc_median(const std::vector<double>& values) +{ + size_t middle = values.size() / 2; + if (values.size() % 2 == 0) { + return (values[middle - 1] + values[middle]) / 2; + } else { + return values[middle]; + } +} + +double +calc_standard_deviation(const std::vector<double>& values, double average) +{ + double deviations = 0.0; + for (double val : values) { + double diff = val - average; + deviations += (diff * diff); + } + double variance = deviations / values.size(); + return std::sqrt(variance); +} + class BenchmarkResults { private: std::vector<BenchmarkResult> _results; - template <typename F> - std::vector<double> extract_sorted_values(F func) const { + std::vector<double> extract_sorted_values(auto func) const { std::vector<double> values; for (const auto& res: _results) { values.push_back(func(res)); @@ -200,27 +222,7 @@ private: return values; } - double calc_median(const std::vector<double>& values) const { - size_t middle = values.size() / 2; - if (values.size() % 2 == 0) { - return (values[middle - 1] + values[middle]) / 2; - } else { - return values[middle]; - } - } - - double calc_standard_deviation(const std::vector<double>& values, double average) const { - double deviations = 0.0; - for (double val : values) { - double diff = val - average; - deviations += (diff * diff); - } - double variance = deviations / values.size(); - return std::sqrt(variance); - } - - template <typename F> - Stats calc_stats(F func) const { + Stats calc_stats(auto func) const { auto values = extract_sorted_values(func); double average = std::accumulate(values.begin(), values.end(), 0.0) / values.size(); double median = calc_median(values); |