Changeset 3031 for trunk/test/bam.cc


Ignore:
Timestamp:
Apr 27, 2013, 1:24:13 PM (10 years ago)
Author:
Peter
Message:

new function BamRead::sequence(2). refs #746

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/bam.cc

    r3028 r3031  
    120120}
    121121
     122
     123void test_sequence(test::Suite& suite, const BamRead& b)
     124{
     125  suite.out() << "test sequence\n";
     126  BamRead bam(b);
     127  std::string seq = b.sequence();
     128  std::vector<uint8_t> qual;
     129  qual.reserve(seq.size());
     130  for (size_t i=0; i<seq.size(); ++i)
     131    qual.push_back(bam.qual(i));
     132  assert(seq.size()==100);
     133  bam.sequence(seq, qual);
     134
     135  if (bam.sequence()!=seq) {
     136    suite.add(false);
     137    suite.err() << "incorrect sequence:" << bam.sequence() << "\n";
     138    suite.err() << "expected: " << seq << "\n";
     139  }
     140
     141  // just for consistency
     142  std::vector<uint32_t> cig;
     143  bam.cigar(cig);
     144  bam.core().flag &= ~BAM_FUNMAP;
     145
     146  // trim off one base
     147  seq.resize(seq.size()-1);
     148  qual.resize(qual.size()-1);
     149  bam.sequence(seq, qual);
     150
     151  if (bam.sequence()!=seq) {
     152    suite.add(false);
     153    suite.err() << "incorrect sequence:" << bam.sequence() << "\n";
     154    suite.err() << "expected: " << seq << "\n";
     155  }
     156
     157  // extend sequence
     158  seq.resize(120, 'A');
     159  qual.resize(120, 0);
     160  bam.sequence(seq, qual);
     161  if (bam.sequence()!=seq) {
     162    suite.add(false);
     163    suite.err() << "incorrect sequence:" << bam.sequence() << "\n";
     164    suite.err() << "expected: " << seq << "\n";
     165  }
     166}
     167
     168
    122169void test1(test::Suite& suite)
    123170{
     
    165212  test_cigar(suite, bam, in.header());
    166213  test_aux(suite, bam);
    167 }
    168 #endif
     214  test_sequence(suite, bam);
     215}
     216#endif
Note: See TracChangeset for help on using the changeset viewer.