> | > Do I understand correctly that > | > > | > BOOST_CHECK_CLOSE(v1, v2, 2. * std::numeric_limits::epsilon() ); > | > > | > would check that the absolute difference between v1 and v2 is not > | > more than two eps? > | > > | > Paul > | > | No. BOOST_CHECK_CLOSE performs relative errors comparison. See > | http://www.boost.org/libs/test/doc/floating_point_comparison.htm > | > | (Ignore part that tries to calculate the tolerance based on > number of > | rounding errors) > | > | Gennadiy. > > Yes of course - sorry. So how would I achieve the above test?
Something about these lines: bool struct my_fpt_compare { explicit my_fpt_compare( float t ) : m_tolerance( t ) {} bool operator( float a, float b ) { return std::fabs( a - b ) < m_tolerance; } float m_tolerance; } // Instead you could write free function and use boost::bind to bind the tolerance ... BOOST_CHECK_PREDICATE( my_fpt_compare( 2. * std::numeric_limits::epsilon() ), 2, ( v1, v2 ) ); Gennadiy. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost