Add test for backward compatibility of double to string conversion
The testcase is ready to host more conversion tests but is currently really only targetting the double-to-string. refs #430, #1632
This commit is contained in:
parent
b51b357123
commit
9416a57b85
1 changed files with 76 additions and 0 deletions
76
tests/cpp_tests/conversions_test.cpp
Normal file
76
tests/cpp_tests/conversions_test.cpp
Normal file
|
@ -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();
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue