#include "percent_io.h" #define BOOST_TEST_MODULE test_percent #include BOOST_AUTO_TEST_CASE(test_percent_overflow) { Percent p(120); Percent max(100); BOOST_CHECK_EQUAL(p, max); p = 200; BOOST_CHECK_EQUAL(p, max); } BOOST_AUTO_TEST_CASE(test_percent_underflow) { Percent p(-30); Percent min(0); BOOST_CHECK_EQUAL(p, min); p = -200; BOOST_CHECK_EQUAL(p, min); } BOOST_AUTO_TEST_CASE(test_percent_io) { std::string str = "20%"; std::stringstream ss(str); Percent p(0); Percent res(20); ss << p; BOOST_CHECK(ss.good()); BOOST_CHECK_EQUAL(p, res); } BOOST_AUTO_TEST_CASE(test_percent_io_fail) { std::string str = "20"; std::stringstream ss(str); Percent p(0); Percent res(0); ss << p; BOOST_CHECK(ss.fail()); BOOST_CHECK_EQUAL(p, res); }