diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-03-21 23:34:34 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-03-24 10:30:32 +0100 |
| commit | 5b9b674d8b33469859ca181d8c5ebaca0a5e4ac6 (patch) | |
| tree | 02f75547a36c71750fa462044e990f566fbf8636 | |
| parent | 567e100ea8a633d0e53d32c836d6ba7aeb22771a (diff) | |
Increase raw_convert test coverage.
| -rw-r--r-- | test/raw_convert_test.cc | 111 |
1 files changed, 74 insertions, 37 deletions
diff --git a/test/raw_convert_test.cc b/test/raw_convert_test.cc index c48ccb0c..cfcc93fa 100644 --- a/test/raw_convert_test.cc +++ b/test/raw_convert_test.cc @@ -38,42 +38,79 @@ using std::string; -BOOST_AUTO_TEST_CASE (raw_convert_test) + +void +do_raw_convert_test() +{ + BOOST_CHECK_EQUAL(dcp::raw_convert<string>('A'), "A"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>('Z'), "Z"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(static_cast<unsigned short int>(42)), "42"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(static_cast<int>(-6)), "-6"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(static_cast<unsigned int>(12)), "12"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(static_cast<long>(-1061)), "-1061"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(static_cast<unsigned long>(9913)), "9913"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(static_cast<long long>(-139913)), "-139913"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(static_cast<unsigned long long>(239913)), "239913"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>("hello world"), "hello world"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(string("hello world")), "hello world"); + + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(.34), "0.34"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(-.34), "-0.34"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(static_cast<float>(.34), 6), "0.34"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(static_cast<float>(-.34), 6), "-0.34"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(0.157123125), "0.157123125"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(0.157123125, 4), "0.1571"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(1e50), "1e+50"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(1e-50), "1e-50"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(1.5e12), "1500000000000"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(0.0086), "0.0086"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(0.00086), "0.00086"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(0.000086), "8.6e-05"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>(0.000086, 10, true), "0.0000860000"); + + BOOST_CHECK_EQUAL(dcp::raw_convert<unsigned char>(string("92")), static_cast<unsigned char>(92)); + + BOOST_CHECK_EQUAL(dcp::raw_convert<unsigned short int>(string("912")), 912); + + BOOST_CHECK_EQUAL(dcp::raw_convert<int>("42"), 42); + BOOST_CHECK_EQUAL(dcp::raw_convert<int>("42.3"), 42); + BOOST_CHECK_EQUAL(dcp::raw_convert<int>("42.7"), 42); + + BOOST_CHECK_EQUAL(dcp::raw_convert<long>(string("42")), 42); + BOOST_CHECK_EQUAL(dcp::raw_convert<long>(string("42.3")), 42); + BOOST_CHECK_EQUAL(dcp::raw_convert<long>(string("42.7")), 42); + + BOOST_CHECK_EQUAL(dcp::raw_convert<double>("42"), 42); + BOOST_CHECK_EQUAL(dcp::raw_convert<double>("42.3"), 42.3); + BOOST_CHECK_EQUAL(dcp::raw_convert<double>("42.7"), 42.7); + BOOST_CHECK_EQUAL(dcp::raw_convert<double>("4e8"), 4e8); + BOOST_CHECK_EQUAL(dcp::raw_convert<double>("9.1e9"), 9.1e9); + BOOST_CHECK_EQUAL(dcp::raw_convert<double>("0.005"), 0.005); + + BOOST_CHECK_CLOSE(dcp::raw_convert<float>("42"), 42, 0.001); + BOOST_CHECK_CLOSE(dcp::raw_convert<float>("42.3"), 42.3, 0.001); + BOOST_CHECK_CLOSE(dcp::raw_convert<float>("42.7"), 42.7, 0.001); + BOOST_CHECK_CLOSE(dcp::raw_convert<float>("4e8"), 4e8, 0.001); + BOOST_CHECK_CLOSE(dcp::raw_convert<float>("9.1e9"), 9.1e9, 0.001); + BOOST_CHECK_CLOSE(dcp::raw_convert<float>("0.005"), 0.005, 0.001); + + BOOST_CHECK_EQUAL(dcp::raw_convert<string>("foo"), "foo"); + BOOST_CHECK_EQUAL(dcp::raw_convert<string>("foo bar"), "foo bar"); +} + + +BOOST_AUTO_TEST_CASE (raw_convert_test_de) { - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (1), "1"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (12), "12"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (12.3), "12.3"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (12.34), "12.34"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (.34), "0.34"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (-.34), "-0.34"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (0.157123125), "0.157123125"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (0.157123125, 4), "0.1571"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (1e50), "1e+50"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (1e-50), "1e-50"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (1.5e12), "1500000000000"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (0.0086), "0.0086"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (0.00086), "0.00086"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (0.000086), "8.6e-05"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> (0.000086, 10, true), "0.0000860000"); - - BOOST_CHECK_EQUAL (dcp::raw_convert<int> ("42"), 42); - BOOST_CHECK_EQUAL (dcp::raw_convert<int> ("42.3"), 42); - BOOST_CHECK_EQUAL (dcp::raw_convert<int> ("42.7"), 42); - - BOOST_CHECK_EQUAL (dcp::raw_convert<double> ("42"), 42); - BOOST_CHECK_EQUAL (dcp::raw_convert<double> ("42.3"), 42.3); - BOOST_CHECK_EQUAL (dcp::raw_convert<double> ("42.7"), 42.7); - BOOST_CHECK_EQUAL (dcp::raw_convert<double> ("4e8"), 4e8); - BOOST_CHECK_EQUAL (dcp::raw_convert<double> ("9.1e9"), 9.1e9); - BOOST_CHECK_EQUAL (dcp::raw_convert<double> ("0.005"), 0.005); - - BOOST_CHECK_CLOSE (dcp::raw_convert<float> ("42"), 42, 0.001); - BOOST_CHECK_CLOSE (dcp::raw_convert<float> ("42.3"), 42.3, 0.001); - BOOST_CHECK_CLOSE (dcp::raw_convert<float> ("42.7"), 42.7, 0.001); - BOOST_CHECK_CLOSE (dcp::raw_convert<float> ("4e8"), 4e8, 0.001); - BOOST_CHECK_CLOSE (dcp::raw_convert<float> ("9.1e9"), 9.1e9, 0.001); - BOOST_CHECK_CLOSE (dcp::raw_convert<float> ("0.005"), 0.005, 0.001); - - BOOST_CHECK_EQUAL (dcp::raw_convert<string> ("foo"), "foo"); - BOOST_CHECK_EQUAL (dcp::raw_convert<string> ("foo bar"), "foo bar"); + setlocale (LC_ALL, "de_DE.UTF-8"); + BOOST_CHECK_EQUAL (localeconv()->decimal_point, ","); + do_raw_convert_test (); } + + +BOOST_AUTO_TEST_CASE (raw_convert_test_en) +{ + setlocale (LC_ALL, "en_US.UTF-8"); + BOOST_CHECK_EQUAL (localeconv()->decimal_point, "."); + do_raw_convert_test (); +} + |
