#define BOOST_TEST_MODULE DeckValueTests #include #include BOOST_AUTO_TEST_CASE(DeckValueTest) { DeckValue value0; BOOST_CHECK(value0.is()); BOOST_CHECK(!value0.is()); BOOST_CHECK_EQUAL( value0.get(), 0); BOOST_CHECK_THROW( value0.get(), std::invalid_argument); value0.reset( 10 ); BOOST_CHECK_EQUAL( value0.get(), 10); BOOST_CHECK_THROW( value0.get(), std::invalid_argument); BOOST_CHECK_THROW( value0.get(), std::invalid_argument); value0.reset( "STRING" ); BOOST_CHECK_EQUAL( value0.get(), std::string("STRING")); BOOST_CHECK_THROW( value0.get(), std::invalid_argument); BOOST_CHECK_THROW( value0.get(), std::invalid_argument); value0.reset( 2.5 ); BOOST_CHECK_EQUAL( value0.get(), 2.5); BOOST_CHECK_THROW( value0.get(), std::invalid_argument); BOOST_CHECK_THROW( value0.get(), std::invalid_argument); DeckValue value1(10); BOOST_CHECK(value1.is()); BOOST_CHECK(!value1.is()); BOOST_CHECK_EQUAL( value1.get(), 10); DeckValue value2(10.0); BOOST_CHECK(value2.is()); BOOST_CHECK(!value2.is()); BOOST_CHECK_EQUAL( value2.get(), 10); BOOST_CHECK_THROW( value2.get(), std::invalid_argument); BOOST_CHECK_THROW( value2.get(), std::invalid_argument); DeckValue value3("FUBHP"); BOOST_CHECK(!value3.is()); BOOST_CHECK(value3.is()); BOOST_CHECK_EQUAL( value3.get(), std::string("FUBHP")); BOOST_CHECK_THROW( value3.get(), std::invalid_argument); BOOST_CHECK_THROW( value3.get(), std::invalid_argument); }