libStatGen Software 1
Loading...
Searching...
No Matches
FastQFileTest.cpp
1/*
2 * Copyright (C) 2010 Regents of the University of Michigan
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "FastQFile.h"
19#include <assert.h>
20
21const String FIRST_SEQID_LINE = "@Valid with comment";
22const String FIRST_SEQID = "Valid";
23const String FIRST_RAW_SEQ = "ACTGNactng.0123";
24const String FIRST_PLUS_LINE = "+";
25const String FIRST_QUALITY = "!#\"$%&'()*+,-./";
26const String SECOND_SEQID_LINE = "@Valid1 with comment";
27const String SECOND_SEQID = "Valid1";
28const String SECOND_RAW_SEQ = "ACTGACTNactngaac";
29const String SECOND_PLUS_LINE = "+";
30const String SECOND_QUALITY = "0123456789:;<=>@";
31const String THIRD_SEQID_LINE = "@Valid2";
32const String THIRD_SEQID = "Valid2";
33const String THIRD_RAW_SEQ = "A123.0321.011";
34const String THIRD_PLUS_LINE = "+";
35const String THIRD_QUALITY = "?@ABCDEFGHIJK";
36const String FOURTH_SEQID_LINE = "@Valid3";
37const String FOURTH_SEQID = "Valid3";
38const String FOURTH_RAW_SEQ = "ACTGACTNactngACTGACTNactng";
39const String FOURTH_PLUS_LINE = "+";
40const String FOURTH_QUALITY = "LMNOPQRSTUVWXYZ[\\]^_'abcde";
41const String FIFTH_SEQID_LINE = "@Valid4";
42const String FIFTH_SEQID = "Valid4";
43const String FIFTH_RAW_SEQ = "ACTGACTNactngACTGACTNactng";
44const String FIFTH_PLUS_LINE = "+";
45const String FIFTH_QUALITY = "fghijklmnopqrstuvwxyz{|}~~";
46const String SIXTH_SEQID_LINE = "@";
47const String SIXTH_SEQID = "";
48const String SIXTH_RAW_SEQ = "ACTGACTNactng";
49const String SIXTH_PLUS_LINE = "+";
50const String SIXTH_QUALITY = "?@ABCDEFGHIJK";
51const String SEVENTH_SEQID_LINE = "Line no start with @";
52const String SEVENTH_SEQID = "";
53const String SEVENTH_RAW_SEQ = "ACTGACTNactng";
54const String SEVENTH_PLUS_LINE = "+";
55const String SEVENTH_QUALITY = "LMNOPQRSTUVWX";
56const String EIGHTH_SEQID_LINE = "@ a";
57const String EIGHTH_SEQID = "";
58const String EIGHTH_RAW_SEQ = "ACTGACTNactng";
59const String EIGHTH_PLUS_LINE = "+";
60const String EIGHTH_QUALITY = "YZ[\\]^_'abcde";
61const String NINTH_SEQID_LINE = "@ ";
62const String NINTH_SEQID = "";
63const String NINTH_RAW_SEQ = "ACTGACTNactng";
64const String NINTH_PLUS_LINE = "+";
65const String NINTH_QUALITY = "fghijklmnopqr";
66const String TENTH_SEQID_LINE = "@Valid";
67const String TENTH_SEQID = "Valid";
68const String TENTH_RAW_SEQ = "ACTGNactng";
69const String TENTH_PLUS_LINE = "+";
70const String TENTH_QUALITY = "!#\"$%&'()*";
71const String ELEVENTH_SEQID_LINE = "@RawError1";
72const String ELEVENTH_SEQID = "RawError1";
73const String ELEVENTH_RAW_SEQ = "ACTNaHtng0aBZa";
74const String ELEVENTH_PLUS_LINE = "+";
75const String ELEVENTH_QUALITY = "ACTNactng0aBaZ";
76const String TWELFTH_SEQID_LINE = "@RawError2";
77const String TWELFTH_SEQID = "RawError2";
78const String TWELFTH_RAW_SEQ = "aaa";
79const String TWELFTH_PLUS_LINE = "+";
80const String TWELFTH_QUALITY = "aaa";
81const String THIRTEENTH_SEQID_LINE = "@RawError3";
82const String THIRTEENTH_SEQID = "RawError3";
83const String THIRTEENTH_RAW_SEQ = "ACTGACTNactng";
84const String THIRTEENTH_PLUS_LINE = "+";
85const String THIRTEENTH_QUALITY = "ACTGACTNactng";
86const String FOURTEENTH_SEQID_LINE = "@QualityError1";
87const String FOURTEENTH_SEQID = "QualityError1";
88const String FOURTEENTH_RAW_SEQ = "ACTGCacgnc";
89const String FOURTEENTH_PLUS_LINE = "+";
90const String FOURTEENTH_QUALITY = "ac gcacg n";
91const String FIFTEENTH_SEQID_LINE = "@QualityError2";
92const String FIFTEENTH_SEQID = "QualityError2";
93const String FIFTEENTH_RAW_SEQ = "ACTGCacgnc";
94const String FIFTEENTH_PLUS_LINE = "+";
95const String FIFTEENTH_QUALITY = "actgc@cgnc";
96const String SIXTEENTH_SEQID_LINE = "@QualityError3";
97const String SIXTEENTH_SEQID = "QualityError3";
98const String SIXTEENTH_RAW_SEQ = "ACTGCacgnc";
99const String SIXTEENTH_PLUS_LINE = "+";
100const String SIXTEENTH_QUALITY = "actgc77acgnc";
101const String SEVENTEENTH_SEQID_LINE = "@PlusValid1";
102const String SEVENTEENTH_SEQID = "PlusValid1";
103const String SEVENTEENTH_RAW_SEQ = "ACTGCacgnc";
104const String SEVENTEENTH_PLUS_LINE = "+PlusValid1";
105const String SEVENTEENTH_QUALITY = "actgcacgnc";
106const String EIGHTEENTH_SEQID_LINE = "@PlusValid2";
107const String EIGHTEENTH_SEQID = "PlusValid2";
108const String EIGHTEENTH_RAW_SEQ = "ACTGCacgnc";
109const String EIGHTEENTH_PLUS_LINE = "+PlusValid2 Added comment";
110const String EIGHTEENTH_QUALITY = "actgcacgnc";
111const String NINETEENTH_SEQID_LINE = "@PlusError1";
112const String NINETEENTH_SEQID = "PlusError1";
113const String NINETEENTH_RAW_SEQ = "ACTGCacgnc";
114const String NINETEENTH_PLUS_LINE = "+PlusError2";
115const String NINETEENTH_QUALITY = "actgcacgnc";
116
117const String TWENTIETH_SEQID_LINE = "@InvalidColor";
118const String TWENTIETH_SEQID = "InvalidColor";
119const String TWENTIETH_RAW_SEQ = "0123.0321.011";
120const String TWENTIETH_PLUS_LINE = "+";
121const String TWENTIETH_QUALITY = "0123.0321.011";
122
123
124const String TWENTY_FIRST_SEQID_LINE = "@PlusError2";
125const String TWENTY_FIRST_SEQID = "PlusError2";
126const String TWENTY_FIRST_RAW_SEQ = "ACTGCacgnc";
127const String TWENTY_FIRST_PLUS_LINE = "";
128const String TWENTY_FIRST_QUALITY = "";
129
130void testReadUnOpenedFile()
131{
132 FastQFile fastqfile;
133
134 assert(fastqfile.isOpen() == false);
136 assert(fastqfile.isOpen() == false);
137}
138
139void testOpenFile()
140{
141 FastQFile fastqfile;
142
143 // Test for non-existent file.
144 assert(fastqfile.isOpen() == false);
145 assert(fastqfile.openFile("noexist.txt", BaseAsciiMap::UNKNOWN) == FastQStatus::FASTQ_OPEN_ERROR);
146 assert(fastqfile.isOpen() == false);
147
148
149}
150
151
152void testCloseFile()
153{
154 FastQFile fastqfile;
155
156 // Test closing a file even though there isn't one open - counts as success.
157 assert(fastqfile.isOpen() == false);
158 assert(fastqfile.closeFile() == FastQStatus::FASTQ_SUCCESS);
159 assert(fastqfile.isOpen() == false);
160}
161
162
163void testReadSequence()
164{
165 FastQFile fastqfile;
166
167 assert(fastqfile.isOpen() == false);
168 assert(fastqfile.openFile("testFile.txt") == FastQStatus::FASTQ_SUCCESS);
169
170 assert(fastqfile.isOpen() == true);
171
172 assert(fastqfile.getSpaceType() == BaseAsciiMap::UNKNOWN);
173
174 // Read Sequence from test file.
175 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
176 assert(fastqfile.mySequenceIdLine == FIRST_SEQID_LINE);
177 assert(fastqfile.mySequenceIdentifier == FIRST_SEQID);
178 assert(fastqfile.myRawSequence == FIRST_RAW_SEQ);
179 assert(fastqfile.myPlusLine == FIRST_PLUS_LINE);
180 assert(fastqfile.myQualityString == FIRST_QUALITY);
181 assert(fastqfile.getSpaceType() == BaseAsciiMap::BASE_SPACE);
182
183 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
184 assert(fastqfile.mySequenceIdLine == SECOND_SEQID_LINE);
185 assert(fastqfile.mySequenceIdentifier == SECOND_SEQID);
186 assert(fastqfile.myRawSequence == SECOND_RAW_SEQ);
187 assert(fastqfile.myPlusLine == SECOND_PLUS_LINE);
188 assert(fastqfile.myQualityString == SECOND_QUALITY);
189
190 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
191 assert(fastqfile.mySequenceIdLine == THIRD_SEQID_LINE);
192 assert(fastqfile.mySequenceIdentifier == THIRD_SEQID);
193 assert(fastqfile.myRawSequence == THIRD_RAW_SEQ);
194 assert(fastqfile.myPlusLine == THIRD_PLUS_LINE);
195 assert(fastqfile.myQualityString == THIRD_QUALITY);
196
197 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
198 assert(fastqfile.mySequenceIdLine == FOURTH_SEQID_LINE);
199 assert(fastqfile.mySequenceIdentifier == FOURTH_SEQID);
200 assert(fastqfile.myRawSequence == FOURTH_RAW_SEQ);
201 assert(fastqfile.myPlusLine == FOURTH_PLUS_LINE);
202 assert(fastqfile.myQualityString == FOURTH_QUALITY);
203
204 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
205 assert(fastqfile.mySequenceIdLine == FIFTH_SEQID_LINE);
206 assert(fastqfile.mySequenceIdentifier == FIFTH_SEQID);
207 assert(fastqfile.myRawSequence == FIFTH_RAW_SEQ);
208 assert(fastqfile.myPlusLine == FIFTH_PLUS_LINE);
209 assert(fastqfile.myQualityString == FIFTH_QUALITY);
210
211 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
212 assert(fastqfile.mySequenceIdLine == SIXTH_SEQID_LINE);
213 assert(fastqfile.mySequenceIdentifier == SIXTH_SEQID);
214 assert(fastqfile.myRawSequence == SIXTH_RAW_SEQ);
215 assert(fastqfile.myPlusLine == SIXTH_PLUS_LINE);
216 assert(fastqfile.myQualityString == SIXTH_QUALITY);
217
218 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
219 assert(fastqfile.mySequenceIdLine == SEVENTH_SEQID_LINE);
220 assert(fastqfile.mySequenceIdentifier == SEVENTH_SEQID);
221 assert(fastqfile.myRawSequence == SEVENTH_RAW_SEQ);
222 assert(fastqfile.myPlusLine == SEVENTH_PLUS_LINE);
223 assert(fastqfile.myQualityString == SEVENTH_QUALITY);
224
225 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
226 assert(fastqfile.mySequenceIdLine == EIGHTH_SEQID_LINE);
227 assert(fastqfile.mySequenceIdentifier == EIGHTH_SEQID);
228 assert(fastqfile.myRawSequence == EIGHTH_RAW_SEQ);
229 assert(fastqfile.myPlusLine == EIGHTH_PLUS_LINE);
230 assert(fastqfile.myQualityString == EIGHTH_QUALITY);
231
232 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
233 assert(fastqfile.mySequenceIdLine == NINTH_SEQID_LINE);
234 assert(fastqfile.mySequenceIdentifier == NINTH_SEQID);
235 assert(fastqfile.myRawSequence == NINTH_RAW_SEQ);
236 assert(fastqfile.myPlusLine == NINTH_PLUS_LINE);
237 assert(fastqfile.myQualityString == NINTH_QUALITY);
238
239 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
240 assert(fastqfile.mySequenceIdLine == TENTH_SEQID_LINE);
241 assert(fastqfile.mySequenceIdentifier == TENTH_SEQID);
242 assert(fastqfile.myRawSequence == TENTH_RAW_SEQ);
243 assert(fastqfile.myPlusLine == TENTH_PLUS_LINE);
244 assert(fastqfile.myQualityString == TENTH_QUALITY);
245
246 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
247 assert(fastqfile.mySequenceIdLine == ELEVENTH_SEQID_LINE);
248 assert(fastqfile.mySequenceIdentifier == ELEVENTH_SEQID);
249 assert(fastqfile.myRawSequence == ELEVENTH_RAW_SEQ);
250 assert(fastqfile.myPlusLine == ELEVENTH_PLUS_LINE);
251 assert(fastqfile.myQualityString == ELEVENTH_QUALITY);
252
253 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
254 assert(fastqfile.mySequenceIdLine == TWELFTH_SEQID_LINE);
255 assert(fastqfile.mySequenceIdentifier == TWELFTH_SEQID);
256 assert(fastqfile.myRawSequence == TWELFTH_RAW_SEQ);
257 assert(fastqfile.myPlusLine == TWELFTH_PLUS_LINE);
258 assert(fastqfile.myQualityString == TWELFTH_QUALITY);
259
260 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
261 assert(fastqfile.mySequenceIdLine == THIRTEENTH_SEQID_LINE);
262 assert(fastqfile.mySequenceIdentifier == THIRTEENTH_SEQID);
263 assert(fastqfile.myRawSequence == THIRTEENTH_RAW_SEQ);
264 assert(fastqfile.myPlusLine == THIRTEENTH_PLUS_LINE);
265 assert(fastqfile.myQualityString == THIRTEENTH_QUALITY);
266
267 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
268 assert(fastqfile.mySequenceIdLine == FOURTEENTH_SEQID_LINE);
269 assert(fastqfile.mySequenceIdentifier == FOURTEENTH_SEQID);
270 assert(fastqfile.myRawSequence == FOURTEENTH_RAW_SEQ);
271 assert(fastqfile.myPlusLine == FOURTEENTH_PLUS_LINE);
272 assert(fastqfile.myQualityString == FOURTEENTH_QUALITY);
273
274 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
275 assert(fastqfile.mySequenceIdLine == FIFTEENTH_SEQID_LINE);
276 assert(fastqfile.mySequenceIdentifier == FIFTEENTH_SEQID);
277 assert(fastqfile.myRawSequence == FIFTEENTH_RAW_SEQ);
278 assert(fastqfile.myPlusLine == FIFTEENTH_PLUS_LINE);
279 assert(fastqfile.myQualityString == FIFTEENTH_QUALITY);
280
281 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
282 assert(fastqfile.mySequenceIdLine == SIXTEENTH_SEQID_LINE);
283 assert(fastqfile.mySequenceIdentifier == SIXTEENTH_SEQID);
284 assert(fastqfile.myRawSequence == SIXTEENTH_RAW_SEQ);
285 assert(fastqfile.myPlusLine == SIXTEENTH_PLUS_LINE);
286 assert(fastqfile.myQualityString == SIXTEENTH_QUALITY);
287
288 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
289 assert(fastqfile.mySequenceIdLine == SEVENTEENTH_SEQID_LINE);
290 assert(fastqfile.mySequenceIdentifier == SEVENTEENTH_SEQID);
291 assert(fastqfile.myRawSequence == SEVENTEENTH_RAW_SEQ);
292 assert(fastqfile.myPlusLine == SEVENTEENTH_PLUS_LINE);
293 assert(fastqfile.myQualityString == SEVENTEENTH_QUALITY);
294
295 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
296 assert(fastqfile.mySequenceIdLine == EIGHTEENTH_SEQID_LINE);
297 assert(fastqfile.mySequenceIdentifier == EIGHTEENTH_SEQID);
298 assert(fastqfile.myRawSequence == EIGHTEENTH_RAW_SEQ);
299 assert(fastqfile.myPlusLine == EIGHTEENTH_PLUS_LINE);
300 assert(fastqfile.myQualityString == EIGHTEENTH_QUALITY);
301
302 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
303 assert(fastqfile.mySequenceIdLine == NINETEENTH_SEQID_LINE);
304 assert(fastqfile.mySequenceIdentifier == NINETEENTH_SEQID);
305 assert(fastqfile.myRawSequence == NINETEENTH_RAW_SEQ);
306 assert(fastqfile.myPlusLine == NINETEENTH_PLUS_LINE);
307 assert(fastqfile.myQualityString == NINETEENTH_QUALITY);
308
309 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
310 assert(fastqfile.mySequenceIdLine == TWENTIETH_SEQID_LINE);
311 assert(fastqfile.mySequenceIdentifier == TWENTIETH_SEQID);
312 assert(fastqfile.myRawSequence == TWENTIETH_RAW_SEQ);
313 assert(fastqfile.myPlusLine == TWENTIETH_PLUS_LINE);
314 assert(fastqfile.myQualityString == TWENTIETH_QUALITY);
315
316 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
317 assert(fastqfile.mySequenceIdLine == TWENTY_FIRST_SEQID_LINE);
318 assert(fastqfile.mySequenceIdentifier == TWENTY_FIRST_SEQID);
319 assert(fastqfile.myRawSequence == TWENTY_FIRST_RAW_SEQ);
320 assert(fastqfile.myPlusLine == TWENTY_FIRST_PLUS_LINE);
321 assert(fastqfile.myQualityString == TWENTY_FIRST_QUALITY);
322
323 // Close the file, and verify isOpen = false;
324 assert(fastqfile.closeFile() == FastQStatus::FASTQ_SUCCESS);
325 assert(fastqfile.isOpen() == false);
326
327
328 //////////////////////////////////
329 // Repeat test specifying base space
330 assert(fastqfile.isOpen() == false);
331 assert(fastqfile.openFile("testFile.txt", BaseAsciiMap::BASE_SPACE) == FastQStatus::FASTQ_SUCCESS);
332
333 assert(fastqfile.isOpen() == true);
334
335 assert(fastqfile.getSpaceType() == BaseAsciiMap::BASE_SPACE);
336
337 // Read Sequence from test file.
338 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
339 assert(fastqfile.mySequenceIdLine == FIRST_SEQID_LINE);
340 assert(fastqfile.mySequenceIdentifier == FIRST_SEQID);
341 assert(fastqfile.myRawSequence == FIRST_RAW_SEQ);
342 assert(fastqfile.myPlusLine == FIRST_PLUS_LINE);
343 assert(fastqfile.myQualityString == FIRST_QUALITY);
344 assert(fastqfile.getSpaceType() == BaseAsciiMap::BASE_SPACE);
345
346 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
347 assert(fastqfile.mySequenceIdLine == SECOND_SEQID_LINE);
348 assert(fastqfile.mySequenceIdentifier == SECOND_SEQID);
349 assert(fastqfile.myRawSequence == SECOND_RAW_SEQ);
350 assert(fastqfile.myPlusLine == SECOND_PLUS_LINE);
351 assert(fastqfile.myQualityString == SECOND_QUALITY);
352
353 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
354 assert(fastqfile.mySequenceIdLine == THIRD_SEQID_LINE);
355 assert(fastqfile.mySequenceIdentifier == THIRD_SEQID);
356 assert(fastqfile.myRawSequence == THIRD_RAW_SEQ);
357 assert(fastqfile.myPlusLine == THIRD_PLUS_LINE);
358 assert(fastqfile.myQualityString == THIRD_QUALITY);
359
360 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
361 assert(fastqfile.mySequenceIdLine == FOURTH_SEQID_LINE);
362 assert(fastqfile.mySequenceIdentifier == FOURTH_SEQID);
363 assert(fastqfile.myRawSequence == FOURTH_RAW_SEQ);
364 assert(fastqfile.myPlusLine == FOURTH_PLUS_LINE);
365 assert(fastqfile.myQualityString == FOURTH_QUALITY);
366
367 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
368 assert(fastqfile.mySequenceIdLine == FIFTH_SEQID_LINE);
369 assert(fastqfile.mySequenceIdentifier == FIFTH_SEQID);
370 assert(fastqfile.myRawSequence == FIFTH_RAW_SEQ);
371 assert(fastqfile.myPlusLine == FIFTH_PLUS_LINE);
372 assert(fastqfile.myQualityString == FIFTH_QUALITY);
373
374 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
375 assert(fastqfile.mySequenceIdLine == SIXTH_SEQID_LINE);
376 assert(fastqfile.mySequenceIdentifier == SIXTH_SEQID);
377 assert(fastqfile.myRawSequence == SIXTH_RAW_SEQ);
378 assert(fastqfile.myPlusLine == SIXTH_PLUS_LINE);
379 assert(fastqfile.myQualityString == SIXTH_QUALITY);
380
381 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
382 assert(fastqfile.mySequenceIdLine == SEVENTH_SEQID_LINE);
383 assert(fastqfile.mySequenceIdentifier == SEVENTH_SEQID);
384 assert(fastqfile.myRawSequence == SEVENTH_RAW_SEQ);
385 assert(fastqfile.myPlusLine == SEVENTH_PLUS_LINE);
386 assert(fastqfile.myQualityString == SEVENTH_QUALITY);
387
388 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
389 assert(fastqfile.mySequenceIdLine == EIGHTH_SEQID_LINE);
390 assert(fastqfile.mySequenceIdentifier == EIGHTH_SEQID);
391 assert(fastqfile.myRawSequence == EIGHTH_RAW_SEQ);
392 assert(fastqfile.myPlusLine == EIGHTH_PLUS_LINE);
393 assert(fastqfile.myQualityString == EIGHTH_QUALITY);
394
395 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
396 assert(fastqfile.mySequenceIdLine == NINTH_SEQID_LINE);
397 assert(fastqfile.mySequenceIdentifier == NINTH_SEQID);
398 assert(fastqfile.myRawSequence == NINTH_RAW_SEQ);
399 assert(fastqfile.myPlusLine == NINTH_PLUS_LINE);
400 assert(fastqfile.myQualityString == NINTH_QUALITY);
401
402 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
403 assert(fastqfile.mySequenceIdLine == TENTH_SEQID_LINE);
404 assert(fastqfile.mySequenceIdentifier == TENTH_SEQID);
405 assert(fastqfile.myRawSequence == TENTH_RAW_SEQ);
406 assert(fastqfile.myPlusLine == TENTH_PLUS_LINE);
407 assert(fastqfile.myQualityString == TENTH_QUALITY);
408
409 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
410 assert(fastqfile.mySequenceIdLine == ELEVENTH_SEQID_LINE);
411 assert(fastqfile.mySequenceIdentifier == ELEVENTH_SEQID);
412 assert(fastqfile.myRawSequence == ELEVENTH_RAW_SEQ);
413 assert(fastqfile.myPlusLine == ELEVENTH_PLUS_LINE);
414 assert(fastqfile.myQualityString == ELEVENTH_QUALITY);
415
416 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
417 assert(fastqfile.mySequenceIdLine == TWELFTH_SEQID_LINE);
418 assert(fastqfile.mySequenceIdentifier == TWELFTH_SEQID);
419 assert(fastqfile.myRawSequence == TWELFTH_RAW_SEQ);
420 assert(fastqfile.myPlusLine == TWELFTH_PLUS_LINE);
421 assert(fastqfile.myQualityString == TWELFTH_QUALITY);
422
423 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
424 assert(fastqfile.mySequenceIdLine == THIRTEENTH_SEQID_LINE);
425 assert(fastqfile.mySequenceIdentifier == THIRTEENTH_SEQID);
426 assert(fastqfile.myRawSequence == THIRTEENTH_RAW_SEQ);
427 assert(fastqfile.myPlusLine == THIRTEENTH_PLUS_LINE);
428 assert(fastqfile.myQualityString == THIRTEENTH_QUALITY);
429
430 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
431 assert(fastqfile.mySequenceIdLine == FOURTEENTH_SEQID_LINE);
432 assert(fastqfile.mySequenceIdentifier == FOURTEENTH_SEQID);
433 assert(fastqfile.myRawSequence == FOURTEENTH_RAW_SEQ);
434 assert(fastqfile.myPlusLine == FOURTEENTH_PLUS_LINE);
435 assert(fastqfile.myQualityString == FOURTEENTH_QUALITY);
436
437 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
438 assert(fastqfile.mySequenceIdLine == FIFTEENTH_SEQID_LINE);
439 assert(fastqfile.mySequenceIdentifier == FIFTEENTH_SEQID);
440 assert(fastqfile.myRawSequence == FIFTEENTH_RAW_SEQ);
441 assert(fastqfile.myPlusLine == FIFTEENTH_PLUS_LINE);
442 assert(fastqfile.myQualityString == FIFTEENTH_QUALITY);
443
444 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
445 assert(fastqfile.mySequenceIdLine == SIXTEENTH_SEQID_LINE);
446 assert(fastqfile.mySequenceIdentifier == SIXTEENTH_SEQID);
447 assert(fastqfile.myRawSequence == SIXTEENTH_RAW_SEQ);
448 assert(fastqfile.myPlusLine == SIXTEENTH_PLUS_LINE);
449 assert(fastqfile.myQualityString == SIXTEENTH_QUALITY);
450
451 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
452 assert(fastqfile.mySequenceIdLine == SEVENTEENTH_SEQID_LINE);
453 assert(fastqfile.mySequenceIdentifier == SEVENTEENTH_SEQID);
454 assert(fastqfile.myRawSequence == SEVENTEENTH_RAW_SEQ);
455 assert(fastqfile.myPlusLine == SEVENTEENTH_PLUS_LINE);
456 assert(fastqfile.myQualityString == SEVENTEENTH_QUALITY);
457
458 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
459 assert(fastqfile.mySequenceIdLine == EIGHTEENTH_SEQID_LINE);
460 assert(fastqfile.mySequenceIdentifier == EIGHTEENTH_SEQID);
461 assert(fastqfile.myRawSequence == EIGHTEENTH_RAW_SEQ);
462 assert(fastqfile.myPlusLine == EIGHTEENTH_PLUS_LINE);
463 assert(fastqfile.myQualityString == EIGHTEENTH_QUALITY);
464
465 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
466 assert(fastqfile.mySequenceIdLine == NINETEENTH_SEQID_LINE);
467 assert(fastqfile.mySequenceIdentifier == NINETEENTH_SEQID);
468 assert(fastqfile.myRawSequence == NINETEENTH_RAW_SEQ);
469 assert(fastqfile.myPlusLine == NINETEENTH_PLUS_LINE);
470 assert(fastqfile.myQualityString == NINETEENTH_QUALITY);
471
472 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
473 assert(fastqfile.mySequenceIdLine == TWENTIETH_SEQID_LINE);
474 assert(fastqfile.mySequenceIdentifier == TWENTIETH_SEQID);
475 assert(fastqfile.myRawSequence == TWENTIETH_RAW_SEQ);
476 assert(fastqfile.myPlusLine == TWENTIETH_PLUS_LINE);
477 assert(fastqfile.myQualityString == TWENTIETH_QUALITY);
478
479 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
480 assert(fastqfile.mySequenceIdLine == TWENTY_FIRST_SEQID_LINE);
481 assert(fastqfile.mySequenceIdentifier == TWENTY_FIRST_SEQID);
482 assert(fastqfile.myRawSequence == TWENTY_FIRST_RAW_SEQ);
483 assert(fastqfile.myPlusLine == TWENTY_FIRST_PLUS_LINE);
484 assert(fastqfile.myQualityString == TWENTY_FIRST_QUALITY);
485
486 // Close the file, and verify isOpen = false;
487 assert(fastqfile.closeFile() == FastQStatus::FASTQ_SUCCESS);
488 assert(fastqfile.isOpen() == false);
489
490
491 ////////////////////////////////
492 // Repeat test specifying color space
493 assert(fastqfile.isOpen() == false);
494 assert(fastqfile.openFile("testFile.txt", BaseAsciiMap::COLOR_SPACE) == FastQStatus::FASTQ_SUCCESS);
495
496 assert(fastqfile.isOpen() == true);
497
498 assert(fastqfile.getSpaceType() == BaseAsciiMap::COLOR_SPACE);
499
500 // Read Sequence from test file.
501 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
502 assert(fastqfile.mySequenceIdLine == FIRST_SEQID_LINE);
503 assert(fastqfile.mySequenceIdentifier == FIRST_SEQID);
504 assert(fastqfile.myRawSequence == FIRST_RAW_SEQ);
505 assert(fastqfile.myPlusLine == FIRST_PLUS_LINE);
506 assert(fastqfile.myQualityString == FIRST_QUALITY);
507 assert(fastqfile.getSpaceType() == BaseAsciiMap::COLOR_SPACE);
508
509 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
510 assert(fastqfile.mySequenceIdLine == SECOND_SEQID_LINE);
511 assert(fastqfile.mySequenceIdentifier == SECOND_SEQID);
512 assert(fastqfile.myRawSequence == SECOND_RAW_SEQ);
513 assert(fastqfile.myPlusLine == SECOND_PLUS_LINE);
514 assert(fastqfile.myQualityString == SECOND_QUALITY);
515
516 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
517 assert(fastqfile.mySequenceIdLine == THIRD_SEQID_LINE);
518 assert(fastqfile.mySequenceIdentifier == THIRD_SEQID);
519 assert(fastqfile.myRawSequence == THIRD_RAW_SEQ);
520 assert(fastqfile.myPlusLine == THIRD_PLUS_LINE);
521 assert(fastqfile.myQualityString == THIRD_QUALITY);
522
523 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
524 assert(fastqfile.mySequenceIdLine == FOURTH_SEQID_LINE);
525 assert(fastqfile.mySequenceIdentifier == FOURTH_SEQID);
526 assert(fastqfile.myRawSequence == FOURTH_RAW_SEQ);
527 assert(fastqfile.myPlusLine == FOURTH_PLUS_LINE);
528 assert(fastqfile.myQualityString == FOURTH_QUALITY);
529
530 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
531 assert(fastqfile.mySequenceIdLine == FIFTH_SEQID_LINE);
532 assert(fastqfile.mySequenceIdentifier == FIFTH_SEQID);
533 assert(fastqfile.myRawSequence == FIFTH_RAW_SEQ);
534 assert(fastqfile.myPlusLine == FIFTH_PLUS_LINE);
535 assert(fastqfile.myQualityString == FIFTH_QUALITY);
536
537 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
538 assert(fastqfile.mySequenceIdLine == SIXTH_SEQID_LINE);
539 assert(fastqfile.mySequenceIdentifier == SIXTH_SEQID);
540 assert(fastqfile.myRawSequence == SIXTH_RAW_SEQ);
541 assert(fastqfile.myPlusLine == SIXTH_PLUS_LINE);
542 assert(fastqfile.myQualityString == SIXTH_QUALITY);
543
544 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
545 assert(fastqfile.mySequenceIdLine == SEVENTH_SEQID_LINE);
546 assert(fastqfile.mySequenceIdentifier == SEVENTH_SEQID);
547 assert(fastqfile.myRawSequence == SEVENTH_RAW_SEQ);
548 assert(fastqfile.myPlusLine == SEVENTH_PLUS_LINE);
549 assert(fastqfile.myQualityString == SEVENTH_QUALITY);
550
551 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
552 assert(fastqfile.mySequenceIdLine == EIGHTH_SEQID_LINE);
553 assert(fastqfile.mySequenceIdentifier == EIGHTH_SEQID);
554 assert(fastqfile.myRawSequence == EIGHTH_RAW_SEQ);
555 assert(fastqfile.myPlusLine == EIGHTH_PLUS_LINE);
556 assert(fastqfile.myQualityString == EIGHTH_QUALITY);
557
558 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
559 assert(fastqfile.mySequenceIdLine == NINTH_SEQID_LINE);
560 assert(fastqfile.mySequenceIdentifier == NINTH_SEQID);
561 assert(fastqfile.myRawSequence == NINTH_RAW_SEQ);
562 assert(fastqfile.myPlusLine == NINTH_PLUS_LINE);
563 assert(fastqfile.myQualityString == NINTH_QUALITY);
564
565 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
566 assert(fastqfile.mySequenceIdLine == TENTH_SEQID_LINE);
567 assert(fastqfile.mySequenceIdentifier == TENTH_SEQID);
568 assert(fastqfile.myRawSequence == TENTH_RAW_SEQ);
569 assert(fastqfile.myPlusLine == TENTH_PLUS_LINE);
570 assert(fastqfile.myQualityString == TENTH_QUALITY);
571
572 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
573 assert(fastqfile.mySequenceIdLine == ELEVENTH_SEQID_LINE);
574 assert(fastqfile.mySequenceIdentifier == ELEVENTH_SEQID);
575 assert(fastqfile.myRawSequence == ELEVENTH_RAW_SEQ);
576 assert(fastqfile.myPlusLine == ELEVENTH_PLUS_LINE);
577 assert(fastqfile.myQualityString == ELEVENTH_QUALITY);
578
579 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
580 assert(fastqfile.mySequenceIdLine == TWELFTH_SEQID_LINE);
581 assert(fastqfile.mySequenceIdentifier == TWELFTH_SEQID);
582 assert(fastqfile.myRawSequence == TWELFTH_RAW_SEQ);
583 assert(fastqfile.myPlusLine == TWELFTH_PLUS_LINE);
584 assert(fastqfile.myQualityString == TWELFTH_QUALITY);
585
586 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
587 assert(fastqfile.mySequenceIdLine == THIRTEENTH_SEQID_LINE);
588 assert(fastqfile.mySequenceIdentifier == THIRTEENTH_SEQID);
589 assert(fastqfile.myRawSequence == THIRTEENTH_RAW_SEQ);
590 assert(fastqfile.myPlusLine == THIRTEENTH_PLUS_LINE);
591 assert(fastqfile.myQualityString == THIRTEENTH_QUALITY);
592
593 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
594 assert(fastqfile.mySequenceIdLine == FOURTEENTH_SEQID_LINE);
595 assert(fastqfile.mySequenceIdentifier == FOURTEENTH_SEQID);
596 assert(fastqfile.myRawSequence == FOURTEENTH_RAW_SEQ);
597 assert(fastqfile.myPlusLine == FOURTEENTH_PLUS_LINE);
598 assert(fastqfile.myQualityString == FOURTEENTH_QUALITY);
599
600 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
601 assert(fastqfile.mySequenceIdLine == FIFTEENTH_SEQID_LINE);
602 assert(fastqfile.mySequenceIdentifier == FIFTEENTH_SEQID);
603 assert(fastqfile.myRawSequence == FIFTEENTH_RAW_SEQ);
604 assert(fastqfile.myPlusLine == FIFTEENTH_PLUS_LINE);
605 assert(fastqfile.myQualityString == FIFTEENTH_QUALITY);
606
607 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
608 assert(fastqfile.mySequenceIdLine == SIXTEENTH_SEQID_LINE);
609 assert(fastqfile.mySequenceIdentifier == SIXTEENTH_SEQID);
610 assert(fastqfile.myRawSequence == SIXTEENTH_RAW_SEQ);
611 assert(fastqfile.myPlusLine == SIXTEENTH_PLUS_LINE);
612 assert(fastqfile.myQualityString == SIXTEENTH_QUALITY);
613
614 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
615 assert(fastqfile.mySequenceIdLine == SEVENTEENTH_SEQID_LINE);
616 assert(fastqfile.mySequenceIdentifier == SEVENTEENTH_SEQID);
617 assert(fastqfile.myRawSequence == SEVENTEENTH_RAW_SEQ);
618 assert(fastqfile.myPlusLine == SEVENTEENTH_PLUS_LINE);
619 assert(fastqfile.myQualityString == SEVENTEENTH_QUALITY);
620
621 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
622 assert(fastqfile.mySequenceIdLine == EIGHTEENTH_SEQID_LINE);
623 assert(fastqfile.mySequenceIdentifier == EIGHTEENTH_SEQID);
624 assert(fastqfile.myRawSequence == EIGHTEENTH_RAW_SEQ);
625 assert(fastqfile.myPlusLine == EIGHTEENTH_PLUS_LINE);
626 assert(fastqfile.myQualityString == EIGHTEENTH_QUALITY);
627
628 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
629 assert(fastqfile.mySequenceIdLine == NINETEENTH_SEQID_LINE);
630 assert(fastqfile.mySequenceIdentifier == NINETEENTH_SEQID);
631 assert(fastqfile.myRawSequence == NINETEENTH_RAW_SEQ);
632 assert(fastqfile.myPlusLine == NINETEENTH_PLUS_LINE);
633 assert(fastqfile.myQualityString == NINETEENTH_QUALITY);
634
635 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
636 assert(fastqfile.mySequenceIdLine == TWENTIETH_SEQID_LINE);
637 assert(fastqfile.mySequenceIdentifier == TWENTIETH_SEQID);
638 assert(fastqfile.myRawSequence == TWENTIETH_RAW_SEQ);
639 assert(fastqfile.myPlusLine == TWENTIETH_PLUS_LINE);
640 assert(fastqfile.myQualityString == TWENTIETH_QUALITY);
641
642 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
643 assert(fastqfile.mySequenceIdLine == TWENTY_FIRST_SEQID_LINE);
644 assert(fastqfile.mySequenceIdentifier == TWENTY_FIRST_SEQID);
645 assert(fastqfile.myRawSequence == TWENTY_FIRST_RAW_SEQ);
646 assert(fastqfile.myPlusLine == TWENTY_FIRST_PLUS_LINE);
647 assert(fastqfile.myQualityString == TWENTY_FIRST_QUALITY);
648
649 // Close the file, and verify isOpen = false;
650 assert(fastqfile.closeFile() == FastQStatus::FASTQ_SUCCESS);
651 assert(fastqfile.isOpen() == false);
652
653 ////////////////////////////////
654 // Repeat test specifying Unknown space
655 assert(fastqfile.isOpen() == false);
656 assert(fastqfile.openFile("testFile.txt", BaseAsciiMap::UNKNOWN) == FastQStatus::FASTQ_SUCCESS);
657
658 assert(fastqfile.isOpen() == true);
659
660 assert(fastqfile.getSpaceType() == BaseAsciiMap::UNKNOWN);
661
662 // Read Sequence from test file.
663 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
664 assert(fastqfile.mySequenceIdLine == FIRST_SEQID_LINE);
665 assert(fastqfile.mySequenceIdentifier == FIRST_SEQID);
666 assert(fastqfile.myRawSequence == FIRST_RAW_SEQ);
667 assert(fastqfile.myPlusLine == FIRST_PLUS_LINE);
668 assert(fastqfile.myQualityString == FIRST_QUALITY);
669 assert(fastqfile.getSpaceType() == BaseAsciiMap::BASE_SPACE);
670
671 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
672 assert(fastqfile.mySequenceIdLine == SECOND_SEQID_LINE);
673 assert(fastqfile.mySequenceIdentifier == SECOND_SEQID);
674 assert(fastqfile.myRawSequence == SECOND_RAW_SEQ);
675 assert(fastqfile.myPlusLine == SECOND_PLUS_LINE);
676 assert(fastqfile.myQualityString == SECOND_QUALITY);
677
678 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
679 assert(fastqfile.mySequenceIdLine == THIRD_SEQID_LINE);
680 assert(fastqfile.mySequenceIdentifier == THIRD_SEQID);
681 assert(fastqfile.myRawSequence == THIRD_RAW_SEQ);
682 assert(fastqfile.myPlusLine == THIRD_PLUS_LINE);
683 assert(fastqfile.myQualityString == THIRD_QUALITY);
684
685 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
686 assert(fastqfile.mySequenceIdLine == FOURTH_SEQID_LINE);
687 assert(fastqfile.mySequenceIdentifier == FOURTH_SEQID);
688 assert(fastqfile.myRawSequence == FOURTH_RAW_SEQ);
689 assert(fastqfile.myPlusLine == FOURTH_PLUS_LINE);
690 assert(fastqfile.myQualityString == FOURTH_QUALITY);
691
692 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
693 assert(fastqfile.mySequenceIdLine == FIFTH_SEQID_LINE);
694 assert(fastqfile.mySequenceIdentifier == FIFTH_SEQID);
695 assert(fastqfile.myRawSequence == FIFTH_RAW_SEQ);
696 assert(fastqfile.myPlusLine == FIFTH_PLUS_LINE);
697 assert(fastqfile.myQualityString == FIFTH_QUALITY);
698
699 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
700 assert(fastqfile.mySequenceIdLine == SIXTH_SEQID_LINE);
701 assert(fastqfile.mySequenceIdentifier == SIXTH_SEQID);
702 assert(fastqfile.myRawSequence == SIXTH_RAW_SEQ);
703 assert(fastqfile.myPlusLine == SIXTH_PLUS_LINE);
704 assert(fastqfile.myQualityString == SIXTH_QUALITY);
705
706 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
707 assert(fastqfile.mySequenceIdLine == SEVENTH_SEQID_LINE);
708 assert(fastqfile.mySequenceIdentifier == SEVENTH_SEQID);
709 assert(fastqfile.myRawSequence == SEVENTH_RAW_SEQ);
710 assert(fastqfile.myPlusLine == SEVENTH_PLUS_LINE);
711 assert(fastqfile.myQualityString == SEVENTH_QUALITY);
712
713 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
714 assert(fastqfile.mySequenceIdLine == EIGHTH_SEQID_LINE);
715 assert(fastqfile.mySequenceIdentifier == EIGHTH_SEQID);
716 assert(fastqfile.myRawSequence == EIGHTH_RAW_SEQ);
717 assert(fastqfile.myPlusLine == EIGHTH_PLUS_LINE);
718 assert(fastqfile.myQualityString == EIGHTH_QUALITY);
719
720 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
721 assert(fastqfile.mySequenceIdLine == NINTH_SEQID_LINE);
722 assert(fastqfile.mySequenceIdentifier == NINTH_SEQID);
723 assert(fastqfile.myRawSequence == NINTH_RAW_SEQ);
724 assert(fastqfile.myPlusLine == NINTH_PLUS_LINE);
725 assert(fastqfile.myQualityString == NINTH_QUALITY);
726
727 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
728 assert(fastqfile.mySequenceIdLine == TENTH_SEQID_LINE);
729 assert(fastqfile.mySequenceIdentifier == TENTH_SEQID);
730 assert(fastqfile.myRawSequence == TENTH_RAW_SEQ);
731 assert(fastqfile.myPlusLine == TENTH_PLUS_LINE);
732 assert(fastqfile.myQualityString == TENTH_QUALITY);
733
734 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
735 assert(fastqfile.mySequenceIdLine == ELEVENTH_SEQID_LINE);
736 assert(fastqfile.mySequenceIdentifier == ELEVENTH_SEQID);
737 assert(fastqfile.myRawSequence == ELEVENTH_RAW_SEQ);
738 assert(fastqfile.myPlusLine == ELEVENTH_PLUS_LINE);
739 assert(fastqfile.myQualityString == ELEVENTH_QUALITY);
740
741 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
742 assert(fastqfile.mySequenceIdLine == TWELFTH_SEQID_LINE);
743 assert(fastqfile.mySequenceIdentifier == TWELFTH_SEQID);
744 assert(fastqfile.myRawSequence == TWELFTH_RAW_SEQ);
745 assert(fastqfile.myPlusLine == TWELFTH_PLUS_LINE);
746 assert(fastqfile.myQualityString == TWELFTH_QUALITY);
747
748 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
749 assert(fastqfile.mySequenceIdLine == THIRTEENTH_SEQID_LINE);
750 assert(fastqfile.mySequenceIdentifier == THIRTEENTH_SEQID);
751 assert(fastqfile.myRawSequence == THIRTEENTH_RAW_SEQ);
752 assert(fastqfile.myPlusLine == THIRTEENTH_PLUS_LINE);
753 assert(fastqfile.myQualityString == THIRTEENTH_QUALITY);
754
755 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
756 assert(fastqfile.mySequenceIdLine == FOURTEENTH_SEQID_LINE);
757 assert(fastqfile.mySequenceIdentifier == FOURTEENTH_SEQID);
758 assert(fastqfile.myRawSequence == FOURTEENTH_RAW_SEQ);
759 assert(fastqfile.myPlusLine == FOURTEENTH_PLUS_LINE);
760 assert(fastqfile.myQualityString == FOURTEENTH_QUALITY);
761
762 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
763 assert(fastqfile.mySequenceIdLine == FIFTEENTH_SEQID_LINE);
764 assert(fastqfile.mySequenceIdentifier == FIFTEENTH_SEQID);
765 assert(fastqfile.myRawSequence == FIFTEENTH_RAW_SEQ);
766 assert(fastqfile.myPlusLine == FIFTEENTH_PLUS_LINE);
767 assert(fastqfile.myQualityString == FIFTEENTH_QUALITY);
768
769 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
770 assert(fastqfile.mySequenceIdLine == SIXTEENTH_SEQID_LINE);
771 assert(fastqfile.mySequenceIdentifier == SIXTEENTH_SEQID);
772 assert(fastqfile.myRawSequence == SIXTEENTH_RAW_SEQ);
773 assert(fastqfile.myPlusLine == SIXTEENTH_PLUS_LINE);
774 assert(fastqfile.myQualityString == SIXTEENTH_QUALITY);
775
776 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
777 assert(fastqfile.mySequenceIdLine == SEVENTEENTH_SEQID_LINE);
778 assert(fastqfile.mySequenceIdentifier == SEVENTEENTH_SEQID);
779 assert(fastqfile.myRawSequence == SEVENTEENTH_RAW_SEQ);
780 assert(fastqfile.myPlusLine == SEVENTEENTH_PLUS_LINE);
781 assert(fastqfile.myQualityString == SEVENTEENTH_QUALITY);
782
783 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
784 assert(fastqfile.mySequenceIdLine == EIGHTEENTH_SEQID_LINE);
785 assert(fastqfile.mySequenceIdentifier == EIGHTEENTH_SEQID);
786 assert(fastqfile.myRawSequence == EIGHTEENTH_RAW_SEQ);
787 assert(fastqfile.myPlusLine == EIGHTEENTH_PLUS_LINE);
788 assert(fastqfile.myQualityString == EIGHTEENTH_QUALITY);
789
790 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
791 assert(fastqfile.mySequenceIdLine == NINETEENTH_SEQID_LINE);
792 assert(fastqfile.mySequenceIdentifier == NINETEENTH_SEQID);
793 assert(fastqfile.myRawSequence == NINETEENTH_RAW_SEQ);
794 assert(fastqfile.myPlusLine == NINETEENTH_PLUS_LINE);
795 assert(fastqfile.myQualityString == NINETEENTH_QUALITY);
796
797 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
798 assert(fastqfile.mySequenceIdLine == TWENTIETH_SEQID_LINE);
799 assert(fastqfile.mySequenceIdentifier == TWENTIETH_SEQID);
800 assert(fastqfile.myRawSequence == TWENTIETH_RAW_SEQ);
801 assert(fastqfile.myPlusLine == TWENTIETH_PLUS_LINE);
802 assert(fastqfile.myQualityString == TWENTIETH_QUALITY);
803
804 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
805 assert(fastqfile.mySequenceIdLine == TWENTY_FIRST_SEQID_LINE);
806 assert(fastqfile.mySequenceIdentifier == TWENTY_FIRST_SEQID);
807 assert(fastqfile.myRawSequence == TWENTY_FIRST_RAW_SEQ);
808 assert(fastqfile.myPlusLine == TWENTY_FIRST_PLUS_LINE);
809 assert(fastqfile.myQualityString == TWENTY_FIRST_QUALITY);
810
811 // Close the file, and verify isOpen = false;
812 assert(fastqfile.closeFile() == FastQStatus::FASTQ_SUCCESS);
813 assert(fastqfile.isOpen() == false);
814
815
816 ////////////////////////////////
817 // Repeat test specifying to not check for unique sequence id.
818 fastqfile.disableSeqIDCheck();
819 assert(fastqfile.isOpen() == false);
820 assert(fastqfile.openFile("testFile.txt", BaseAsciiMap::UNKNOWN) == FastQStatus::FASTQ_SUCCESS);
821
822 assert(fastqfile.isOpen() == true);
823
824 assert(fastqfile.getSpaceType() == BaseAsciiMap::UNKNOWN);
825
826 // Read Sequence from test file.
827 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
828 assert(fastqfile.mySequenceIdLine == FIRST_SEQID_LINE);
829 assert(fastqfile.mySequenceIdentifier == FIRST_SEQID);
830 assert(fastqfile.myRawSequence == FIRST_RAW_SEQ);
831 assert(fastqfile.myPlusLine == FIRST_PLUS_LINE);
832 assert(fastqfile.myQualityString == FIRST_QUALITY);
833 assert(fastqfile.getSpaceType() == BaseAsciiMap::BASE_SPACE);
834
835 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
836 assert(fastqfile.mySequenceIdLine == SECOND_SEQID_LINE);
837 assert(fastqfile.mySequenceIdentifier == SECOND_SEQID);
838 assert(fastqfile.myRawSequence == SECOND_RAW_SEQ);
839 assert(fastqfile.myPlusLine == SECOND_PLUS_LINE);
840 assert(fastqfile.myQualityString == SECOND_QUALITY);
841
842 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
843 assert(fastqfile.mySequenceIdLine == THIRD_SEQID_LINE);
844 assert(fastqfile.mySequenceIdentifier == THIRD_SEQID);
845 assert(fastqfile.myRawSequence == THIRD_RAW_SEQ);
846 assert(fastqfile.myPlusLine == THIRD_PLUS_LINE);
847 assert(fastqfile.myQualityString == THIRD_QUALITY);
848
849 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
850 assert(fastqfile.mySequenceIdLine == FOURTH_SEQID_LINE);
851 assert(fastqfile.mySequenceIdentifier == FOURTH_SEQID);
852 assert(fastqfile.myRawSequence == FOURTH_RAW_SEQ);
853 assert(fastqfile.myPlusLine == FOURTH_PLUS_LINE);
854 assert(fastqfile.myQualityString == FOURTH_QUALITY);
855
856 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
857 assert(fastqfile.mySequenceIdLine == FIFTH_SEQID_LINE);
858 assert(fastqfile.mySequenceIdentifier == FIFTH_SEQID);
859 assert(fastqfile.myRawSequence == FIFTH_RAW_SEQ);
860 assert(fastqfile.myPlusLine == FIFTH_PLUS_LINE);
861 assert(fastqfile.myQualityString == FIFTH_QUALITY);
862
863 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
864 assert(fastqfile.mySequenceIdLine == SIXTH_SEQID_LINE);
865 assert(fastqfile.mySequenceIdentifier == SIXTH_SEQID);
866 assert(fastqfile.myRawSequence == SIXTH_RAW_SEQ);
867 assert(fastqfile.myPlusLine == SIXTH_PLUS_LINE);
868 assert(fastqfile.myQualityString == SIXTH_QUALITY);
869
870 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
871 assert(fastqfile.mySequenceIdLine == SEVENTH_SEQID_LINE);
872 assert(fastqfile.mySequenceIdentifier == SEVENTH_SEQID);
873 assert(fastqfile.myRawSequence == SEVENTH_RAW_SEQ);
874 assert(fastqfile.myPlusLine == SEVENTH_PLUS_LINE);
875 assert(fastqfile.myQualityString == SEVENTH_QUALITY);
876
877 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
878 assert(fastqfile.mySequenceIdLine == EIGHTH_SEQID_LINE);
879 assert(fastqfile.mySequenceIdentifier == EIGHTH_SEQID);
880 assert(fastqfile.myRawSequence == EIGHTH_RAW_SEQ);
881 assert(fastqfile.myPlusLine == EIGHTH_PLUS_LINE);
882 assert(fastqfile.myQualityString == EIGHTH_QUALITY);
883
884 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
885 assert(fastqfile.mySequenceIdLine == NINTH_SEQID_LINE);
886 assert(fastqfile.mySequenceIdentifier == NINTH_SEQID);
887 assert(fastqfile.myRawSequence == NINTH_RAW_SEQ);
888 assert(fastqfile.myPlusLine == NINTH_PLUS_LINE);
889 assert(fastqfile.myQualityString == NINTH_QUALITY);
890
891 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
892 assert(fastqfile.mySequenceIdLine == TENTH_SEQID_LINE);
893 assert(fastqfile.mySequenceIdentifier == TENTH_SEQID);
894 assert(fastqfile.myRawSequence == TENTH_RAW_SEQ);
895 assert(fastqfile.myPlusLine == TENTH_PLUS_LINE);
896 assert(fastqfile.myQualityString == TENTH_QUALITY);
897
898 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
899 assert(fastqfile.mySequenceIdLine == ELEVENTH_SEQID_LINE);
900 assert(fastqfile.mySequenceIdentifier == ELEVENTH_SEQID);
901 assert(fastqfile.myRawSequence == ELEVENTH_RAW_SEQ);
902 assert(fastqfile.myPlusLine == ELEVENTH_PLUS_LINE);
903 assert(fastqfile.myQualityString == ELEVENTH_QUALITY);
904
905 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
906 assert(fastqfile.mySequenceIdLine == TWELFTH_SEQID_LINE);
907 assert(fastqfile.mySequenceIdentifier == TWELFTH_SEQID);
908 assert(fastqfile.myRawSequence == TWELFTH_RAW_SEQ);
909 assert(fastqfile.myPlusLine == TWELFTH_PLUS_LINE);
910 assert(fastqfile.myQualityString == TWELFTH_QUALITY);
911
912 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
913 assert(fastqfile.mySequenceIdLine == THIRTEENTH_SEQID_LINE);
914 assert(fastqfile.mySequenceIdentifier == THIRTEENTH_SEQID);
915 assert(fastqfile.myRawSequence == THIRTEENTH_RAW_SEQ);
916 assert(fastqfile.myPlusLine == THIRTEENTH_PLUS_LINE);
917 assert(fastqfile.myQualityString == THIRTEENTH_QUALITY);
918
919 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
920 assert(fastqfile.mySequenceIdLine == FOURTEENTH_SEQID_LINE);
921 assert(fastqfile.mySequenceIdentifier == FOURTEENTH_SEQID);
922 assert(fastqfile.myRawSequence == FOURTEENTH_RAW_SEQ);
923 assert(fastqfile.myPlusLine == FOURTEENTH_PLUS_LINE);
924 assert(fastqfile.myQualityString == FOURTEENTH_QUALITY);
925
926 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
927 assert(fastqfile.mySequenceIdLine == FIFTEENTH_SEQID_LINE);
928 assert(fastqfile.mySequenceIdentifier == FIFTEENTH_SEQID);
929 assert(fastqfile.myRawSequence == FIFTEENTH_RAW_SEQ);
930 assert(fastqfile.myPlusLine == FIFTEENTH_PLUS_LINE);
931 assert(fastqfile.myQualityString == FIFTEENTH_QUALITY);
932
933 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
934 assert(fastqfile.mySequenceIdLine == SIXTEENTH_SEQID_LINE);
935 assert(fastqfile.mySequenceIdentifier == SIXTEENTH_SEQID);
936 assert(fastqfile.myRawSequence == SIXTEENTH_RAW_SEQ);
937 assert(fastqfile.myPlusLine == SIXTEENTH_PLUS_LINE);
938 assert(fastqfile.myQualityString == SIXTEENTH_QUALITY);
939
940 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
941 assert(fastqfile.mySequenceIdLine == SEVENTEENTH_SEQID_LINE);
942 assert(fastqfile.mySequenceIdentifier == SEVENTEENTH_SEQID);
943 assert(fastqfile.myRawSequence == SEVENTEENTH_RAW_SEQ);
944 assert(fastqfile.myPlusLine == SEVENTEENTH_PLUS_LINE);
945 assert(fastqfile.myQualityString == SEVENTEENTH_QUALITY);
946
947 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_SUCCESS);
948 assert(fastqfile.mySequenceIdLine == EIGHTEENTH_SEQID_LINE);
949 assert(fastqfile.mySequenceIdentifier == EIGHTEENTH_SEQID);
950 assert(fastqfile.myRawSequence == EIGHTEENTH_RAW_SEQ);
951 assert(fastqfile.myPlusLine == EIGHTEENTH_PLUS_LINE);
952 assert(fastqfile.myQualityString == EIGHTEENTH_QUALITY);
953
954 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
955 assert(fastqfile.mySequenceIdLine == NINETEENTH_SEQID_LINE);
956 assert(fastqfile.mySequenceIdentifier == NINETEENTH_SEQID);
957 assert(fastqfile.myRawSequence == NINETEENTH_RAW_SEQ);
958 assert(fastqfile.myPlusLine == NINETEENTH_PLUS_LINE);
959 assert(fastqfile.myQualityString == NINETEENTH_QUALITY);
960
961 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
962 assert(fastqfile.mySequenceIdLine == TWENTIETH_SEQID_LINE);
963 assert(fastqfile.mySequenceIdentifier == TWENTIETH_SEQID);
964 assert(fastqfile.myRawSequence == TWENTIETH_RAW_SEQ);
965 assert(fastqfile.myPlusLine == TWENTIETH_PLUS_LINE);
966 assert(fastqfile.myQualityString == TWENTIETH_QUALITY);
967
968 assert(fastqfile.readFastQSequence() == FastQStatus::FASTQ_INVALID);
969 assert(fastqfile.mySequenceIdLine == TWENTY_FIRST_SEQID_LINE);
970 assert(fastqfile.mySequenceIdentifier == TWENTY_FIRST_SEQID);
971 assert(fastqfile.myRawSequence == TWENTY_FIRST_RAW_SEQ);
972 assert(fastqfile.myPlusLine == TWENTY_FIRST_PLUS_LINE);
973 assert(fastqfile.myQualityString == TWENTY_FIRST_QUALITY);
974
975 // Close the file, and verify isOpen = false;
976 assert(fastqfile.closeFile() == FastQStatus::FASTQ_SUCCESS);
977 assert(fastqfile.isOpen() == false);
978
979
980}
981
982int main(int argc, char ** argv)
983{
984 testReadUnOpenedFile();
985 testOpenFile();
986 testCloseFile();
987 testReadSequence();
988}
989
@ COLOR_SPACE
Color space only (0,1,2,3,.).
@ UNKNOWN
Base decision on the first raw seq character/type has yet to be determined.
@ BASE_SPACE
Bases only (A,C,G,T,N).
Class for reading/validating a fastq file.
Definition FastQFile.h:30
FastQStatus::Status openFile(const char *fileName, BaseAsciiMap::SPACE_TYPE spaceType=BaseAsciiMap::UNKNOWN)
Open a FastQFile.
Definition FastQFile.cpp:92
bool isOpen()
Check to see if the file is open.
void disableSeqIDCheck()
Disable Unique Sequence ID checking (Unique Sequence ID checking is enabled by default).
Definition FastQFile.cpp:63
BaseAsciiMap::SPACE_TYPE getSpaceType()
Get the space type used for this file.
Definition FastQFile.h:114
FastQStatus::Status readFastQSequence()
Read 1 FastQSequence, validating it.
FastQStatus::Status closeFile()
Close a FastQFile.
@ FASTQ_ORDER_ERROR
means the methods are called out of order, like trying to read a file before opening it.
Definition FastQStatus.h:34
@ FASTQ_SUCCESS
indicates method finished successfully.
Definition FastQStatus.h:32
@ FASTQ_INVALID
means that the sequence was invalid.
Definition FastQStatus.h:33
@ FASTQ_OPEN_ERROR
means the file could not be opened.
Definition FastQStatus.h:35