34 #include <nrt/config.h>
38 #define BOOST_TEST_DYN_LINK
39 #define BOOST_TEST_MODULE OptionalTest
40 #include <boost/test/unit_test.hpp>
45 BOOST_AUTO_TEST_CASE(OptionalConstructionTest)
48 BOOST_CHECK_EQUAL(myIntOptional1.isSet(),
false);
49 BOOST_CHECK_EQUAL(
bool(myIntOptional1),
false);
52 BOOST_CHECK_EQUAL(myIntOptional2.isSet(),
true);
53 BOOST_CHECK_EQUAL(
bool(myIntOptional2),
true);
54 BOOST_CHECK_EQUAL(*myIntOptional2, 99);
57 BOOST_CHECK_EQUAL(myIntOptional3.isSet(),
true);
58 BOOST_CHECK_EQUAL(
bool(myIntOptional3),
true);
59 BOOST_CHECK_EQUAL(*myIntOptional3, 99);
62 BOOST_CHECK_EQUAL(myIntOptional4.isSet(),
true);
63 BOOST_CHECK_EQUAL(
bool(myIntOptional4),
true);
64 BOOST_CHECK_EQUAL(*myIntOptional4, 99);
65 BOOST_CHECK_EQUAL(myIntOptional3.isSet(),
false);
66 BOOST_CHECK_EQUAL(
bool(myIntOptional3),
false);
70 BOOST_AUTO_TEST_CASE(OptionalAssignmentTest)
73 BOOST_CHECK_EQUAL(*myIntOptional1, 1);
75 BOOST_CHECK_EQUAL(*myIntOptional1, 2);
77 BOOST_CHECK_EQUAL(*myIntOptional1, 3);
81 BOOST_AUTO_TEST_CASE(ReferenceOptionalAssignmentTest)
85 BOOST_CHECK_EQUAL(*myIntOptional1, 0);
87 BOOST_CHECK_EQUAL(*myIntOptional1, 1);
88 BOOST_CHECK_EQUAL(myInt, 1);
90 BOOST_CHECK_EQUAL(*myIntOptional1, 2);
91 BOOST_CHECK_EQUAL(myInt, 2);
92 myIntOptional1.clear();
93 BOOST_CHECK_EQUAL(myInt, 2);
97 BOOST_AUTO_TEST_CASE(ReferenceOptionalMixTest)
103 BOOST_CHECK_EQUAL(*myIntOptional1, 0);
104 BOOST_CHECK_EQUAL(*myIntOptional2, 1);
107 BOOST_CHECK_EQUAL(*myIntOptional3, 0);
109 BOOST_CHECK_EQUAL(*myIntOptional1, 0);
110 BOOST_CHECK_EQUAL(*myIntOptional3, 2);