seq.set_fasta_header("fasta human");
BOOST_CHECK_EQUAL( seq.get_name(), "fasta human");
}
-/*
+
BOOST_AUTO_TEST_CASE( serialize_simple )
{
std::string seq_string = "AAGGCCTT";
BOOST_CHECK_EQUAL(seq, const_seq);
oarchive << const_seq;
}
-
Sequence seq_loaded;
{
std::istringstream iss(oss.str());
BOOST_CHECK_EQUAL(seq_loaded, seq);
}
-BOOST_AUTO_TEST_CASE( serialize_xml_tree )
+// this writes out an "old" style annotated sequence
+// with annotations attached as "motifs" and "annots"
+BOOST_AUTO_TEST_CASE( serialize_xml_sequence )
{
std::string seq_string = "AAGGCCTT";
Sequence seq(seq_string);
boost::archive::xml_oarchive oarchive(oss);
const Sequence& const_seq(seq);
BOOST_CHECK_EQUAL(seq, const_seq);
- oarchive << boost::serialization::make_nvp("seq", const_seq);
+ oarchive << boost::serialization::make_nvp("root", const_seq);
}
-
Sequence seq_loaded;
{
std::istringstream iss(oss.str());
boost::archive::xml_iarchive iarchive(iss);
- iarchive >> boost::serialization::make_nvp("seq", seq_loaded);
+ iarchive >> boost::serialization::make_nvp("root", seq_loaded);
}
BOOST_CHECK_EQUAL(seq_loaded, seq);
}
-*/
+
+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());
+}