]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/lexical_cast/test/lexical_cast_try_lexical_convert.cpp
1 // Unit test for boost::lexical_cast.
3 // See http://www.boost.org for most recent version, including documentation.
5 // Copyright Antony Polukhin, 2014-2019.
7 // Distributed under the Boost
8 // Software License, Version 1.0. (See accompanying file
9 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt).
11 #include <boost/config.hpp>
13 #include <boost/lexical_cast/try_lexical_convert.hpp>
14 #include <boost/test/unit_test.hpp>
16 using namespace boost::conversion
;
18 void try_uncommon_cases()
21 const bool res1
= try_lexical_convert(std::string("Test string"), sres
);
23 BOOST_CHECK_EQUAL(sres
, "Test string");
26 const bool res2
= try_lexical_convert(100, vires
);
28 BOOST_CHECK_EQUAL(vires
, 100);
30 const bool res3
= try_lexical_convert("Test string", sres
);
32 BOOST_CHECK_EQUAL(sres
, "Test string");
34 const bool res4
= try_lexical_convert("Test string", sizeof("Test string") - 1, sres
);
36 BOOST_CHECK_EQUAL(sres
, "Test string");
39 BOOST_CHECK(!try_lexical_convert("Test string", ires
));
40 BOOST_CHECK(!try_lexical_convert(1.1, ires
));
41 BOOST_CHECK(!try_lexical_convert(-1.9, ires
));
42 BOOST_CHECK(!try_lexical_convert("1.1", ires
));
43 BOOST_CHECK(!try_lexical_convert("1000000000000000000000000000000000000000", ires
));
47 void try_common_cases()
50 const bool res1
= try_lexical_convert(std::string("100"), ires
);
52 BOOST_CHECK_EQUAL(ires
, 100);
55 const bool res2
= try_lexical_convert("-100", ires
);
57 BOOST_CHECK_EQUAL(ires
, -100);
60 const bool res3
= try_lexical_convert("0.0", fres
);
62 BOOST_CHECK_EQUAL(fres
, 0.0f
);
65 const bool res4
= try_lexical_convert("0.0", sizeof("0.0") - 1, fres
);
67 BOOST_CHECK_EQUAL(fres
, 0.0f
);
70 boost::unit_test::test_suite
*init_unit_test_suite(int, char *[])
72 boost::unit_test::test_suite
*suite
=
73 BOOST_TEST_SUITE("Tests for try_lexical_convert");
74 suite
->add(BOOST_TEST_CASE(&try_uncommon_cases
));
75 suite
->add(BOOST_TEST_CASE(&try_common_cases
));