@Test(dataProvider = "seekingTests")
  public void seekToTileTest(
      Integer firstSeekPos, Integer firstTile, Integer secondSeekPos, Integer secondTile) {
    final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);

    for (int i = 1; i <= firstSeekPos; i++) {
      Assert.assertTrue(ddts.hasNext());
      Assert.assertEquals(ddts.next().value, new Integer(i));
    }

    ddts.seekToTile(firstTile);

    int start = firstTile * 5 - 4;
    if (secondSeekPos != null) {
      for (int i = start; i <= secondSeekPos; i++) {
        Assert.assertTrue(ddts.hasNext());
        Assert.assertEquals(ddts.next().value, new Integer(i));
      }
      ddts.seekToTile(secondTile);
      start = secondTile * 5 - 4;
    }

    for (int i = start; i <= 25; i++) {
      Assert.assertTrue(ddts.hasNext());
      Assert.assertEquals(ddts.next().value, new Integer(i));
    }

    Assert.assertFalse(ddts.hasNext());
  }
  @Test
  public void basicIterationTest() {
    final IlluminaFileMap fm = new IlluminaFileMap();
    fm.put(1, new File("s_1_1"));
    fm.put(2, new File("s_1_2"));
    fm.put(3, new File("s_1_3"));
    fm.put(4, new File("s_1_4"));
    fm.put(5, new File("s_1_5"));

    final PerTileParser<DummyDt> ddts = new MockPerTileParser(fm);

    for (int i = 0; i < 25; i++) {
      Assert.assertTrue(ddts.hasNext());
      Assert.assertEquals(ddts.next().value, new Integer(i + 1));
    }

    Assert.assertFalse(ddts.hasNext());
  }
 @Test
 public void passVerifyTest() {
   final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
   ddts.verifyData(makeList(1, 2, 3, 4, 5), null);
 }
 @Test(expectedExceptions = PicardException.class)
 public void failVerifyTestMissingTile() {
   final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
   ddts.verifyData(makeList(1, 2, 4, 5), null);
 }
 @Test(expectedExceptions = PicardException.class, dataProvider = "missingTiles")
 public void missingTileTest(final Integer missingTile) {
   final PerTileParser<DummyDt> ddts = new MockPerTileParser(FILE_MAP);
   ddts.seekToTile(missingTile);
 }