Boost logo

Boost Users :

Subject: [Boost-users] [Boost.Test] Floating point NAN comparison
From: Brian O'Kennedy (brokenn_at_[hidden])
Date: 2010-04-07 10:16:10


Hi,

This bit of Boost.Test code fails:

//////////////////////////////////////////////////////////////////////
BOOST_AUTO_TEST_CASE( nantest )
{
  float a,b;
  a = b = 1.0;
  BOOST_CHECK_EQUAL( a, b ); // passes
  a = b = NAN;
  BOOST_CHECK_EQUAL( a, b ); // fails
}
//////////////////////////////////////////////////////////////////////

The failure is because, by definition, NAN != NAN. What I'm after is a test
macro which takes this into account and will pass the equality test when
both elements are NAN.

BOOST_CHECK_CLOSE has the same behaviour. Is the best solution to write my
own custom predicate?

Brian



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net