FilterSettingsImpl implements FilterSettings { @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final FilterSettingsImpl other = (FilterSettingsImpl) obj; if (Float.floatToIntBits(this.maximumFrequency) != Float.floatToIntBits(other.maximumFrequency)) { return false; } if (Float.floatToIntBits(this.minimumQuality) != Float.floatToIntBits(other.minimumQuality)) { return false; } if (!Objects.equals(this.geneticInterval, other.geneticInterval)) { return false; } if (this.keepNonPathogenicVariants != other.keepNonPathogenicVariants) { return false; } if (this.removeKnownVariants != other.removeKnownVariants) { return false; } if (this.keepOffTargetVariants != other.keepOffTargetVariants) { return false; } if (!Objects.equals(this.genesToKeep, other.genesToKeep)) { return false; } return this.modeOfInheritance == other.modeOfInheritance; } private  FilterSettingsImpl(FilterSettingsBuilder builder); static FilterSettingsBuilder builder(); @Override float getMaximumFrequency(); @Override float getMinimumQuality(); @Override GeneticInterval getGeneticInterval(); @Override boolean keepOffTargetVariants(); @Override boolean removeFailedVariants(); @Override boolean removeKnownVariants(); @Override boolean keepNonPathogenicVariants(); @Override Set<String> getGenesToKeep(); @Override ModeOfInheritance getModeOfInheritance(); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }
@Test public void testEquals() { FilterSettings other = FilterSettingsImpl.builder().build(); instance = builder.build(); assertThat(instance, equalTo(other)); }