| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | |
| |
|
| | #ifndef TWOBLUECUBES_CATCH_BENCHMARK_RESULTS_HPP_INCLUDED |
| | #define TWOBLUECUBES_CATCH_BENCHMARK_RESULTS_HPP_INCLUDED |
| |
|
| | #include "catch_clock.hpp" |
| | #include "catch_estimate.hpp" |
| | #include "catch_outlier_classification.hpp" |
| |
|
| | #include <algorithm> |
| | #include <vector> |
| | #include <string> |
| | #include <iterator> |
| |
|
| | namespace Catch { |
| | namespace Benchmark { |
| | template <typename Duration> |
| | struct SampleAnalysis { |
| | std::vector<Duration> samples; |
| | Estimate<Duration> mean; |
| | Estimate<Duration> standard_deviation; |
| | OutlierClassification outliers; |
| | double outlier_variance; |
| |
|
| | template <typename Duration2> |
| | operator SampleAnalysis<Duration2>() const { |
| | std::vector<Duration2> samples2; |
| | samples2.reserve(samples.size()); |
| | std::transform(samples.begin(), samples.end(), std::back_inserter(samples2), [](Duration d) { return Duration2(d); }); |
| | return { |
| | std::move(samples2), |
| | mean, |
| | standard_deviation, |
| | outliers, |
| | outlier_variance, |
| | }; |
| | } |
| | }; |
| | } |
| | } |
| |
|
| | #endif |
| |
|