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 34 namespace statistics {
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;
64 inline const std::string& reasonString()
const;
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(); }
157 #endif // HPP_STATISTICS_SUCCESSBIN_HH void addFailure(const SuccessBin::Reason &r=SuccessBin::REASON_UNKNOWN)
Definition: success-bin.hh:125
bool operator==(const SuccessBin &other) const
Definition: success-bin.hh:69
const Reason & reason() const
If this bin represents 'failure', returns the reason.
Definition: success-bin.hh:61
std::string what
Definition: success-bin.hh:43
std::size_t id
Definition: success-bin.hh:42
Implementation.
Definition: main.hh:17
static const Reason REASON_UNKNOWN
The default reason for 'failure'.
Definition: success-bin.hh:48
std::size_t nbFailure() const
Count the number of failure, in total.
Definition: success-bin.hh:142
SuccessStatistics(const std::string name="", const std::size_t &logRatio=2)
Constructor.
Definition: success-bin.hh:110
bool isLowRatio(const bool autoPrint=false) const
Definition: success-bin.hh:132
Definition: success-bin.hh:41
This class count the number of success and failure.
Definition: success-bin.hh:36
static Reason createReason(const std::string &what)
Definition: success-bin.hh:82
std::size_t nbFailure(const SuccessBin::Reason &r) const
Count the number of a particular failure.
Definition: success-bin.hh:145
Definition: success-bin.hh:105
#define HPP_STATISTICS_DLLAPI
Definition: config.hh:88
void addSuccess()
Add a 'success'.
Definition: success-bin.hh:119
bool operator<(const SuccessBin &other) const
Definition: success-bin.hh:76
SuccessBin(const bool success, const Reason &r=REASON_UNKNOWN)
Constructor.
Definition: success-bin.hh:51
Reason(std::size_t a_id, std::string a_what)
Definition: success-bin.hh:44
bool isSuccess() const
Definition: success-bin.hh:58
std::string name_
Definition: success-bin.hh:149
Statistics< SuccessBin > Parent
Definition: success-bin.hh:107
std::size_t nbSuccess() const
Count the number of success.
Definition: success-bin.hh:139
std::size_t logRatio_
If nbSuccess() * logRatio < numberOfObservations(), write to log.
Definition: success-bin.hh:152
SuccessStatistics(const SuccessStatistics &other)
Copy Constructor.
Definition: success-bin.hh:115