21 #include "ReferenceSequence.h" 35 void humanGenomeTest1();
46 void ReferenceSequenceTest::test1(
void)
48 std::string sequence(
"ACTGACTGACTGACTGACTGACTGACTGACTGACTGACTG");
52 check(m_failures, ++m_testNum,
"Test wordMatch with std::string",
true,
53 Sequence::wordMatch(sequence, 4, word));
55 std::stringstream output;
57 Sequence::printNearbyWords(output, sequence, 8, word, 4);
60 word 'ACTG' found -4 away from position 8.\n\ 61 word 'ACTG' found 0 away from position 8.\n\ 64 check(m_failures, ++m_testNum,
"Test printNearbyWords with std::string", expect, output.str());
67 Sequence::getString(sequence, 4, 4, word);
69 check(m_failures, ++m_testNum,
"Test getString with std::string",
"ACTG", word);
71 Sequence::getHighLightedString(sequence, 0, 12, word, 4, 8);
72 check(m_failures, ++m_testNum,
"Test getHighLightedStribng with std::string",
"ACTGactgACTG",word);
77 output.str(std::string());
79 Sequence::printBaseContext(output, sequence, 8, 4);
85 check(m_failures, ++m_testNum,
"Test printBaseContext with std::string", expect, output.str());
88 std::string read(
"ACTGZZZZACTG");
90 Sequence::getMismatchHatString(sequence, 4, result, read);
91 check(m_failures, ++m_testNum,
"Test getMismatchHatString with std::string", expect, result);
95 std::string quality(
"");
96 size_t location = Sequence::simpleLocalAligner(sequence, 0, read, quality, 12);
97 check(m_failures, ++m_testNum,
"Test simpleLocalAligner with std::string", (
size_t) 0, location);
100 int misMatches = Sequence::getMismatchCount(sequence, 0, read);
101 check(m_failures, ++m_testNum,
"Test getMismatchCount with std::string", 1, misMatches);
105 int sumQ = Sequence::getSumQ(sequence, 0, read, quality);
106 check(m_failures, ++m_testNum,
"Test getSumQ with std::string", 3, sumQ);
109 void ReferenceSequenceTest::test2(
void)
114 sequence.push_back(
'A');
115 sequence.push_back(
'C');
116 sequence.push_back(
'T');
117 sequence.push_back(
'G');
119 sequence.push_back(
'A');
120 sequence.push_back(
'C');
121 sequence.push_back(
'T');
122 sequence.push_back(
'G');
124 sequence.push_back(
'A');
125 sequence.push_back(
'C');
126 sequence.push_back(
'T');
127 sequence.push_back(
'G');
129 sequence.push_back(
'A');
130 sequence.push_back(
'C');
131 sequence.push_back(
'T');
132 sequence.push_back(
'G');
134 Sequence::getString(sequence, 4, 4, word);
136 check(m_failures, ++m_testNum,
"Test getString with PackedSequenceData",
"ACTG", word);
138 std::cout <<
"test2 sequence utilization is " << sequence.getUtilization() * 100 <<
"% - expect around 6.25%" << std::endl;
142 void ReferenceSequenceTest::test3(
void)
144 std::vector<PackedSequenceData> chromosomeSequence;
145 std::vector<std::string> chromosomeNames;
147 bool result = loadFastaFile(
"../phiX.fa", chromosomeSequence, chromosomeNames);
150 std::cout <<
"../phiX.fa not found - skipping these tests." << std::endl;
154 std::cout <<
"phiX reference utilization is " << chromosomeSequence[0].getUtilization() * 100 <<
"% - expect around 96.8%" << std::endl;
158 check(m_failures, ++m_testNum,
"Test loadFastaFile with PackedSequenceData", (
size_t) 1, chromosomeNames.size());
159 check(m_failures, ++m_testNum,
"Test loadFastaFile with PackedSequenceData", (
size_t) 1, chromosomeSequence.size());
160 check(m_failures, ++m_testNum,
"Test loadFastaFile with PackedSequenceData",
"1", chromosomeNames[0]);
164 Sequence::getString(chromosomeSequence[0], 60, 10, word);
166 check(m_failures, ++m_testNum,
"Test loadFastaFile with PackedSequenceData",
"AAATTATCTT", word);
170 void ReferenceSequenceTest::humanGenomeTest1(
void)
172 std::vector<PackedSequenceData> chromosomeSequence;
173 std::vector<std::string> chromosomeNames;
175 #define HUMAN_GENOME "/data/local/ref/karma.ref/human.g1k.v37.fa" 176 bool result = loadFastaFile(HUMAN_GENOME, chromosomeSequence, chromosomeNames);
179 std::cout << HUMAN_GENOME <<
" not found - skipping these tests." << std::endl;
185 int main(
int argc,
char **argv)
193 exit(test.getFailureCount());