26 #ifndef NCBI_BOOST_TEST_FLOATING_POINT_COMPARISON_HPP_071894GER
27 #define NCBI_BOOST_TEST_FLOATING_POINT_COMPARISON_HPP_071894GER
29 #ifndef FLOATING_POINT__HPP
30 # error Do not include this header directly. Use <util/floating_point.hpp> instead.
40 namespace boost_fp_impl {
59 template<
typename FPT>
63 return arg < static_cast<FPT>(0) ? -arg : arg;
68 template<
typename FPT>
72 return std::numeric_limits<FPT>::is_specialized
78 return std::numeric_limits<FPT>::is_specialized
80 :
static_cast<FPT
>(1000000);
87 template<
typename FPT>
96 if( (f1 ==
static_cast<FPT
>(0)) ||
98 return static_cast<FPT
>(0);
111 template<
typename FPT>
120 template<
typename Out,
typename FPT>
123 return out <<
t.m_value;
128 template<
typename FPT>
129 inline percent_tolerance_t<FPT>
137 template<
typename FPT>
146 template<
typename Out,
typename FPT>
149 return out <<
t.m_value;
154 template<
typename FPT>
155 inline fraction_tolerance_t<FPT>
167 template<
typename FPT>
174 template<
typename ToleranceBaseType>
180 template<
typename ToleranceBaseType>
213 template<
typename FPT,
typename ToleranceBaseType>
220 return pred( left, right );
222 template<
typename FPT,
typename ToleranceBaseType>
229 return pred( left, right );
234 check_is_close_t check_is_close;
247 template<
typename FPT>
256 check_is_small_t check_is_small;
close_at_tolerance(percent_tolerance_t< ToleranceBaseType > tolerance, floating_point_comparison_type fpc_type=FPC_STRONG)
close_at_tolerance(fraction_tolerance_t< ToleranceBaseType > tolerance, floating_point_comparison_type fpc_type=FPC_STRONG)
bool operator()(FPT left, FPT right) const
std::ofstream out("events_result.xml")
main entry point for tests
FPT safe_fpt_division(FPT f1, FPT f2)
Out & operator<<(Out &out, percent_tolerance_t< FPT > t)
percent_tolerance_t< FPT > percent_tolerance(FPT v)
fraction_tolerance_t< FPT > fraction_tolerance(FPT v)
floating_point_comparison_type
Magic spell ;-) needed for some weird compilers... very empiric.
void Out(T t, int w, CNcbiOstream &to=cout)
bool operator()(FPT left, FPT right, fraction_tolerance_t< ToleranceBaseType > tolerance, floating_point_comparison_type fpc_type=FPC_STRONG)
bool operator()(FPT left, FPT right, percent_tolerance_t< ToleranceBaseType > tolerance, floating_point_comparison_type fpc_type=FPC_STRONG)
bool operator()(FPT fpv, FPT tolerance)
fraction_tolerance_t(FPT v)
percent_tolerance_t(FPT v)