MCPcopy Create free account
hub / github.com/catboost/catboost / TestFloatLimits

Function TestFloatLimits

util/generic/ylimits_ut.cpp:67–94  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

65
66template <class T>
67static inline bool TestFloatLimits(const T&) {
68 using lim = std::numeric_limits<T>;
69
70 CHECK_COND(lim::is_specialized);
71 CHECK_COND(!lim::is_modulo);
72 CHECK_COND(!lim::is_integer);
73 CHECK_COND(lim::is_signed);
74
75 CHECK_COND(lim::max() > 1000);
76 CHECK_COND(lim::min() > 0);
77 CHECK_COND(lim::min() < 0.001);
78 CHECK_COND(lim::epsilon() > 0);
79
80 if (lim::is_iec559) {
81 CHECK_COND(lim::has_infinity);
82 CHECK_COND(lim::has_quiet_NaN);
83 CHECK_COND(lim::has_signaling_NaN);
84 }
85
86 if (lim::has_infinity) {
87 const T infinity = lim::infinity();
88
89 CHECK_COND(infinity > lim::max());
90 CHECK_COND(-infinity < -lim::max());
91 }
92
93 return true;
94}
95
96template <class T>
97static inline bool TestNan(const T&) {

Callers 1

TestLimitsMethod · 0.85

Calls 3

maxFunction · 0.50
minFunction · 0.50
epsilonFunction · 0.50

Tested by

no test coverage detected