libsequence  1.9.5
SeqConversions.cc
1 #include <Sequence/Fasta.hpp>
2 #include <Sequence/fastq.hpp>
3 #include <string>
4 #include <fstream>
5 #include <iostream>
6 #include <boost/test/unit_test.hpp>
7 BOOST_AUTO_TEST_SUITE(SeqConversionsTest)
8 
9 BOOST_AUTO_TEST_CASE( fastq2fasta )
10 {
11  std::ifstream in("data/data.fastq");
12  Sequence::fastq fq;
13  Sequence::Fasta fa;
14 
15  in >> fq >> std::ws;
16 
17  fa = fq;
18 
19  BOOST_CHECK_EQUAL( fq.name , fa.name );
20  BOOST_CHECK_EQUAL( fq.seq , fa.seq );
21 }
22 
23 BOOST_AUTO_TEST_CASE( fastq2fasta2 )
24 {
25  std::ifstream in("data/data.fastq");
26  Sequence::fastq fq;
27 
28  in >> fq >> std::ws;
29 
30  Sequence::Fasta fa(fq);
31 
32  BOOST_CHECK_EQUAL( fq.name , fa.name );
33  BOOST_CHECK_EQUAL( fq.seq , fa.seq );
34 }
35 
36 BOOST_AUTO_TEST_CASE( fastq2fasta3 )
37 {
38  std::ifstream in("data/data.fastq");
39  Sequence::fastq fq;
40 
41  in >> fq >> std::ws;
42 
43  Sequence::Fasta fa(std::move(fq));
44 
45  BOOST_CHECK (fq.length() == 0);
46  BOOST_CHECK (fq.name.empty());
47 }
48 
49 BOOST_AUTO_TEST_CASE( fasta2fastq_1 )
50 {
51  Sequence::Fasta fa = {"name","ATGC"};
52  Sequence::fastq fq = fa;
53 
54  BOOST_CHECK_EQUAL( fq.name , fa.name );
55  BOOST_CHECK_EQUAL( fq.seq , fa.seq );
56  BOOST_CHECK( fq.quality.empty() );
57 }
58 
59 BOOST_AUTO_TEST_CASE( fasta2fastq_2 )
60 {
61  Sequence::Fasta fa = {"name","ATGC"};
62  Sequence::fastq fq = std::move(fa);
63 
64  BOOST_CHECK( fq.name == "name" );
65  BOOST_CHECK( fq.seq == "ATGC" );
66  BOOST_CHECK( fq.quality.empty() );
67 }
68 
69 BOOST_AUTO_TEST_CASE( fasta2fastq_3 )
70 {
71  Sequence::Fasta fa = {"name","ATGC"};
72  Sequence::fastq fq(std::move(fa));
73 
74  BOOST_CHECK( fq.name == "name" );
75  BOOST_CHECK( fq.seq == "ATGC" );
76  BOOST_CHECK( fq.quality.empty() );
77 }
78 BOOST_AUTO_TEST_SUITE_END()
FASTA sequence stream.
Definition: Fasta.hpp:49
size_type length(void) const
Definition: Seq.cc:58
Declaration of Sequence::Fasta streams.
FASTQ class.