Implement serialize for sequence
[mussa.git] / alg / test / test_sequence.cpp
index 990e193fda17ac1b7b1a97fb29d16b375f1c7c75..f7ea70d6a6b1f1fe8ce2d2d4662a75e88b248068 100644 (file)
@@ -7,6 +7,9 @@ namespace fs=boost::filesystem;
 #include <iostream>
 #include <sstream>
 
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+
 #include "alg/sequence.hpp"
 #include "mussa_exceptions.hpp"
 
@@ -418,3 +421,25 @@ BOOST_AUTO_TEST_CASE( get_name )
   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";
+  Sequence seq(seq_string);
+
+  std::ostringstream oss;
+  // allocate/deallocate serialization components
+  {
+    boost::archive::text_oarchive oarchive(oss);
+    const Sequence& const_seq(seq);
+    BOOST_CHECK_EQUAL(seq, const_seq);
+    oarchive << const_seq;
+  }
+
+  Sequence seq_loaded;
+  {
+    std::istringstream iss(oss.str());
+    boost::archive::text_iarchive iarchive(iss);
+    iarchive >> seq_loaded;
+  }
+}