Mercurial > repos > youngkim > ezbamqc
comparison ezBAMQC/src/htslib/test/fieldarith.c @ 0:dfa3745e5fd8
Uploaded
| author | youngkim |
|---|---|
| date | Thu, 24 Mar 2016 17:12:52 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:dfa3745e5fd8 |
|---|---|
| 1 /* test/fieldarith.c -- CIGAR field arithmetic test suite. | |
| 2 | |
| 3 Copyright (C) 2013 Genome Research Ltd. | |
| 4 | |
| 5 Author: John Marshall <jm18@sanger.ac.uk> | |
| 6 | |
| 7 Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 8 of this software and associated documentation files (the "Software"), to deal | |
| 9 in the Software without restriction, including without limitation the rights | |
| 10 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 11 copies of the Software, and to permit persons to whom the Software is | |
| 12 furnished to do so, subject to the following conditions: | |
| 13 | |
| 14 The above copyright notice and this permission notice shall be included in | |
| 15 all copies or substantial portions of the Software. | |
| 16 | |
| 17 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 18 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 19 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
| 20 THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| 21 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING | |
| 22 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | |
| 23 DEALINGS IN THE SOFTWARE. */ | |
| 24 | |
| 25 #include <stdio.h> | |
| 26 | |
| 27 #include "htslib/sam.h" | |
| 28 | |
| 29 int ntests = 0; | |
| 30 int nfailures = 0; | |
| 31 | |
| 32 void check(const bam1_t *aln, const char *testname, const char *tag, int value) | |
| 33 { | |
| 34 int32_t refvalue; | |
| 35 uint8_t *aux = bam_aux_get(aln, tag); | |
| 36 if (!aux) return; | |
| 37 ntests++; | |
| 38 refvalue = bam_aux2i(aux); | |
| 39 if (value != refvalue) { | |
| 40 fprintf(stderr, "%s FAIL for %s: computed %d != %d expected\n", | |
| 41 testname, bam_get_qname(aln), value, refvalue); | |
| 42 nfailures++; | |
| 43 } | |
| 44 } | |
| 45 | |
| 46 int main(int argc, char **argv) | |
| 47 { | |
| 48 bam_hdr_t *header; | |
| 49 bam1_t *aln = bam_init1(); | |
| 50 int i; | |
| 51 | |
| 52 for (i = 1; i < argc; i++) { | |
| 53 samFile *in = sam_open(argv[i], "r"); | |
| 54 if (in == NULL) { perror(argv[1]); return 1; } | |
| 55 | |
| 56 header = sam_hdr_read(in); | |
| 57 while (sam_read1(in, header, aln) >= 0) { | |
| 58 check(aln, "cigar2qlen", "XQ", | |
| 59 bam_cigar2qlen(aln->core.n_cigar, bam_get_cigar(aln))); | |
| 60 check(aln, "cigar2rlen", "XR", | |
| 61 bam_cigar2rlen(aln->core.n_cigar, bam_get_cigar(aln))); | |
| 62 check(aln, "endpos", "XE", bam_endpos(aln)); | |
| 63 } | |
| 64 | |
| 65 bam_hdr_destroy(header); | |
| 66 sam_close(in); | |
| 67 } | |
| 68 | |
| 69 bam_destroy1(aln); | |
| 70 | |
| 71 return (nfailures > 0); | |
| 72 } |
