3 #include <boost/archive/binary_iarchive.hpp>
4 #include <boost/archive/binary_oarchive.hpp>
5 #include <boost/archive/xml_iarchive.hpp>
6 #include <boost/archive/xml_oarchive.hpp>
11 using namespace gtsam;
14 TEST(StdOptionalSerialization, SerializeIntOptional) {
16 std::optional<int> opt(42);
20 boost::archive::text_oarchive oa(
ss);
24 std::optional<int> opt2;
25 boost::archive::text_iarchive ia(
ss);
35 TEST(StdOptionalSerialization, SerializeEmptyOptional) {
37 std::optional<int> opt;
41 boost::archive::text_oarchive oa(
ss);
45 std::optional<int> opt2 = 43;
46 boost::archive::text_iarchive ia(
ss);
59 std::optional<int>
opt;
68 template <
class Archive>
70 ar& BOOST_SERIALIZATION_NVP(
opt);
78 if (q1.
opt.has_value() && q2.
opt.has_value()) {
87 if (
m.opt.has_value()) {
88 std::cout <<
s <<
"opt: " << *
m.opt << std::endl;
90 std::cout <<
s <<
"opt: empty" << std::endl;
97 TEST(StdOptionalSerialization, SerializTestOptionalStruct) {
99 EXPECT(serializationTestHelpers::equalsObj(optStruct));
100 EXPECT(serializationTestHelpers::equalsXML(optStruct));
101 EXPECT(serializationTestHelpers::equalsBinary(optStruct));
105 TEST(StdOptionalSerialization, SerializTestOptionalStructUninitialized) {
107 EXPECT(serializationTestHelpers::equalsObj(optStruct));
108 EXPECT(serializationTestHelpers::equalsXML(optStruct));
109 EXPECT(serializationTestHelpers::equalsBinary(optStruct));
113 TEST(StdOptionalSerialization, SerializTestOptionalStructPointer) {
118 std::stringstream
ss;
119 boost::archive::text_oarchive oa(
ss);
123 std::optional<TestOptionalStruct> opt2;
124 boost::archive::text_iarchive ia(
ss);
133 TEST(StdOptionalSerialization, SerializTestOptionalStructPointerPointer) {
138 std::stringstream
ss;
139 boost::archive::text_oarchive oa(
ss);
143 std::optional<TestOptionalStruct*> opt2;
144 boost::archive::text_iarchive ia(
ss);