@Test
public void testXRecessiveFamily() {

    List<Allele> alleles = buildAlleles("A", "T");
    Genotype proband = buildUnPhasedSampleGenotype("Cain", alleles.get(1), alleles.get(1));
    Genotype brother = buildUnPhasedSampleGenotype("Abel", alleles.get(1), alleles.get(0));
    Genotype sister = buildUnPhasedSampleGenotype("Rachel", alleles.get(0), alleles.get(1));
    Genotype mother = buildUnPhasedSampleGenotype("Eve", alleles.get(0), alleles.get(1));
    Genotype father = buildUnPhasedSampleGenotype("Adam", alleles.get(0), alleles.get(1));
    VariantContext variantContext = buildVariantContext(23, 12345, alleles, proband, brother, sister, mother, father);
    VariantEvaluation variant = filteredVariant(23, 12345, "A", "T", FilterResult.pass(FilterType.FREQUENCY_FILTER), variantContext);
    Individual probandIndividual = Individual.builder().id("Cain").fatherId("Adam").motherId("Eve").sex(Sex.MALE).status(Status.AFFECTED).build();
    Individual brotherIndividual = Individual.builder().id("Abel").fatherId("Adam").motherId("Eve").sex(Sex.MALE).status(Status.AFFECTED).build();
    Individual sisterIndividual = Individual.builder().id("Rachel").fatherId("Adam").motherId("Eve").sex(Sex.FEMALE).status(Status.UNAFFECTED).build();
    Individual motherIndividual = Individual.builder().id("Eve").fatherId("").motherId("").sex(Sex.FEMALE).status(Status.UNAFFECTED).build();
    Individual fatherIndividual = Individual.builder().id("Adam").fatherId("").motherId("").sex(Sex.MALE).status(Status.AFFECTED).build();
    Pedigree pedigree = Pedigree.of(probandIndividual, motherIndividual, fatherIndividual, brotherIndividual, sisterIndividual);
    InheritanceModeAnnotator instance = new InheritanceModeAnnotator(pedigree, InheritanceModeOptions.defaults());
    Map<ModeOfInheritance, List<VariantEvaluation>> results = instance.computeCompatibleInheritanceModes(ImmutableList.of(variant));
    Map<ModeOfInheritance, List<VariantEvaluation>> expected = ImmutableMap.of(
            ModeOfInheritance.X_RECESSIVE, ImmutableList.of(variant)
    );
    assertThat(results, equalTo(expected));
}