19 #ifndef UNITY_SCOPES_TESTING_BENCHMARK_H
20 #define UNITY_SCOPES_TESTING_BENCHMARK_H
22 #include <unity/scopes/ActionMetadata.h>
23 #include <unity/scopes/CannedQuery.h>
24 #include <unity/scopes/Result.h>
25 #include <unity/scopes/SearchMetadata.h>
27 #include <unity/scopes/testing/Statistics.h>
63 typedef std::chrono::duration<double>
Seconds;
102 double alpha = 0.05)
const;
126 double alpha = 0.05)
const;
158 void save_to(std::ostream& out);
206 typedef std::function<
228 typedef std::function<
251 typedef std::function<
273 typedef std::function<
308 virtual Result for_query(
const std::shared_ptr<unity::scopes::ScopeBase>& scope,
319 virtual Result for_preview(
const std::shared_ptr<unity::scopes::ScopeBase>& scope,
341 virtual Result for_action(
const std::shared_ptr<unity::scopes::ScopeBase>& scope,
The ActionConfiguration struct constains all options controlling the benchmark of scope action activa...
Definition: Benchmark.h:270
std::function< std::pair< unity::scopes::Result, unity::scopes::ActionMetadata >) > Sampler
Definition: Benchmark.h:233
Seconds min
Definition: Benchmark.h:129
Sampler sampler
Definition: Benchmark.h:239
bool is_significantly_slower_than_reference(const Timing &reference, double alpha=0.05) const
Checks if a timing sample is statistically significantly slower than a reference timing sample...
Definition: Benchmark.cpp:216
bool is_significantly_faster_than_reference(const Timing &reference, double alpha=0.05) const
Checks if a timing sample is statistically significantly faster than a reference timing sample...
Definition: Benchmark.cpp:170
StatisticsConfiguration statistics_configuration
Definition: Benchmark.h:196
std::function< std::tuple< unity::scopes::Result, unity::scopes::ActionMetadata, std::string, std::string >) > Sampler
Definition: Benchmark.h:280
virtual Result for_action(const std::shared_ptr< unity::scopes::ScopeBase > &scope, ActionConfiguration configuration)=0
for_preview executes a benchmark to measure the scope's action activation performance.
The StatisticsConfiguration struct contains options controlling the calculation of benchmark result s...
Definition: Benchmark.h:179
void save_to_xml(std::ostream &out)
save_to_xml stores a result as xml to the given output stream.
Definition: Benchmark.cpp:113
TrialConfiguration trial_configuration
Definition: Benchmark.h:263
unity::scopes::testing::Benchmark::Result::Timing timing
Runtime-specific sample data.
virtual Result for_activation(const std::shared_ptr< unity::scopes::ScopeBase > &scope, ActivationConfiguration configuration)=0
for_preview executes a benchmark to measure the scope's activation performance.
std::function< void(ValueType)> Enumerator
Definition: Statistics.h:45
The attributes of a result returned by a Scope.
Definition: Result.h:51
The Sample class models the interface to a sample of raw observations and their statistical propertie...
Definition: Statistics.h:37
Seconds skewness
Definition: Benchmark.h:139
The PreviewConfiguration struct constains all options controlling the benchmark of scope preview oper...
Definition: Benchmark.h:225
TrialConfiguration trial_configuration
Definition: Benchmark.h:288
Seconds kurtosis
Definition: Benchmark.h:137
The ActivationConfiguration struct constains all options controlling the benchmark of scope activatio...
Definition: Benchmark.h:248
TrialConfiguration trial_configuration
Definition: Benchmark.h:218
void enumerate(const Sample::Enumerator &enumerator) const
Definition: Benchmark.cpp:164
std::size_t sample_size
Definition: Benchmark.h:58
std::function< std::pair< unity::scopes::Result, unity::scopes::ActionMetadata >) > Sampler
Definition: Benchmark.h:255
TrialConfiguration trial_configuration
Definition: Benchmark.h:241
void save_to(std::ostream &out)
save_to stores a result to the given output stream.
Definition: Benchmark.cpp:137
std::chrono::duration< double > Seconds
Definition: Benchmark.h:63
The Result struct encapsulates all of the result gathered from one individual benchmark run consistin...
Definition: Benchmark.h:55
std::vector< Seconds > sample
Definition: Benchmark.h:143
std::size_t SizeType
Definition: Statistics.h:41
std::function< std::pair< unity::scopes::CannedQuery, unity::scopes::SearchMetadata >) > Sampler
Definition: Benchmark.h:210
Sampler sampler
Definition: Benchmark.h:216
std::size_t histogram_bin_count
Definition: Benchmark.h:182
Sampler sampler
Definition: Benchmark.h:261
Seconds std_dev
Definition: Benchmark.h:135
std::size_t trial_count
Definition: Benchmark.h:192
virtual Result for_preview(const std::shared_ptr< unity::scopes::ScopeBase > &scope, PreviewConfiguration configuration)=0
for_preview executes a benchmark to measure the scope's preview performance.
Sampler sampler
Definition: Benchmark.h:286
Parameters of a search query.
Definition: CannedQuery.h:46
Sample::ValueType get_variance() const
Definition: Benchmark.cpp:159
std::vector< std::pair< Seconds, double > > histogram
Definition: Benchmark.h:141
Sample::ValueType get_mean() const
Definition: Benchmark.cpp:154
Seconds max
Definition: Benchmark.h:131
virtual Result for_query(const std::shared_ptr< unity::scopes::ScopeBase > &scope, QueryConfiguration configuration)=0
for_query executes a benchmark to measure the scope's query performance.
The QueryConfiguration struct constains all options controlling the benchmark of scope query operatio...
Definition: Benchmark.h:203
The TrialConfiguration struct contains options controlling the execution of individual trials...
Definition: Benchmark.h:189
Sample::SizeType get_size() const
Definition: Benchmark.cpp:149
The Benchmark class defines an interface to provide scope authors with runtime benchmarking capabilit...
Definition: Benchmark.h:48
Seconds mean
Definition: Benchmark.h:133
void load_from(std::istream &in)
load_from restores a result from the given input stream.
Definition: Benchmark.cpp:125
std::chrono::microseconds per_trial_timeout
Definition: Benchmark.h:194
void load_from_xml(std::istream &in)
load_from_xml restores a result stored as xml from the given input stream.
Definition: Benchmark.cpp:101
double ValueType
Definition: Statistics.h:43
Definition: Benchmark.h:60