mirror of
https://github.com/boostorg/serialization.git
synced 2026-02-22 15:42:30 +00:00
merge trunk to release
[SVN r86727]
This commit is contained in:
@@ -15,9 +15,10 @@
|
||||
#include <cstdio> // remove
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/detail/workaround.hpp>
|
||||
#include <boost/limits.hpp>
|
||||
#include <boost/math/special_functions/next.hpp>
|
||||
|
||||
#if defined(BOOST_NO_STDC_NAMESPACE)
|
||||
#include <boost/limits.hpp>
|
||||
namespace std{
|
||||
using ::rand;
|
||||
using ::remove;
|
||||
@@ -30,15 +31,15 @@ namespace std{
|
||||
}
|
||||
#endif
|
||||
|
||||
#include <boost/config.hpp>
|
||||
#include <boost/limits.hpp>
|
||||
|
||||
#include "test_tools.hpp"
|
||||
|
||||
#include <boost/preprocessor/stringize.hpp>
|
||||
#include BOOST_PP_STRINGIZE(BOOST_ARCHIVE_TEST)
|
||||
|
||||
#include <boost/serialization/complex.hpp>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int test_main( int /* argc */, char* /* argv */[] )
|
||||
{
|
||||
const char * testfile = boost::archive::tmpnam(NULL);
|
||||
@@ -46,12 +47,12 @@ int test_main( int /* argc */, char* /* argv */[] )
|
||||
|
||||
// test array of objects
|
||||
std::complex<float> a(
|
||||
static_cast<float>(std::rand()),
|
||||
static_cast<float>(std::rand())
|
||||
static_cast<float>(std::rand()) / static_cast<float>(std::rand()),
|
||||
static_cast<float>(std::rand()) / static_cast<float>(std::rand())
|
||||
);
|
||||
std::complex<double> b(
|
||||
static_cast<double>(std::rand()),
|
||||
static_cast<double>(std::rand())
|
||||
static_cast<double>(std::rand()) / static_cast<double>(std::rand()),
|
||||
static_cast<double>(std::rand()) / static_cast<double>(std::rand())
|
||||
);
|
||||
{
|
||||
test_ostream os(testfile, TEST_STREAM_FLAGS);
|
||||
@@ -68,8 +69,14 @@ int test_main( int /* argc */, char* /* argv */[] )
|
||||
ia >> boost::serialization::make_nvp("adoublecomplex", b1);
|
||||
}
|
||||
|
||||
BOOST_CHECK(std::abs(a-a1) <= 2.*std::numeric_limits<float>::round_error());
|
||||
BOOST_CHECK(std::abs(b-b1) <= 2.*std::numeric_limits<double>::round_error());
|
||||
std::cerr << "a.real()-a1a.real() distance = " << std::abs( boost::math::float_distance(a.real(), a1.real())) << std::endl;
|
||||
BOOST_CHECK(std::abs(boost::math::float_distance(a.real(), a1.real())) < 2);
|
||||
std::cerr << "a.imag() - a1a.imag() distance = " << std::abs( boost::math::float_distance(a.imag(), a1.imag())) << std::endl;
|
||||
BOOST_CHECK(std::abs(boost::math::float_distance(a.imag(), a1.imag())) < 2);
|
||||
std::cerr << "b.real() - b1.real() distance = " << std::abs( boost::math::float_distance(b.real(), b1.real())) << std::endl;
|
||||
BOOST_CHECK(std::abs(boost::math::float_distance(b.real(), b1.real())) < 2);
|
||||
std::cerr << "b.imag() - b1.imag() distance = " << std::abs( boost::math::float_distance(b.imag(), b1.imag())) << std::endl;
|
||||
BOOST_CHECK(std::abs(boost::math::float_distance(b.imag(), b1.imag())) < 2);
|
||||
|
||||
std::remove(testfile);
|
||||
return EXIT_SUCCESS;
|
||||
|
||||
Reference in New Issue
Block a user