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