6 #include <boost/test/unit_test.hpp>    13     const char* input_data;
    14     const char* phylip_input_data;
    16         : input_data{ 
"data/CG15644-Z.aln" }, phylip_input_data{
    17               "data/phylip_input.txt"    26 BOOST_FIXTURE_TEST_SUITE(AlignStreamTest, infilenames)
    29 BOOST_AUTO_TEST_CASE(from_vector1)
    31     std::vector<Sequence::Fasta> vf
    34     BOOST_REQUIRE_NO_THROW(
clustal c(vf);
    35                            BOOST_CHECK_EQUAL(vf.size(), c.size()););
    38 BOOST_AUTO_TEST_CASE(from_vector2)
    40     std::vector<Sequence::Fasta> vf
    43     BOOST_REQUIRE_NO_THROW(
phylip c(vf);
    44                            BOOST_CHECK_EQUAL(vf.size(), c.size()););
    47 BOOST_AUTO_TEST_CASE(from_vector3)
    49     std::vector<Sequence::Fasta> vf
    51     BOOST_REQUIRE_NO_THROW(
clustal c(std::move(vf)); BOOST_CHECK(vf.empty());
    52                            BOOST_REQUIRE_EQUAL(c.size(), 2););
    55 BOOST_AUTO_TEST_CASE(from_vector4)
    57     std::vector<Sequence::Fasta> vf
    59     BOOST_REQUIRE_NO_THROW(
phylip c(std::move(vf)); BOOST_CHECK(vf.empty());
    60                            BOOST_REQUIRE_EQUAL(c.size(), 2););
    63 BOOST_AUTO_TEST_CASE(copy_construct1)
    65     std::vector<Sequence::Fasta> vf
    68     BOOST_REQUIRE_NO_THROW(
clustal c2(c);
    69                            BOOST_REQUIRE_EQUAL(c.size(), c2.size());
    70                            for (decltype(c.size()) i = 0; i < c.size();
    71                                 ++i) { BOOST_REQUIRE(c[i] == c2[i]); });
    74 BOOST_AUTO_TEST_CASE(copy_construct2)
    76     std::vector<Sequence::Fasta> vf
    79     BOOST_REQUIRE_NO_THROW(
phylip c2(c);
    80                            BOOST_REQUIRE_EQUAL(c.size(), c2.size());
    81                            for (decltype(c.size()) i = 0; i < c.size();
    82                                 ++i) { BOOST_REQUIRE(c[i] == c2[i]); });
    86 BOOST_AUTO_TEST_CASE(move_construct1)
    88     std::vector<Sequence::Fasta> vf
    91     BOOST_CHECK_EQUAL(vf.size(), 0);
    93     BOOST_REQUIRE_EQUAL(c2.size(), 2);
    94     BOOST_CHECK_EQUAL(c.size(), 0);
    98 BOOST_AUTO_TEST_CASE(move_construct2)
   100     std::vector<Sequence::Fasta> vf
   103     BOOST_CHECK_EQUAL(vf.size(), 0);
   105     BOOST_REQUIRE_EQUAL(c2.size(), 2);
   106     BOOST_CHECK_EQUAL(c.size(), 0);
   110 BOOST_AUTO_TEST_CASE(move_construct3)
   112     std::vector<Sequence::Fasta> vf
   115     BOOST_CHECK_EQUAL(vf.size(), 0);
   117     BOOST_REQUIRE_EQUAL(c2.size(), 2);
   118     BOOST_CHECK_EQUAL(c.size(), 0);
   122 BOOST_AUTO_TEST_CASE(move_construct4)
   124     std::vector<Sequence::Fasta> vf
   127     BOOST_CHECK_EQUAL(vf.size(), 0);
   129     BOOST_REQUIRE_EQUAL(c2.size(), 2);
   130     BOOST_CHECK_EQUAL(c.size(), 0);
   133 BOOST_AUTO_TEST_CASE(should_throw1)
   136     std::vector<Sequence::Fasta> vf
   139     BOOST_REQUIRE_THROW(
clustal c(vf), std::runtime_error);
   140     BOOST_REQUIRE_THROW(
phylip c(vf), std::runtime_error);
   141     BOOST_REQUIRE_THROW(
clustal c(std::vector<Sequence::Fasta>(
   145     BOOST_REQUIRE_THROW(
clustal c(std::move(std::vector<Sequence::Fasta>(
   151 BOOST_AUTO_TEST_CASE(should_throw2)
   154     std::vector<Sequence::Fasta> vf
   159     c[1].seq += std::string(
"ATGC");
   162     BOOST_REQUIRE_EQUAL(c.IsAlignment(), 
false);
   165     BOOST_REQUIRE_THROW(
clustal c2(c), std::runtime_error);
   168 BOOST_AUTO_TEST_CASE(should_throw3)
   171     std::vector<Sequence::Fasta> vf
   174     BOOST_REQUIRE_THROW(c.
assign(vf.begin(), vf.end()), std::runtime_error);
   176     BOOST_REQUIRE_THROW(c.
assign(vf.cbegin(), vf.cend()), std::runtime_error);
   182 BOOST_AUTO_TEST_CASE(clustalw_in)
   184     std::ifstream in(input_data);
   187     BOOST_REQUIRE_NO_THROW(in >> c >> std::ws;);
   189     BOOST_REQUIRE(!c.
empty());
   190     BOOST_REQUIRE_EQUAL(c.
size(), 10);
   194 BOOST_AUTO_TEST_CASE(phylip_in)
   196     std::ifstream in(phylip_input_data);
   198     BOOST_REQUIRE_NO_THROW(in >> p >> std::ws;);
   201 BOOST_AUTO_TEST_CASE(clustalw_convert)
   203     std::ifstream in(input_data);
   206     BOOST_REQUIRE_NO_THROW(in >> c >> std::ws;);
   208     BOOST_REQUIRE(!c.
empty());
   209     BOOST_REQUIRE_EQUAL(c.
size(), 10);
   214     BOOST_REQUIRE(!p.
empty());
   215     BOOST_REQUIRE_EQUAL(c.
size(), p.
size());
   216     for (decltype(c.
size()) i = 0; i < c.
size(); ++i)
   218             BOOST_REQUIRE_EQUAL(c[i], p[i]);
   222 BOOST_AUTO_TEST_CASE(clustalw_convert2)
   224     std::ifstream in(input_data);
   227     BOOST_REQUIRE_NO_THROW(in >> c >> std::ws;);
   229     BOOST_REQUIRE(!c.
empty());
   230     BOOST_REQUIRE_EQUAL(c.
size(), 10);
   235     BOOST_REQUIRE(!p.empty());
   236     BOOST_REQUIRE_EQUAL(c.
size(), p.size());
   237     for (decltype(c.
size()) i = 0; i < c.
size(); ++i)
   239             BOOST_REQUIRE(c[i] == p[i]);
   243 BOOST_AUTO_TEST_CASE(clustalw_reread)
   245     std::ifstream in(input_data);
   251     BOOST_REQUIRE(!c.
empty());
   252     BOOST_REQUIRE_EQUAL(c.
size(), 10);
   254     const char* outfile = 
"clustalw_out_test.aln";
   255     std::ofstream out(outfile);
   263     BOOST_REQUIRE(!c2.
empty());
   264     BOOST_REQUIRE_EQUAL(c.size(), c2.
size());
   266     for (decltype(c.size()) i = 0; i < c.size(); ++i)
   268             BOOST_REQUIRE(c[i] == c2[i]);
   273 BOOST_AUTO_TEST_CASE(convert_write_read)
   275     std::ifstream in(input_data);
   282     const char* outfile = 
"phylip_test.txt";
   283     std::ofstream out(outfile);
   284     BOOST_REQUIRE_NO_THROW(out << p << 
'\n';);
   290     BOOST_REQUIRE_NO_THROW(in >> p2 >> std::ws);
   291     BOOST_REQUIRE_EQUAL(p.
size(), p2.
size());
   293     for (decltype(p.
size()) i = 0; i < p.
size(); ++i)
   298             BOOST_REQUIRE(p[i] == p2[i]);
   303 BOOST_AUTO_TEST_SUITE_END()
 
Sequence::phylipData – read in phylip alignments. 
 
size_type size(void) const
 
Declaration of Sequence::Fasta streams. 
 
Declaration of Sequence::ClustalW streams. 
 
void assign(const_iterator beg, const_iterator end)