21 #include <unity/scopes/ActionMetadata.h>
22 #include <unity/scopes/CannedQuery.h>
23 #include <unity/scopes/Result.h>
24 #include <unity/scopes/SearchMetadata.h>
26 #include <unity/scopes/testing/Statistics.h>
62 typedef std::chrono::duration<double>
Seconds;
101 double alpha = 0.05)
const;
125 double alpha = 0.05)
const;
128 Seconds
min{Seconds::min()};
130 Seconds
max{Seconds::min()};
157 void save_to(std::ostream& out);
205 typedef std::function<
227 typedef std::function<
250 typedef std::function<
272 typedef std::function<
307 virtual Result for_query(
const std::shared_ptr<unity::scopes::ScopeBase>& scope,
318 virtual Result for_preview(
const std::shared_ptr<unity::scopes::ScopeBase>& scope,
340 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:269
std::function< std::pair< unity::scopes::Result, unity::scopes::ActionMetadata >) > Sampler
Definition: Benchmark.h:232
Seconds min
Definition: Benchmark.h:128
Sampler sampler
Definition: Benchmark.h:238
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:195
std::function< std::tuple< unity::scopes::Result, unity::scopes::ActionMetadata, std::string, std::string >) > Sampler
Definition: Benchmark.h:279
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:178
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:262
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:44
The attributes of a result returned by a Scope.
Definition: Result.h:50
The Sample class models the interface to a sample of raw observations and their statistical propertie...
Definition: Statistics.h:36
Seconds skewness
Definition: Benchmark.h:138
Definition: OnlineAccountClient.h:39
The PreviewConfiguration struct constains all options controlling the benchmark of scope preview oper...
Definition: Benchmark.h:224
TrialConfiguration trial_configuration
Definition: Benchmark.h:287
Seconds kurtosis
Definition: Benchmark.h:136
The ActivationConfiguration struct constains all options controlling the benchmark of scope activatio...
Definition: Benchmark.h:247
TrialConfiguration trial_configuration
Definition: Benchmark.h:217
void enumerate(const Sample::Enumerator &enumerator) const
Definition: Benchmark.cpp:164
std::size_t sample_size
Definition: Benchmark.h:57
std::function< std::pair< unity::scopes::Result, unity::scopes::ActionMetadata >) > Sampler
Definition: Benchmark.h:254
TrialConfiguration trial_configuration
Definition: Benchmark.h:240
Top-level namespace for all things Unity-related.
Definition: Version.h:49
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:62
The Result struct encapsulates all of the result gathered from one individual benchmark run consistin...
Definition: Benchmark.h:54
std::vector< Seconds > sample
Definition: Benchmark.h:142
std::size_t SizeType
Definition: Statistics.h:40
std::function< std::pair< unity::scopes::CannedQuery, unity::scopes::SearchMetadata >) > Sampler
Definition: Benchmark.h:209
Sampler sampler
Definition: Benchmark.h:215
std::size_t histogram_bin_count
Definition: Benchmark.h:181
Sampler sampler
Definition: Benchmark.h:260
Seconds std_dev
Definition: Benchmark.h:134
std::size_t trial_count
Definition: Benchmark.h:191
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:285
Parameters of a search query.
Definition: CannedQuery.h:49
Sample::ValueType get_variance() const
Definition: Benchmark.cpp:159
std::vector< std::pair< Seconds, double > > histogram
Definition: Benchmark.h:140
Sample::ValueType get_mean() const
Definition: Benchmark.cpp:154
Seconds max
Definition: Benchmark.h:130
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:202
The TrialConfiguration struct contains options controlling the execution of individual trials...
Definition: Benchmark.h:188
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:47
Seconds mean
Definition: Benchmark.h:132
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:193
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:42
Definition: Benchmark.h:59