|
Boost : |
Subject: [boost] Fwd: [Boost-users] [test] floating point comparison
From: Matthijs Möhlmann (matthijs_at_[hidden])
Date: 2013-10-31 09:18:14
Hello all,
I already posted this to the boost users list, because I thought it was a
problem in my code, but I think its a bug in boost test (unit tests)
Versions:
Boost: 1.54
GCC: 4.8.1
Does someone have an answer to this?
-------- Original Message --------
Subject: [Boost-users] [test] floating point comparison
Date: Wed, 30 Oct 2013 14:40:07 +0100
From: Matthijs Möhlmann <matthijs_at_[hidden]>
Reply-To: boost-users_at_[hidden]
To: boost-users_at_[hidden]
Hello all,
I've the following test program:
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MAIN
#define BOOST_TEST_MODULE Master test suite
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE(TestCase) {
BOOST_REQUIRE_CLOSE_FRACTION(45.00f, 45.17f, 0.004f);
}
When I compile it with the following line:
g++ -o main.o -c -Werror -Wall -std=c++11 -fvisibility=hidden
-fvisibility-inlines-hidden -DBOOST_SPIRIT_USE_PHOENIX_V3 -DUTEST -g
main.cpp
g++ -o main main.o -lboost_unit_test_framework
I get the following output:
Running 1 test case...
*** No errors detected
If I lower the tolerance to 0.0004f then I'll get the following:
Running 1 test case...
main.cpp(8): fatal error in "TestCase": difference{0.00376352} between
45.00f{45} and 45.17f{45.1699982} exceeds 0.00039999999
*** 1 failure detected in test suite "Master test suite"
Why does it say that the difference is 0.00376352 and not 0.17....... ?
Regards,
Matthijs Möhlmann
_______________________________________________
Boost-users mailing list
Boost-users_at_[hidden]
http://lists.boost.org/mailman/listinfo.cgi/boost-users
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk