public VariantContextTestData(final VCFHeader header, final List<VariantContext> vcs) {
   final Set<String> samples = new HashSet<String>();
   for (final VariantContext vc : vcs)
     if (vc.hasGenotypes()) samples.addAll(vc.getSampleNames());
   this.header =
       samples.isEmpty() ? header : new VCFHeader(header.getMetaDataInSortedOrder(), samples);
   this.vcs = vcs;
 }
  public static void assertEquals(final VCFHeader actual, final VCFHeader expected) {
    Assert.assertEquals(
        actual.getMetaDataInSortedOrder().size(),
        expected.getMetaDataInSortedOrder().size(),
        "No VCF header lines");

    // for some reason set.equals() is returning false but all paired elements are .equals().
    // Perhaps compare to is busted?
    // Assert.assertEquals(actual.getMetaDataInInputOrder(), expected.getMetaDataInInputOrder());
    final List<VCFHeaderLine> actualLines =
        new ArrayList<VCFHeaderLine>(actual.getMetaDataInSortedOrder());
    final List<VCFHeaderLine> expectedLines =
        new ArrayList<VCFHeaderLine>(expected.getMetaDataInSortedOrder());
    for (int i = 0; i < actualLines.size(); i++) {
      Assert.assertEquals(actualLines.get(i), expectedLines.get(i), "VCF header lines");
    }
  }