17#ifndef HPP_STATISTICS_SUCCESSBIN_HH
18#define HPP_STATISTICS_SUCCESSBIN_HH
20#include <hpp/util/debug.hh>
28#define HPP_DEFINE_REASON_FAILURE(ID, STRING) \
29 const ::hpp::statistics::SuccessBin::Reason ID = \
30 ::hpp::statistics::SuccessBin::createReason(STRING); \
31 struct e_n_d__w_i_t_h__s_e_m_i_c_o_l_o_n
44 Reason(std::size_t a_id, std::string a_what) : id(a_id), what(a_what) {}
52 :
Bin(), success_(success), reason_(r) {
53 if (success_) reason_ = REASON_SUCCESS;
70 return reason_.id == other.
reason().
id;
77 return reason_.id < other.
reason().
id;
83 return Reason(reasonID_last++, what);
92 const static Reason REASON_SUCCESS;
93 static std::size_t reasonID_last;
95 inline std::ostream& printValue(std::ostream& os)
const {
100 os <<
"'Failure': " << reason_.what;
111 const std::size_t& logRatio = 2)
112 : name_(name), logRatio_(logRatio) {}
116 : name_(other.name_), logRatio_(other.logRatio_) {}
133 bool lowRatio = (logRatio_ * nbSuccess() < numberOfObservations());
134 if (autoPrint && lowRatio) hppDout(info, name_ <<
":\n" << *
this);
142 std::size_t
nbFailure()
const {
return numberOfObservations() - nbSuccess(); }
This class count the number of success and failure.
Definition success-bin.hh:36
bool isSuccess() const
Definition success-bin.hh:58
bool operator==(const SuccessBin &other) const
Definition success-bin.hh:69
SuccessBin(const bool success, const Reason &r=REASON_UNKNOWN)
Constructor.
Definition success-bin.hh:51
static const Reason REASON_UNKNOWN
The default reason for 'failure'.
Definition success-bin.hh:48
bool operator<(const SuccessBin &other) const
Definition success-bin.hh:76
static Reason createReason(const std::string &what)
Definition success-bin.hh:82
const Reason & reason() const
If this bin represents 'failure', returns the reason.
Definition success-bin.hh:61
const std::string & reasonString() const
If this bin represents 'failure', returns the reason as a string.
Definition success-bin.hh:105
std::size_t logRatio_
If nbSuccess() * logRatio < numberOfObservations(), write to log.
Definition success-bin.hh:152
Statistics< SuccessBin > Parent
Definition success-bin.hh:107
bool isLowRatio(const bool autoPrint=false) const
Definition success-bin.hh:132
SuccessStatistics(const std::string name="", const std::size_t &logRatio=2)
Constructor.
Definition success-bin.hh:110
std::size_t nbSuccess() const
Count the number of success.
Definition success-bin.hh:139
void addSuccess()
Add a 'success'.
Definition success-bin.hh:119
void addFailure(const SuccessBin::Reason &r=SuccessBin::REASON_UNKNOWN)
Definition success-bin.hh:125
std::string name_
Definition success-bin.hh:149
std::size_t nbFailure() const
Count the number of failure, in total.
Definition success-bin.hh:142
SuccessStatistics(const SuccessStatistics &other)
Copy Constructor.
Definition success-bin.hh:115
std::size_t nbFailure(const SuccessBin::Reason &r) const
Count the number of a particular failure.
Definition success-bin.hh:145
#define HPP_STATISTICS_DLLAPI
Definition config.hh:88
Implementation.
Definition main.hh:17
Definition success-bin.hh:41
std::string what
Definition success-bin.hh:43
Reason(std::size_t a_id, std::string a_what)
Definition success-bin.hh:44
std::size_t id
Definition success-bin.hh:42