$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
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