+
+BOOST_AUTO_TEST_CASE( serialize_xml_two )
+{
+ std::string seq_string = "AAGGCCTT";
+ Sequence seq1(seq_string);
+ Sequence seq2(seq1);
+
+ std::ostringstream oss;
+ // allocate/deallocate serialization components
+ {
+ boost::archive::xml_oarchive oarchive(oss);
+ const Sequence& const_seq1(seq1);
+ const Sequence& const_seq2(seq2);
+ oarchive << boost::serialization::make_nvp("seq1", const_seq1);
+ oarchive << boost::serialization::make_nvp("seq2", const_seq2);
+ }
+ //std::cout << "xml: " << oss.str() << std::endl;
+ Sequence seq1_loaded;
+ Sequence seq2_loaded;
+ {
+ std::istringstream iss(oss.str());
+ boost::archive::xml_iarchive iarchive(iss);
+ iarchive >> boost::serialization::make_nvp("seq1", seq1_loaded);
+ iarchive >> boost::serialization::make_nvp("seq2", seq2_loaded);
+ }
+ BOOST_CHECK_EQUAL(seq1_loaded, seq1);
+ BOOST_CHECK_EQUAL(seq2_loaded, seq2);
+ // test if our pointers are the same
+ BOOST_CHECK_EQUAL(seq1_loaded.c_str(), seq2_loaded.c_str());
+}