mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-11-04 00:51:52 +01:00 
			
		
		
		
	
		
			
	
	
		
			51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								 *  Created by Joachim on 16/04/2019.
							 | 
						||
| 
								 | 
							
								 *  Adapted from donated nonius code.
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 *  Distributed under the Boost Software License, Version 1.0. (See accompanying
							 | 
						||
| 
								 | 
							
								 *  file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Benchmark results
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#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,
							 | 
						||
| 
								 | 
							
								                };
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        };
							 | 
						||
| 
								 | 
							
								    } // namespace Benchmark
							 | 
						||
| 
								 | 
							
								} // namespace Catch
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif // TWOBLUECUBES_CATCH_BENCHMARK_RESULTS_HPP_INCLUDED
							 |