summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahooinc.com>2024-02-15 12:50:45 +0000
committerGeir Storli <geirst@yahooinc.com>2024-02-15 12:50:45 +0000
commit0fa36a7b5e65dd8d6ae20c7c285c0a207848c15d (patch)
treee6896248f8192498dd97c850a2ad1fc8887d6ae5 /searchlib/src/tests
parentf7760f51b9a01b31639506e7957fb7caa8b8c963 (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.cpp48
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);