More tests for lexical_cast
This commit is contained in:
parent
28df71d13a
commit
8a80af7ace
1 changed files with 17 additions and 0 deletions
|
@ -212,4 +212,21 @@ BOOST_AUTO_TEST_CASE(test_lexical_cast_result)
|
|||
BOOST_CHECK_EQUAL(lexical_cast<int>("1"), 1);
|
||||
BOOST_CHECK_EQUAL(lexical_cast<int>("-1"), -1);
|
||||
BOOST_CHECK_EQUAL(lexical_cast<unsigned>("1"), 1);
|
||||
BOOST_CHECK_EQUAL(lexical_cast<double>("1.2"), 1.2);
|
||||
|
||||
std::string a = "01234567890123456789";
|
||||
BOOST_CHECK_EQUAL(lexical_cast<long long>(a), 1234567890123456789ll);
|
||||
BOOST_CHECK_THROW(lexical_cast<int>(a), bad_lexical_cast);
|
||||
BOOST_CHECK_EQUAL(lexical_cast<double>(a), 1.23456789012345678e18);
|
||||
BOOST_CHECK_EQUAL(lexical_cast_default<long long>(a, 0ll), 1234567890123456789ll);
|
||||
BOOST_CHECK_EQUAL(lexical_cast_default<int>(a, 0), 0);
|
||||
BOOST_CHECK_EQUAL(lexical_cast_default<double>(a, 0.0), 1.23456789012345678e18);
|
||||
|
||||
std::string b = "99999999999999999999";
|
||||
BOOST_CHECK_THROW(lexical_cast<long long>(b), bad_lexical_cast);
|
||||
BOOST_CHECK_THROW(lexical_cast<int>(b), bad_lexical_cast);
|
||||
BOOST_CHECK_EQUAL(lexical_cast<double>(b), 1e20);
|
||||
BOOST_CHECK_EQUAL(lexical_cast_default<long long>(b, 0ll), 0ll);
|
||||
BOOST_CHECK_EQUAL(lexical_cast_default<int>(b, 0), 0);
|
||||
BOOST_CHECK_EQUAL(lexical_cast_default<double>(b, 0.0), 1e20);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue