Manak  2.0.0
benchmark_case.hpp
Go to the documentation of this file.
1 
8 #ifndef MANAK_BENCHMARK_CASE_HPP_INCLUDED
9 #define MANAK_BENCHMARK_CASE_HPP_INCLUDED
10 
11 #include <string>
12 #include <functional>
13 #include <limits>
14 #include <list>
15 
17 #include <manak/util/pmeasure.hpp>
18 
19 #include <manak/util/timer.hpp>
23 
24 namespace manak
25 {
26 
27 class BenchmarkCase : public ManakCase
28 {
29  public:
30  BenchmarkCase(const std::string& name,
31  const std::string& library_name,
33  const size_t iterations = MANAK_DEFAULT_ITERATIONS,
34  const double success_p = MANAK_DEFAULT_SP)
35  : ManakCase(name, library_name, tolerance, iterations, success_p)
36  {}
37 
38  template<typename T>
39  BenchmarkCase(const std::string& name,
40  const std::string& library_name,
41  std::function<T()> run_function,
43  const size_t iterations = MANAK_DEFAULT_ITERATIONS,
44  const double success_p = MANAK_DEFAULT_SP)
45  : ManakCase(name, library_name, run_function, tolerance, iterations, success_p)
46  {}
47 
48  template<typename T>
49  BenchmarkCase(const std::string& name,
50  const std::string& library_name,
51  T (run_function)(),
53  const size_t iterations = MANAK_DEFAULT_ITERATIONS,
54  const double success_p = MANAK_DEFAULT_SP)
55  : ManakCase(name, library_name, run_function, tolerance, iterations, success_p)
56  {}
57 
58  inline std::list<utils::ObjectStore> Run();
59 };
60 
61 }
62 
63 #ifndef MANAK_GEN_PRECOMPILE
64 #include "benchmark_case.ipp"
65 #endif // MANAK_GEN_PRECOMPILE
66 
67 #endif // MANAK_BENCHMARK_CASE_HPP_INCLUDED
std::string name
Definition: manak_case.hpp:93
#define MANAK_DEFAULT_ITERATIONS
Set default iterations if not defined.
Definition: set_env.hpp:29
#define MANAK_DEFAULT_SP
Set default success percentage for benchmark-test cases.
Definition: set_env.hpp:34
BenchmarkCase(const std::string &name, const std::string &library_name, double tolerance=MANAK_DEFAULT_TOLERANCE, const size_t iterations=MANAK_DEFAULT_ITERATIONS, const double success_p=MANAK_DEFAULT_SP)
BenchmarkCase(const std::string &name, const std::string &library_name, std::function< T()> run_function, double tolerance=MANAK_DEFAULT_TOLERANCE, const size_t iterations=MANAK_DEFAULT_ITERATIONS, const double success_p=MANAK_DEFAULT_SP)
#define MANAK_DEFAULT_TOLERANCE
Set default tolerance if not defined.
Definition: set_env.hpp:24
std::list< utils::ObjectStore > Run()
BenchmarkCase(const std::string &name, const std::string &library_name, T(run_function)(), double tolerance=MANAK_DEFAULT_TOLERANCE, const size_t iterations=MANAK_DEFAULT_ITERATIONS, const double success_p=MANAK_DEFAULT_SP)
std::string library_name
Definition: manak_case.hpp:95