18 #include "TestValidate.h"
19 #include "BaseUtilities.h"
21 const std::string TestValidate::READ1_CIGAR =
"5M2D";
22 const std::string TestValidate::READ1_SEQ =
"CCGAA";
23 const std::string TestValidate::READ1_QUAL =
"6>6+4";
25 const std::string TestValidate::READ6_CIGAR =
"3S2H5M";
26 const std::string TestValidate::READ6_SEQ =
"TGCACGTN";
27 const std::string TestValidate::READ6_QUAL =
"453;>>>>";
29 const std::string TestValidate::READ7_CIGAR =
"3S5M1S3H";
30 const std::string TestValidate::READ7_SEQ =
"TGCACGTNG";
31 const std::string TestValidate::READ7_QUAL =
"453;>>>>5";
38 int expectedBlockSize = 89;
39 const char* expectedReferenceName =
"1";
40 const char* expectedMateReferenceName =
"1";
41 const char* expectedMateReferenceNameOrEqual =
"=";
50 unsigned char* varPtr;
52 expectedRecordPtr->myBlockSize = expectedBlockSize;
53 expectedRecordPtr->myReferenceID = 0;
54 expectedRecordPtr->myPosition = TestValidate::READ1_POS;
55 expectedRecordPtr->myReadNameLength = 23;
56 expectedRecordPtr->myMapQuality = 0;
57 expectedRecordPtr->myBin = 4681;
58 expectedRecordPtr->myCigarLength = 2;
59 expectedRecordPtr->myFlag = 73;
60 expectedRecordPtr->myReadLength = 5;
61 expectedRecordPtr->myMateReferenceID = 0;
62 expectedRecordPtr->myMatePosition = 1010;
63 expectedRecordPtr->myInsertSize = 0;
65 assert(samRecord.
getString(
"MD") ==
"37");
69 assert(samRecord.
getFloatTag(
"YZ", tmpFloat) ==
false);
80 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
81 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
86 expectedRecordPtr->myReadNameLength);
87 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
88 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
89 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
90 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
91 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
93 expectedRecordPtr->myMateReferenceID);
95 expectedMateReferenceName) == 0);
97 expectedMateReferenceNameOrEqual) == 0);
99 expectedRecordPtr->myMatePosition + 1);
101 expectedRecordPtr->myMatePosition);
102 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
103 assert(strcmp(samRecord.
getReadName(),
"1:1011:F:255+17M15D20M") == 0);
104 assert(samRecord.
getCigar() == TestValidate::READ1_CIGAR);
105 assert(samRecord.
getSequence() == TestValidate::READ1_SEQ);
106 assert(samRecord.
getQuality() == TestValidate::READ1_QUAL);
124 catch (std::exception& e)
127 assert(strcmp(e.what(),
"SamRecord::getSequence(-1) is out of range. Index must be between 0 and 4") == 0);
129 assert(caught ==
true);
135 catch (std::exception& e)
138 assert(strcmp(e.what(),
"SamRecord::getQuality(-1) is out of range. Index must be between 0 and 4") == 0);
140 assert(caught ==
true);
147 catch (std::exception& e)
150 assert(strcmp(e.what(),
"SamRecord::getSequence(5) is out of range. Index must be between 0 and 4") == 0);
152 assert(caught ==
true);
158 catch (std::exception& e)
161 assert(strcmp(e.what(),
"SamRecord::getQuality(5) is out of range. Index must be between 0 and 4") == 0);
163 assert(caught ==
true);
176 assert(tag[0] ==
'A');
177 assert(tag[1] ==
'M');
179 assert(*(
char*)value == 0);
181 assert(tag[0] ==
'M');
182 assert(tag[1] ==
'D');
184 assert(*(
String*)value ==
"37");
186 assert(tag[0] ==
'N');
187 assert(tag[1] ==
'M');
189 assert(*(
char*)value == 0);
191 assert(tag[0] ==
'X');
192 assert(tag[1] ==
'T');
194 assert(*(
char*)value ==
'R');
202 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
203 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
204 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
205 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
206 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
207 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
208 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
209 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
210 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
211 assert(bufferPtr->myMateReferenceID ==
212 expectedRecordPtr->myMateReferenceID);
213 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
214 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
218 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
221 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
229 assert(*(
unsigned int*)varPtr == 80);
233 assert(*(
unsigned int*)varPtr == 34);
239 assert(*varPtr == 0x22);
242 assert(*varPtr == 0x41);
245 assert(*varPtr == 0x10);
249 for(
int i = 0; i < expectedRecordPtr->myReadLength; i++)
251 assert(*varPtr == samRecord.
getQuality()[i] - 33);
256 assert(*varPtr ==
'A');
258 assert(*varPtr ==
'M');
260 assert(*varPtr ==
'C');
262 assert(*varPtr == 0);
264 assert(*varPtr ==
'M');
266 assert(*varPtr ==
'D');
268 assert(*varPtr ==
'Z');
270 assert(*varPtr ==
'3');
272 assert(*varPtr ==
'7');
274 assert(*varPtr == 0);
276 assert(*varPtr ==
'N');
278 assert(*varPtr ==
'M');
280 assert(*varPtr ==
'C');
282 assert(*varPtr == 0);
284 assert(*varPtr ==
'X');
286 assert(*varPtr ==
'T');
288 assert(*varPtr ==
'A');
290 assert(*varPtr ==
'R');
300 int expectedBlockSize = 61;
301 const char* expectedReferenceName =
"1";
302 const char* expectedMateReferenceName =
"1";
303 const char* expectedMateReferenceNameOrEqual =
"=";
312 unsigned char* varPtr;
314 expectedRecordPtr->myBlockSize = expectedBlockSize;
315 expectedRecordPtr->myReferenceID = 0;
316 expectedRecordPtr->myPosition = TestValidate::READ2_POS;
317 expectedRecordPtr->myReadNameLength = 23;
318 expectedRecordPtr->myMapQuality = 0;
319 expectedRecordPtr->myBin = 4681;
320 expectedRecordPtr->myCigarLength = 0;
321 expectedRecordPtr->myFlag = 133;
322 expectedRecordPtr->myReadLength = 4;
323 expectedRecordPtr->myMateReferenceID = 0;
324 expectedRecordPtr->myMatePosition = 1010;
325 expectedRecordPtr->myInsertSize = 0;
334 assert(samRecord.
getFields(retrieveRecord, retrieveReadName,
335 retrieveCigar, retrieveSequence,
336 retrieveQuality) ==
true);
337 assert(retrieveRecord.myBlockSize == expectedRecordPtr->myBlockSize);
338 assert(retrieveRecord.myReferenceID == expectedRecordPtr->myReferenceID);
339 assert(retrieveRecord.myPosition == expectedRecordPtr->myPosition);
340 assert(retrieveRecord.myReadNameLength ==
341 expectedRecordPtr->myReadNameLength);
342 assert(retrieveRecord.myMapQuality == expectedRecordPtr->myMapQuality);
343 assert(retrieveRecord.myBin == expectedRecordPtr->myBin);
344 assert(retrieveRecord.myCigarLength == expectedRecordPtr->myCigarLength);
345 assert(retrieveRecord.myFlag == expectedRecordPtr->myFlag);
346 assert(retrieveRecord.myReadLength == expectedRecordPtr->myReadLength);
347 assert(retrieveRecord.myMateReferenceID ==
348 expectedRecordPtr->myMateReferenceID);
349 assert(retrieveRecord.myMatePosition == expectedRecordPtr->myMatePosition);
350 assert(retrieveRecord.myInsertSize == expectedRecordPtr->myInsertSize);
362 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
363 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
368 expectedRecordPtr->myReadNameLength);
369 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
370 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
371 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
372 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
373 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
375 expectedRecordPtr->myMateReferenceID);
377 expectedMateReferenceName) == 0);
379 expectedMateReferenceNameOrEqual) == 0);
381 expectedRecordPtr->myMatePosition + 1);
383 expectedRecordPtr->myMatePosition);
384 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
385 assert(strcmp(samRecord.
getReadName(),
"1:1011:F:255+17M15D20M") == 0);
386 assert(strcmp(samRecord.
getCigar(),
"*") == 0);
387 assert(strcmp(samRecord.
getSequence(),
"CTGT") == 0);
388 assert(strcmp(samRecord.
getQuality(),
">>9>") == 0);
403 catch (std::exception& e)
406 assert(strcmp(e.what(),
"SamRecord::getSequence(-1) is out of range. Index must be between 0 and 3") == 0);
408 assert(caught ==
true);
414 catch (std::exception& e)
417 assert(strcmp(e.what(),
"SamRecord::getQuality(-1) is out of range. Index must be between 0 and 3") == 0);
419 assert(caught ==
true);
426 catch (std::exception& e)
429 assert(strcmp(e.what(),
"SamRecord::getSequence(4) is out of range. Index must be between 0 and 3") == 0);
431 assert(caught ==
true);
437 catch (std::exception& e)
440 assert(strcmp(e.what(),
"SamRecord::getQuality(4) is out of range. Index must be between 0 and 3") == 0);
442 assert(caught ==
true);
454 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
455 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
456 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
457 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
458 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
459 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
460 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
461 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
462 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
463 assert(bufferPtr->myMateReferenceID ==
464 expectedRecordPtr->myMateReferenceID);
465 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
466 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
470 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
473 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
482 assert(*varPtr == 0x28);
485 assert(*varPtr == 0x48);
489 for(
int i = 0; i < expectedRecordPtr->myReadLength; i++)
491 assert(*varPtr == samRecord.
getQuality()[i] - 33);
504 int expectedBlockSize = 87;
505 const char* expectedReferenceName =
"1";
506 const char* expectedMateReferenceName =
"18";
507 const char* expectedMateReferenceNameOrEqual =
"18";
516 unsigned char* varPtr;
518 expectedRecordPtr->myBlockSize = expectedBlockSize;
519 expectedRecordPtr->myReferenceID = 0;
520 expectedRecordPtr->myPosition = 74;
521 expectedRecordPtr->myReadNameLength = 21;
522 expectedRecordPtr->myMapQuality = 0;
523 expectedRecordPtr->myBin = 4681;
524 expectedRecordPtr->myCigarLength = 1;
525 expectedRecordPtr->myFlag = 97;
526 expectedRecordPtr->myReadLength = 5;
527 expectedRecordPtr->myMateReferenceID = 17;
528 expectedRecordPtr->myMatePosition = 756;
529 expectedRecordPtr->myInsertSize = 0;
532 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
533 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
538 expectedRecordPtr->myReadNameLength);
539 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
540 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
541 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
542 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
543 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
545 expectedRecordPtr->myMateReferenceID);
547 expectedMateReferenceName) == 0);
549 expectedMateReferenceNameOrEqual) == 0);
551 expectedRecordPtr->myMatePosition + 1);
553 expectedRecordPtr->myMatePosition);
554 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
555 assert(strcmp(samRecord.
getReadName(),
"18:462+29M5I3M:F:295") == 0);
556 assert(strcmp(samRecord.
getCigar(),
"5M") == 0);
557 assert(strcmp(samRecord.
getSequence(),
"ACGTN") == 0);
558 assert(strcmp(samRecord.
getQuality(),
";>>>>") == 0);
578 assert(tag[0] ==
'A');
579 assert(tag[1] ==
'M');
581 assert(*(
char*)value == 0);
583 assert(tag[0] ==
'M');
584 assert(tag[1] ==
'D');
586 assert(*(
String*)value ==
"30A0C5");
588 assert(tag[0] ==
'N');
589 assert(tag[1] ==
'M');
591 assert(*(
char*)value == 2);
593 assert(tag[0] ==
'X');
594 assert(tag[1] ==
'T');
596 assert(*(
char*)value ==
'R');
604 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
605 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
606 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
607 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
608 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
609 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
610 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
611 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
612 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
613 assert(bufferPtr->myMateReferenceID ==
614 expectedRecordPtr->myMateReferenceID);
615 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
616 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
620 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
623 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
631 assert(*(
unsigned int*)varPtr == 80);
637 assert(*varPtr == 0x12);
640 assert(*varPtr == 0x48);
643 assert(*varPtr == 0xF0);
647 for(
int i = 0; i < expectedRecordPtr->myReadLength; i++)
649 assert(*varPtr == samRecord.
getQuality()[i] - 33);
654 assert(*varPtr ==
'A');
656 assert(*varPtr ==
'M');
658 assert(*varPtr ==
'C');
660 assert(*varPtr == 0);
662 assert(*varPtr ==
'M');
664 assert(*varPtr ==
'D');
666 assert(*varPtr ==
'Z');
668 assert(*varPtr ==
'3');
670 assert(*varPtr ==
'0');
672 assert(*varPtr ==
'A');
674 assert(*varPtr ==
'0');
676 assert(*varPtr ==
'C');
678 assert(*varPtr ==
'5');
680 assert(*varPtr == 0);
682 assert(*varPtr ==
'N');
684 assert(*varPtr ==
'M');
686 assert(*varPtr ==
'C');
688 assert(*varPtr == 2);
690 assert(*varPtr ==
'X');
692 assert(*varPtr ==
'T');
694 assert(*varPtr ==
'A');
696 assert(*varPtr ==
'R');
706 int expectedBlockSize = 57;
707 const char* expectedReferenceName =
"1";
708 const char* expectedMateReferenceName =
"18";
709 const char* expectedMateReferenceNameOrEqual =
"18";
718 unsigned char* varPtr;
720 expectedRecordPtr->myBlockSize = expectedBlockSize;
721 expectedRecordPtr->myReferenceID = 0;
722 expectedRecordPtr->myPosition = 74;
723 expectedRecordPtr->myReadNameLength = 21;
724 expectedRecordPtr->myMapQuality = 0;
725 expectedRecordPtr->myBin = 4681;
726 expectedRecordPtr->myCigarLength = 0;
727 expectedRecordPtr->myFlag = 97;
728 expectedRecordPtr->myReadLength = 0;
729 expectedRecordPtr->myMateReferenceID = 17;
730 expectedRecordPtr->myMatePosition = 756;
731 expectedRecordPtr->myInsertSize = 0;
743 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
744 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
749 expectedRecordPtr->myReadNameLength);
750 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
751 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
752 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
753 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
754 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
756 expectedRecordPtr->myMateReferenceID);
758 expectedMateReferenceName) == 0);
760 expectedMateReferenceNameOrEqual) == 0);
762 expectedRecordPtr->myMatePosition + 1);
764 expectedRecordPtr->myMatePosition);
765 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
766 assert(strcmp(samRecord.
getReadName(),
"18:462+29M5I3M:F:295") == 0);
767 assert(strcmp(samRecord.
getCigar(),
"*") == 0);
769 assert(strcmp(samRecord.
getQuality(),
"*") == 0);
776 catch (std::exception& e)
779 assert(strcmp(e.what(),
"SamRecord::getSequence(0) is not allowed since sequence = '*'") == 0);
781 assert(caught ==
true);
787 catch (std::exception& e)
791 assert(caught ==
false);
796 catch (std::exception& e)
799 assert(strcmp(e.what(),
"SamRecord::getSequence(-1) is not allowed since sequence = '*'") == 0);
801 assert(caught ==
true);
807 catch (std::exception& e)
811 assert(caught ==
false);
818 catch (std::exception& e)
821 assert(strcmp(e.what(),
"SamRecord::getSequence(5) is not allowed since sequence = '*'") == 0);
823 assert(caught ==
true);
829 catch (std::exception& e)
833 assert(caught ==
false);
844 assert(tag[0] ==
'A');
845 assert(tag[1] ==
'M');
847 assert(*(
char*)value == 0);
855 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
856 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
857 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
858 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
859 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
860 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
861 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
862 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
863 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
864 assert(bufferPtr->myMateReferenceID ==
865 expectedRecordPtr->myMateReferenceID);
866 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
867 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
871 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
874 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
886 assert(*varPtr ==
'A');
888 assert(*varPtr ==
'M');
890 assert(*varPtr ==
'C');
892 assert(*varPtr == 0);
901 int expectedBlockSize = 87;
902 const char* expectedReferenceName =
"2";
903 const char* expectedMateReferenceName =
"18";
904 const char* expectedMateReferenceNameOrEqual =
"18";
913 unsigned char* varPtr;
915 expectedRecordPtr->myBlockSize = expectedBlockSize;
916 expectedRecordPtr->myReferenceID = 1;
917 expectedRecordPtr->myPosition = 74;
918 expectedRecordPtr->myReadNameLength = 21;
919 expectedRecordPtr->myMapQuality = 0;
920 expectedRecordPtr->myBin = 4681;
921 expectedRecordPtr->myCigarLength = 1;
922 expectedRecordPtr->myFlag = 97;
923 expectedRecordPtr->myReadLength = 5;
924 expectedRecordPtr->myMateReferenceID = 17;
925 expectedRecordPtr->myMatePosition = 756;
926 expectedRecordPtr->myInsertSize = 0;
929 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
930 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
935 expectedRecordPtr->myReadNameLength);
936 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
937 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
938 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
939 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
940 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
942 expectedRecordPtr->myMateReferenceID);
944 expectedMateReferenceName) == 0);
946 expectedMateReferenceNameOrEqual) == 0);
948 expectedRecordPtr->myMatePosition + 1);
950 expectedRecordPtr->myMatePosition);
951 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
952 assert(strcmp(samRecord.
getReadName(),
"18:462+29M5I3M:F:295") == 0);
953 assert(strcmp(samRecord.
getCigar(),
"5M") == 0);
954 assert(strcmp(samRecord.
getSequence(),
"ACGTN") == 0);
955 assert(strcmp(samRecord.
getQuality(),
"*") == 0);
980 catch (std::exception& e)
983 assert(strcmp(e.what(),
"SamRecord::getSequence(-1) is out of range. Index must be between 0 and 4") == 0);
985 assert(caught ==
true);
991 catch (std::exception& e)
994 assert(strcmp(e.what(),
"SamRecord::getQuality(-1) is out of range. Index must be between 0 and 4") == 0);
996 assert(caught ==
true);
1003 catch (std::exception& e)
1006 assert(strcmp(e.what(),
"SamRecord::getSequence(5) is out of range. Index must be between 0 and 4") == 0);
1008 assert(caught ==
true);
1014 catch (std::exception& e)
1017 assert(strcmp(e.what(),
"SamRecord::getQuality(5) is out of range. Index must be between 0 and 4") == 0);
1019 assert(caught ==
true);
1023 assert(tag[0] ==
'A');
1024 assert(tag[1] ==
'M');
1025 assert(type ==
'i');
1026 assert(*(
char*)value == 0);
1028 assert(tag[0] ==
'M');
1029 assert(tag[1] ==
'D');
1030 assert(type ==
'Z');
1031 assert(*(
String*)value ==
"30A0C5");
1033 assert(tag[0] ==
'N');
1034 assert(tag[1] ==
'M');
1035 assert(type ==
'i');
1036 assert(*(
char*)value == 2);
1038 assert(tag[0] ==
'X');
1039 assert(tag[1] ==
'T');
1040 assert(type ==
'A');
1041 assert(*(
char*)value ==
'R');
1043 assert(samRecord.
getNextSamTag(tag, type, &value) ==
false);
1044 assert(samRecord.
getNextSamTag(tag, type, &value) ==
false);
1049 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
1050 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
1051 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
1052 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
1053 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
1054 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
1055 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
1056 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
1057 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
1058 assert(bufferPtr->myMateReferenceID ==
1059 expectedRecordPtr->myMateReferenceID);
1060 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
1061 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
1065 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
1068 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
1076 assert(*(
unsigned int*)varPtr == 80);
1082 assert(*varPtr == 0x12);
1085 assert(*varPtr == 0x48);
1088 assert(*varPtr == 0xF0);
1092 for(
int i = 0; i < expectedRecordPtr->myReadLength; i++)
1094 assert(*varPtr == 0xFF);
1099 assert(*varPtr ==
'A');
1101 assert(*varPtr ==
'M');
1103 assert(*varPtr ==
'C');
1105 assert(*varPtr == 0);
1107 assert(*varPtr ==
'M');
1109 assert(*varPtr ==
'D');
1111 assert(*varPtr ==
'Z');
1113 assert(*varPtr ==
'3');
1115 assert(*varPtr ==
'0');
1117 assert(*varPtr ==
'A');
1119 assert(*varPtr ==
'0');
1121 assert(*varPtr ==
'C');
1123 assert(*varPtr ==
'5');
1125 assert(*varPtr == 0);
1127 assert(*varPtr ==
'N');
1129 assert(*varPtr ==
'M');
1131 assert(*varPtr ==
'C');
1133 assert(*varPtr == 2);
1135 assert(*varPtr ==
'X');
1137 assert(*varPtr ==
'T');
1139 assert(*varPtr ==
'A');
1141 assert(*varPtr ==
'R');
1146 void validateRead6(
SamRecord& samRecord)
1151 int expectedBlockSize = 77;
1152 const char* expectedReferenceName =
"1";
1153 const char* expectedMateReferenceName =
"18";
1154 const char* expectedMateReferenceNameOrEqual =
"18";
1163 unsigned char* varPtr;
1165 expectedRecordPtr->myBlockSize = expectedBlockSize;
1166 expectedRecordPtr->myReferenceID = 0;
1167 expectedRecordPtr->myPosition = TestValidate::READ6_POS;
1168 expectedRecordPtr->myReadNameLength = 21;
1169 expectedRecordPtr->myMapQuality = 0;
1170 expectedRecordPtr->myBin = 4681;
1171 expectedRecordPtr->myCigarLength = 3;
1172 expectedRecordPtr->myFlag = 97;
1173 expectedRecordPtr->myReadLength = 8;
1174 expectedRecordPtr->myMateReferenceID = 17;
1175 expectedRecordPtr->myMatePosition = 756;
1176 expectedRecordPtr->myInsertSize = 0;
1179 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
1180 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
1185 expectedRecordPtr->myReadNameLength);
1186 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
1187 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
1188 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
1189 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
1190 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
1192 expectedRecordPtr->myMateReferenceID);
1194 expectedMateReferenceName) == 0);
1196 expectedMateReferenceNameOrEqual) == 0);
1198 expectedRecordPtr->myMatePosition + 1);
1200 expectedRecordPtr->myMatePosition);
1201 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
1202 assert(strcmp(samRecord.
getReadName(),
"18:462+29M5I3M:F:296") == 0);
1203 assert(samRecord.
getCigar() == TestValidate::READ6_CIGAR);
1204 assert(samRecord.
getSequence() == TestValidate::READ6_SEQ);
1205 assert(samRecord.
getQuality() == TestValidate::READ6_QUAL);
1224 assert(samRecord.
getNextSamTag(tag, type, &value) ==
false);
1229 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
1230 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
1231 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
1232 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
1233 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
1234 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
1235 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
1236 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
1237 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
1238 assert(bufferPtr->myMateReferenceID ==
1239 expectedRecordPtr->myMateReferenceID);
1240 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
1241 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
1245 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
1248 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
1257 assert(*(
unsigned int*)varPtr == 0x34);
1261 assert(*(
unsigned int*)varPtr == 0x25);
1265 assert(*(
unsigned int*)varPtr == 0x50);
1271 assert(*varPtr == 0x84);
1274 assert(*varPtr == 0x21);
1277 assert(*varPtr == 0x24);
1280 assert(*varPtr == 0x8F);
1284 for(
int i = 0; i < expectedRecordPtr->myReadLength; i++)
1286 assert(*varPtr == samRecord.
getQuality()[i] - 33);
1292 void validateRead7(
SamRecord& samRecord)
1297 int expectedBlockSize = 83;
1298 const char* expectedReferenceName =
"2";
1299 const char* expectedMateReferenceName =
"18";
1300 const char* expectedMateReferenceNameOrEqual =
"18";
1309 unsigned char* varPtr;
1311 expectedRecordPtr->myBlockSize = expectedBlockSize;
1312 expectedRecordPtr->myReferenceID = 1;
1313 expectedRecordPtr->myPosition = TestValidate::READ7_POS;
1314 expectedRecordPtr->myReadNameLength = 21;
1315 expectedRecordPtr->myMapQuality = 0;
1316 expectedRecordPtr->myBin = 4681;
1317 expectedRecordPtr->myCigarLength = 4;
1318 expectedRecordPtr->myFlag = 97;
1319 expectedRecordPtr->myReadLength = 9;
1320 expectedRecordPtr->myMateReferenceID = 17;
1321 expectedRecordPtr->myMatePosition = 756;
1322 expectedRecordPtr->myInsertSize = 0;
1325 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
1326 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
1331 expectedRecordPtr->myReadNameLength);
1332 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
1333 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
1334 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
1335 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
1336 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
1338 expectedRecordPtr->myMateReferenceID);
1340 expectedMateReferenceName) == 0);
1342 expectedMateReferenceNameOrEqual) == 0);
1344 expectedRecordPtr->myMatePosition + 1);
1346 expectedRecordPtr->myMatePosition);
1347 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
1348 assert(strcmp(samRecord.
getReadName(),
"18:462+29M5I3M:F:297") == 0);
1349 assert(samRecord.
getCigar() == TestValidate::READ7_CIGAR);
1350 assert(samRecord.
getSequence() == TestValidate::READ7_SEQ);
1351 assert(samRecord.
getQuality() == TestValidate::READ7_QUAL);
1370 assert(samRecord.
getNextSamTag(tag, type, &value) ==
false);
1375 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
1376 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
1377 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
1378 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
1379 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
1380 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
1381 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
1382 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
1383 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
1384 assert(bufferPtr->myMateReferenceID ==
1385 expectedRecordPtr->myMateReferenceID);
1386 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
1387 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
1391 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
1394 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
1403 assert(*(
unsigned int*)varPtr == 0x34);
1407 assert(*(
unsigned int*)varPtr == 0x50);
1411 assert(*(
unsigned int*)varPtr == 0x14);
1415 assert(*(
unsigned int*)varPtr == 0x35);
1421 assert(*varPtr == 0x84);
1424 assert(*varPtr == 0x21);
1427 assert(*varPtr == 0x24);
1430 assert(*varPtr == 0x8F);
1433 assert(*varPtr == 0x40);
1437 for(
int i = 0; i < expectedRecordPtr->myReadLength; i++)
1439 assert(*varPtr == samRecord.
getQuality()[i] - 33);
1445 void validateRead8(
SamRecord& samRecord)
1450 int expectedBlockSize = 65;
1451 const char* expectedReferenceName =
"*";
1452 const char* expectedMateReferenceName =
"*";
1453 const char* expectedMateReferenceNameOrEqual =
"*";
1462 unsigned char* varPtr;
1464 expectedRecordPtr->myBlockSize = expectedBlockSize;
1465 expectedRecordPtr->myReferenceID = -1;
1466 expectedRecordPtr->myPosition = -1;
1467 expectedRecordPtr->myReadNameLength = 27;
1468 expectedRecordPtr->myMapQuality = 0;
1469 expectedRecordPtr->myBin = 4680;
1470 expectedRecordPtr->myCigarLength = 0;
1471 expectedRecordPtr->myFlag = 141;
1472 expectedRecordPtr->myReadLength = 4;
1473 expectedRecordPtr->myMateReferenceID = -1;
1474 expectedRecordPtr->myMatePosition = -1;
1475 expectedRecordPtr->myInsertSize = 0;
1487 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
1488 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
1493 expectedRecordPtr->myReadNameLength);
1494 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
1495 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
1496 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
1497 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
1498 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
1500 expectedRecordPtr->myMateReferenceID);
1502 expectedMateReferenceName) == 0);
1504 expectedMateReferenceNameOrEqual) == 0);
1506 expectedRecordPtr->myMatePosition + 1);
1508 expectedRecordPtr->myMatePosition);
1509 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
1510 assert(strcmp(samRecord.
getReadName(),
"Y:16597235+13M13I11M:F:181") == 0);
1511 assert(strcmp(samRecord.
getCigar(),
"*") == 0);
1512 assert(strcmp(samRecord.
getSequence(),
"AACT") == 0);
1513 assert(strcmp(samRecord.
getQuality(),
"==;;") == 0);
1524 assert(samRecord.
getNextSamTag(tag, type, &value) ==
false);
1525 assert(samRecord.
getNextSamTag(tag, type, &value) ==
false);
1530 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
1531 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
1532 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
1533 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
1534 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
1535 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
1536 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
1537 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
1538 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
1539 assert(bufferPtr->myMateReferenceID ==
1540 expectedRecordPtr->myMateReferenceID);
1541 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
1542 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
1546 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
1549 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
1558 assert(*varPtr == 0x11);
1561 assert(*varPtr == 0x28);
1565 for(
int i = 0; i < expectedRecordPtr->myReadLength; i++)
1567 assert(*varPtr == samRecord.
getQuality()[i] - 33);
1575 void validateRead9(
SamRecord& samRecord)
1580 int expectedBlockSize = 77;
1581 const char* expectedReferenceName =
"3";
1582 const char* expectedMateReferenceName =
"18";
1583 const char* expectedMateReferenceNameOrEqual =
"18";
1592 unsigned char* varPtr;
1594 expectedRecordPtr->myBlockSize = expectedBlockSize;
1595 expectedRecordPtr->myReferenceID = 2;
1596 expectedRecordPtr->myPosition = 74;
1597 expectedRecordPtr->myReadNameLength = 21;
1598 expectedRecordPtr->myMapQuality = 0;
1599 expectedRecordPtr->myBin = 4681;
1600 expectedRecordPtr->myCigarLength = 3;
1601 expectedRecordPtr->myFlag = 97;
1602 expectedRecordPtr->myReadLength = 8;
1603 expectedRecordPtr->myMateReferenceID = 17;
1604 expectedRecordPtr->myMatePosition = 756;
1605 expectedRecordPtr->myInsertSize = 0;
1608 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
1610 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
1615 expectedRecordPtr->myReadNameLength);
1616 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
1617 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
1618 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
1619 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
1620 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
1622 expectedRecordPtr->myMateReferenceID);
1624 expectedMateReferenceName) == 0);
1626 expectedMateReferenceNameOrEqual) == 0);
1628 expectedRecordPtr->myMatePosition + 1);
1630 expectedRecordPtr->myMatePosition);
1631 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
1632 assert(strcmp(samRecord.
getReadName(),
"18:462+29M5I3M:F:298") == 0);
1633 assert(strcmp(samRecord.
getCigar(),
"3S5M4H") == 0);
1634 assert((strcmp(samRecord.
getSequence(),
"TGCACGTN") == 0) ||
1635 (strcmp(samRecord.
getSequence(),
"tgcacgtn") == 0));
1636 assert(strcmp(samRecord.
getQuality(),
"453;>>>>") == 0);
1655 assert(samRecord.
getNextSamTag(tag, type, &value) ==
false);
1659 assert(bufferPtr != NULL);
1661 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
1662 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
1663 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
1664 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
1665 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
1666 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
1667 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
1668 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
1669 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
1670 assert(bufferPtr->myMateReferenceID ==
1671 expectedRecordPtr->myMateReferenceID);
1672 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
1673 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
1677 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
1680 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
1689 assert(*(
unsigned int*)varPtr == 0x34);
1693 assert(*(
unsigned int*)varPtr == 0x50);
1697 assert(*(
unsigned int*)varPtr == 0x45);
1703 assert(*varPtr == 0x84);
1706 assert(*varPtr == 0x21);
1709 assert(*varPtr == 0x24);
1712 assert(*varPtr == 0x8F);
1716 for(
int i = 0; i < expectedRecordPtr->myReadLength; i++)
1718 assert(*varPtr == samRecord.
getQuality()[i] - 33);
1724 void validateRead10(
SamRecord& samRecord)
1729 int expectedBlockSize = 59;
1730 const char* expectedReferenceName =
"*";
1731 const char* expectedMateReferenceName =
"*";
1732 const char* expectedMateReferenceNameOrEqual =
"*";
1741 unsigned char* varPtr;
1743 expectedRecordPtr->myBlockSize = expectedBlockSize;
1744 expectedRecordPtr->myReferenceID = -1;
1745 expectedRecordPtr->myPosition = -1;
1746 expectedRecordPtr->myReadNameLength = 27;
1747 expectedRecordPtr->myMapQuality = 0;
1748 expectedRecordPtr->myBin = 4680;
1749 expectedRecordPtr->myCigarLength = 0;
1750 expectedRecordPtr->myFlag = 141;
1751 expectedRecordPtr->myReadLength = 0;
1752 expectedRecordPtr->myMateReferenceID = -1;
1753 expectedRecordPtr->myMatePosition = -1;
1754 expectedRecordPtr->myInsertSize = 0;
1766 assert(samRecord.
getBlockSize() == expectedRecordPtr->myBlockSize);
1767 assert(samRecord.
getReferenceID() == expectedRecordPtr->myReferenceID);
1772 expectedRecordPtr->myReadNameLength);
1773 assert(samRecord.
getMapQuality() == expectedRecordPtr->myMapQuality);
1774 assert(samRecord.
getBin() == expectedRecordPtr->myBin);
1775 assert(samRecord.
getCigarLength() == expectedRecordPtr->myCigarLength);
1776 assert(samRecord.
getFlag() == expectedRecordPtr->myFlag);
1777 assert(samRecord.
getReadLength() == expectedRecordPtr->myReadLength);
1779 expectedRecordPtr->myMateReferenceID);
1781 expectedMateReferenceName) == 0);
1783 expectedMateReferenceNameOrEqual) == 0);
1785 expectedRecordPtr->myMatePosition + 1);
1787 expectedRecordPtr->myMatePosition);
1788 assert(samRecord.
getInsertSize() == expectedRecordPtr->myInsertSize);
1789 assert(strcmp(samRecord.
getReadName(),
"Y:16597235+13M13I11M:F:181") == 0);
1790 assert(strcmp(samRecord.
getCigar(),
"*") == 0);
1791 assert(strcmp(samRecord.
getSequence(),
"*") == 0);
1792 assert(strcmp(samRecord.
getQuality(),
"*") == 0);
1802 assert(samRecord.
getNextSamTag(tag, type, &value) ==
false);
1803 assert(samRecord.
getNextSamTag(tag, type, &value) ==
false);
1808 assert(bufferPtr->myBlockSize == expectedRecordPtr->myBlockSize);
1809 assert(bufferPtr->myReferenceID == expectedRecordPtr->myReferenceID);
1810 assert(bufferPtr->myPosition == expectedRecordPtr->myPosition);
1811 assert(bufferPtr->myReadNameLength == expectedRecordPtr->myReadNameLength);
1812 assert(bufferPtr->myMapQuality == expectedRecordPtr->myMapQuality);
1813 assert(bufferPtr->myBin == expectedRecordPtr->myBin);
1814 assert(bufferPtr->myCigarLength == expectedRecordPtr->myCigarLength);
1815 assert(bufferPtr->myFlag == expectedRecordPtr->myFlag);
1816 assert(bufferPtr->myReadLength == expectedRecordPtr->myReadLength);
1817 assert(bufferPtr->myMateReferenceID ==
1818 expectedRecordPtr->myMateReferenceID);
1819 assert(bufferPtr->myMatePosition == expectedRecordPtr->myMatePosition);
1820 assert(bufferPtr->myInsertSize == expectedRecordPtr->myInsertSize);
1824 varPtr = (
unsigned char*)(&(bufferPtr->myData[0]));
1827 for(
int i = 0; i < expectedRecordPtr->myReadNameLength; i++)
1842 validateHeaderFields(samHeader);
1843 validateHeaderString(samHeader);
1855 assert(strcmp(value,
"") == 0);
1861 assert(strcmp(value,
"") == 0);
1866 assert(value != NULL);
1867 assert(strcmp(value,
"247249719") == 0);
1869 assert(value != NULL);
1870 assert(strcmp(value,
"49691432") == 0);
1876 assert(strcmp(value,
"") == 0);
1882 assert(strcmp(value,
"") == 0);
1887 assert(value != NULL);
1888 assert(strcmp(value,
"library2") == 0);
1890 assert(value != NULL);
1891 assert(strcmp(value,
"library") == 0);
1898 assert(strcmp(sq->
getTagValue(
"LN"),
"135374737") == 0);
1908 assert(strcmp(rg->
getTagValue(
"ID"),
"myID") == 0);
1909 assert(strcmp(rg->
getTagValue(
"SM"),
"sample") == 0);
1910 assert(strcmp(rg->
getTagValue(
"LB"),
"library") == 0);
1917 rg = samHeader.
getRG(
"noExist");
1922 sq = samHeader.
getSQ(
"noExist");
1928 std::string refIDStdString =
"X";
1930 String refIDString =
"22";
1944 std::string headerString =
"";
1946 assert(headerString ==
"@SQ\tSN:1\tLN:247249719\n@SQ\tSN:2\tLN:242951149\n@SQ\tSN:3\tLN:199501827\n@SQ\tSN:4\tLN:191273063\n@SQ\tSN:5\tLN:180857866\n@SQ\tSN:6\tLN:170899992\n@SQ\tSN:7\tLN:158821424\n@SQ\tSN:8\tLN:146274826\n@SQ\tSN:9\tLN:140273252\n@SQ\tSN:10\tLN:135374737\n@SQ\tSN:11\tLN:134452384\n@SQ\tSN:12\tLN:132349534\n@SQ\tSN:13\tLN:114142980\n@SQ\tSN:14\tLN:106368585\n@SQ\tSN:15\tLN:100338915\n@SQ\tSN:16\tLN:88827254\n@SQ\tSN:17\tLN:78774742\n@SQ\tSN:18\tLN:76117153\n@SQ\tSN:19\tLN:63811651\n@SQ\tSN:20\tLN:62435964\n@SQ\tSN:21\tLN:46944323\n@SQ\tSN:22\tLN:49691432\n@SQ\tSN:X\tLN:154913754\n@RG\tID:myID\tLB:library\tSM:sample\n@RG\tID:myID2\tSM:sample2\tLB:library2\n@CO\tComment 1\n@CO\tComment 2\n");