@Test
public void testRunWithTwoFiltersInSuccessionReturnsAllVariants() {

    
    VariantFilter firstFilterToPass = qualityFilter;
              
    List<VariantEvaluation> result = instance.run(qualityFilter, variantEvaluations);
    assertThat(result, equalTo(variantEvaluations));     
    
    assertPassedFilterAndFailedAllOthers(passesAllFilters, firstFilterToPass);
    assertPassedFilterAndFailedAllOthers(passesQualityFrequencyFilter, firstFilterToPass);
    assertPassedFilterAndFailedAllOthers(passesTargetQualityFilter, firstFilterToPass);
    assertFailsEverything(failsAllFilters);
    //run a second filter
    VariantFilter secondFilterToPass = targetFilter;
    
    List<VariantEvaluation> secondResults = instance.run(secondFilterToPass, variantEvaluations);
    
    assertThat(secondResults, equalTo(variantEvaluations));     
    assertPassedFilters(passesAllFilters, firstFilterToPass.getFilterType(), secondFilterToPass.getFilterType());     
    System.out.println(passesAllFilters);
    assertPassedFilters(passesQualityFrequencyFilter, firstFilterToPass.getFilterType());    
    assertFailedFilters(passesQualityFrequencyFilter, secondFilterToPass.getFilterType());
    System.out.println(passesQualityFrequencyFilter);
    assertPassedFilters(passesTargetQualityFilter, firstFilterToPass.getFilterType(), secondFilterToPass.getFilterType());     
    System.out.println(passesTargetQualityFilter);
    assertFailsEverything(failsAllFilters);     
    System.out.println(failsAllFilters);
}