Skip to content

Commit

Permalink
Add test for backward compatibility of double to string conversion
Browse files Browse the repository at this point in the history
The testcase is ready to host more conversion tests but is currently
really only targetting the double-to-string.

refs mapnik#430, mapnik#1632
  • Loading branch information
Sandro Santilli committed Dec 11, 2012
1 parent b51b357 commit 9416a57
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions tests/cpp_tests/conversions_test.cpp
@@ -0,0 +1,76 @@
#include <boost/version.hpp>
#include <mapnik/util/conversions.hpp>
#include <boost/detail/lightweight_test.hpp>
#include <iostream>

int main( int, char*[] )
{
using mapnik::util::to_string;

std::string out;

// Test double

to_string(out, double(1));
BOOST_TEST_EQ( out, "1" );
out.clear();

to_string(out, double(0.1));
BOOST_TEST_EQ( out, "0.1" );
out.clear();

to_string(out, double(0.123));
BOOST_TEST_EQ( out, "0.123" );
out.clear();

to_string(out, double(1e-06));
BOOST_TEST_EQ( out, "1e-06" );
out.clear();

to_string(out, double(1e-05));
BOOST_TEST_EQ( out, "0.00001" );
out.clear();

to_string(out, double(0.0001));
BOOST_TEST_EQ( out, "0.0001" );
out.clear();

to_string(out, double(0.0001234567890123456));
BOOST_TEST_EQ( out, "0.0001234567890123456" );
out.clear();

to_string(out, double(1000000000000000));
BOOST_TEST_EQ( out, "1000000000000000" );
out.clear();

to_string(out, double(100000000000000.1));
BOOST_TEST_EQ( out, "100000000000000.1" );
out.clear();

to_string(out, double(1.00001));
BOOST_TEST_EQ( out, "1.00001" );
out.clear();

to_string(out, double(1234000000000000));
BOOST_TEST_EQ( out, "1234000000000000" );
out.clear();

to_string(out, double(1.234e+16));
BOOST_TEST_EQ( out, "1.234e+16" );
out.clear();

// Test int

to_string(out, int(2));
BOOST_TEST_EQ( out, "2" );
out.clear();

if (!::boost::detail::test_errors()) {
std::clog << "C++ exceptions: \x1b[1;32m✓ \x1b[0m\n";
#if BOOST_VERSION >= 104600
::boost::detail::report_errors_remind().called_report_errors_function = true;
#endif
} else {
return ::boost::report_errors();
}
}

0 comments on commit 9416a57

Please sign in to comment.