@Test
public void testReassignGeneToMostPhenotypicallySimilarGeneInAnnotationsHandlesFusionProteinAnnotationsToTwoKnownGenes() {

    addPriorityResultWithScore(gene1, 1d);
    addPriorityResultWithScore(gene2, 0d);
    TopologicalDomain tad = makeTad(1, 1, 20000, gene1, gene2);
    instance = makeInstance(PriorityType.HIPHIVE_PRIORITY, tad);
    VariantEvaluation variant = variantInTadWithEffect(tad, VariantEffect.MISSENSE_VARIANT, gene2);
    TranscriptAnnotation stopGainInGene2 = TranscriptAnnotation.builder()
            .geneSymbol(gene2.getGeneSymbol())
            .variantEffect(VariantEffect.STOP_GAINED)
            .build();
    TranscriptAnnotation fusionProteinAnnotation = TranscriptAnnotation.builder()
            .geneSymbol(gene2.getGeneSymbol() + "-" + gene1.getGeneSymbol())
            .variantEffect(VariantEffect.MISSENSE_VARIANT)
            .build();
    List<TranscriptAnnotation> annotations = Arrays.asList(stopGainInGene2, fusionProteinAnnotation);
    variant.setAnnotations(annotations);
    instance.reassignGeneToMostPhenotypicallySimilarGeneInAnnotations(variant);
    logger.info("{} {}:{} {} {} {} {}", variant.getGeneSymbol(), variant.getChromosome(), variant.getPosition(),
            variant.getRef(), variant.getAlt(), variant.getVariantEffect(), variant.getTranscriptAnnotations()
                    .size());
    variant.getTranscriptAnnotations().forEach(transcriptAnnotation -> logger.info("{}", transcriptAnnotation));
    assertThat(variant, isAssignedTo(gene1));
    assertThat(variant.getVariantEffect(), equalTo(VariantEffect.CUSTOM));
    assertThat(variant.getTranscriptAnnotations(), equalTo(Collections.emptyList()));
}