@Test
 public void testConstructorEmptyGenomes() {
   VcfSample sample = new VcfSample("id", (VcfGenome[]) new VcfGenome[0]);
   assertNotNull(sample);
   assertEquals("id", sample.getId());
   assertNotNull(sample.getGenomes());
   assertEquals(0, sample.getGenomes().length);
 }
 @Test
 public void testConstructor() {
   VcfSample sample = new VcfSample("id", new VcfGenome("genomeId", 1.0d, "Description"));
   assertNotNull(sample);
   assertEquals("id", sample.getId());
   assertNotNull(sample.getGenomes());
   assertEquals(1, sample.getGenomes().length);
   VcfGenome genome = sample.getGenomes()[0];
   assertEquals("genomeId", genome.getId());
   assertEquals(1.0d, genome.getMixture(), 0.1d);
   assertEquals("Description", genome.getDescription());
 }
 @Test
 public void testBuilder() {
   VcfSample sample =
       VcfSample.builder()
           .withId("id")
           .withGenome(new VcfGenome("genomeId", 1.0d, "Description"))
           .build();
   assertNotNull(sample);
   assertEquals("id", sample.getId());
   assertNotNull(sample.getGenomes());
   assertEquals(1, sample.getGenomes().length);
   VcfGenome genome = sample.getGenomes()[0];
   assertEquals("genomeId", genome.getId());
   assertEquals(1.0d, genome.getMixture(), 0.1d);
   assertEquals("Description", genome.getDescription());
 }
  @Test
  public void iteratorSampleMissingValues() throws IOException {
    VcfReader vcfReader = new VcfReader(new StringReader(vcfStrSampleMissingValues));
    try {

      Iterator<VcfRecord> vcfIterator = vcfReader.iterator();

      // record 1
      if (vcfIterator.hasNext()) {
        VcfRecord r = vcfIterator.next();

        Iterator<VcfSample> samples = r.getSamples().iterator();

        if (samples.hasNext()) {
          VcfSample s = samples.next();

          assertEquals(s.getAlleles().get(0), Allele.C);
          assertEquals(s.getAlleles().get(1), Allele.T);

          int idx = r.getFormatIndex("GQ");
          assertEquals(s.getData(idx), "12");
        }
      }

      // record 2
      if (vcfIterator.hasNext()) {
        VcfRecord r = vcfIterator.next();

        Iterator<VcfSample> samples = r.getSamples().iterator();

        if (samples.hasNext()) {
          VcfSample s = samples.next();

          assertEquals(s.getAlleles().get(0), Allele.ZERO);
          assertEquals(s.getAlleles().get(1), Allele.ZERO);

          int idx = r.getFormatIndex("GQ");
          assertEquals(s.getData(idx), null);
        }
      }

    } finally {
      vcfReader.close();
    }
  }