Example #1
0
  @Test
  public void testEncodeDecode() throws Exception {
    String testFile = TestUtils.DATA_DIR + "sam/NA12878.muc1.test.sam";
    SAMReader reader = new SAMReader(testFile);

    Iterator<PicardAlignment> inputAlignmentIterator = reader.iterator();
    ArrayList<PicardAlignment> inputAlignmentList = new ArrayList<PicardAlignment>();

    while (inputAlignmentIterator.hasNext()) {
      PicardAlignment al = inputAlignmentIterator.next();
      inputAlignmentList.add(al);
    }
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    FeatureEncoder<PicardAlignment> alignmentEncoder = new SamAlignmentEncoder();
    alignmentEncoder.encodeAll(bos, reader.iterator());

    ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());

    FeatureDecoder<PicardAlignment> alignmentDecoder = new AlignmentDecoder();
    Iterator<PicardAlignment> decodedAlignments = alignmentDecoder.decodeAll(bis, false);

    int ind = 0;
    while (decodedAlignments.hasNext()) {

      Alignment act = decodedAlignments.next();
      Alignment exp = inputAlignmentList.get(ind++);
      TestUtils.assertFeaturesEqual(exp, act);
      assertEquals(exp.getCigarString(), act.getCigarString());
    }

    assertEquals("Different number of alignments read in as out", inputAlignmentList.size(), ind);
  }