@Test
public void testUseNonDestructiveFilteringUsingInterfaceRunReturnsAllVariantEvaluations() {

    List<VariantFilter> filters = new ArrayList<>();
    filters.add(targetFilter);
    filters.add(qualityFilter);
    filters.add(frequencyFilter);
    filters.forEach(filter -> instance.run(filter, variantEvaluations));
    printVariantFilterStatus("passesAllFilters", passesAllFilters);
    assertThat(passesAllFilters.passedFilters(), is(true));
    assertPassedFilters(passesAllFilters, VARIANT_EFFECT_FILTER, QUALITY_FILTER, FREQUENCY_FILTER);
    printVariantFilterStatus("failsAllFilters", failsAllFilters);
    assertThat(failsAllFilters.passedFilters(), is(false));
    assertFailedFilters(failsAllFilters, VARIANT_EFFECT_FILTER, QUALITY_FILTER, FREQUENCY_FILTER);
    printVariantFilterStatus("passesQualityFrequencyFilter", passesQualityFrequencyFilter);
    assertThat(passesQualityFrequencyFilter.passedFilters(), is(false));
    assertPassedFilters(passesQualityFrequencyFilter, QUALITY_FILTER, FREQUENCY_FILTER);
    assertFailedFilters(passesQualityFrequencyFilter, VARIANT_EFFECT_FILTER);
    printVariantFilterStatus("passesTargetQualityFilter", passesTargetQualityFilter);
    assertThat(passesTargetQualityFilter.passedFilters(), is(false));
    assertPassedFilters(passesTargetQualityFilter, QUALITY_FILTER, VARIANT_EFFECT_FILTER);
    assertFailedFilters(passesTargetQualityFilter, FREQUENCY_FILTER);
}