forked from sanger-pathogens/assembly-stats
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfasta_unittest.cpp
103 lines (83 loc) · 2.25 KB
/
fasta_unittest.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include <iostream>
#include "fasta.h"
#include "gtest/gtest.h"
TEST(Fasta, DefaultConstructor)
{
Fasta fa;
EXPECT_EQ(0, fa.name().compare(""));
EXPECT_EQ(0, fa.seq().compare(""));
}
TEST(Fasta, ConstructorWithValues)
{
Fasta fa("name", "ACGT");
EXPECT_EQ(0, fa.name().compare("name"));
EXPECT_EQ(0, fa.seq().compare("ACGT"));
}
TEST(Fasta, setValues)
{
Fasta fa;
fa.name("name");
fa.seq("ACGT");
EXPECT_EQ(0, fa.name().compare("name"));
EXPECT_EQ(0, fa.seq().compare("ACGT"));
}
TEST(Fasta, LengthOfSequence)
{
Fasta fa("name", "");
EXPECT_EQ((unsigned)0, fa.length());
fa = Fasta("name", "A");
EXPECT_EQ((unsigned)1, fa.length());
fa = Fasta("name", "AC");
EXPECT_EQ((unsigned)2, fa.length());
}
TEST(Fasta, N_count)
{
Fasta fa("name", "");
EXPECT_EQ((unsigned)0, fa.nCount());
fa = Fasta("name", "n");
EXPECT_EQ((unsigned)1, fa.nCount());
fa = Fasta("name", "N");
EXPECT_EQ((unsigned)1, fa.nCount());
fa = Fasta("name", "NnACGTNNNTnnT");
EXPECT_EQ((unsigned)7, fa.nCount());
}
TEST(Fasta, Gaps)
{
vector< pair<unsigned long, unsigned long> > gaps, expected;
Fasta fa("name", "");
gaps = fa.gaps();
EXPECT_EQ((unsigned)0, gaps.size());
fa = Fasta("name", "ACGT");
gaps = fa.gaps();
EXPECT_EQ((unsigned)0, gaps.size());
fa = Fasta("name", "nACGT");
gaps = fa.gaps();
expected.push_back(make_pair(0, 0));
EXPECT_TRUE(expected == gaps);
fa = Fasta("name", "nACNnNGTN");
gaps = fa.gaps();
expected.clear();
expected.push_back(make_pair(0, 0));
expected.push_back(make_pair(3, 5));
expected.push_back(make_pair(8, 8));
EXPECT_TRUE(expected == gaps);
}
TEST(Fasta, ReadFromFile)
{
Fasta fa;
int counter = 0;
ifstream inStream("test_files/fasta_unittest.fasta");
if (! inStream.is_open())
{
cerr << "Error opening test file test_files/fasta_unittest.fasta" << endl;
exit(1);
}
while (fa.fillFromFile(inStream))
{
counter++;
string expectedName = static_cast<ostringstream*>( &(ostringstream() << counter) )->str();
EXPECT_EQ(0, fa.name().compare(expectedName));
EXPECT_EQ(0, fa.seq().compare("ACGT"));
}
EXPECT_EQ(3, counter);
}