
Gennadiy Rozental wrote:
Ok. How about
BOOST_CHECK_PRC_DIFF BOOST_CHECK_REL_DIFF BOOST_CHECK_EPS_DIFF
How about
BOOST_CHECK_ABS_DIFF
for absolute difference comparison?
Oh please no.... too cute and cryptic by half, they're not self-explanatory at all.
Wouldn't you were the one who advocated against epsilon() usage?
Was I? I'm not sure :-) Certainly you need to be careful with it: numeric_limits<long double>::epsilon() is meaningless on MAC OSX for example. But that's a good reason to do it right in one place :-)
I guess I could introduce these synonym if that will make everyone happy, but I personally still prefer shorter names.
The main question then would be whether the synonyms would have readable error messages: if they still refer to percentages folks will get confused again :-)
What kind of error message would you like for each tool to produce?
Here is an example of BOOS_CHECK_CLOSE produce:
difference between v1{1.23456e-10} and v2{1.234571e-10} exceeds 0.0001%
Which is fine if the tolerance is expressed as a percent, but not otherwise: the error quoted needs to be expressed in the same units as are passed to the macro, otherwise you'll just confuse folks again. HTH, John.