### Question:
SemverOut extends OutputGenerator<String> { @Override public String generate() { final ImmutableSet.Builder<JApiSemanticVersionLevel> builder = ImmutableSet.builder(); Filter.filter(jApiClasses, new Filter.FilterVisitor() { @Override public void visit(Iterator<JApiClass> iterator, JApiClass jApiClass) { builder.add(signs(jApiClass)); } @Override public void visit(Iterator<JApiMethod> iterator, JApiMethod jApiMethod) { builder.add(signs(jApiMethod)); } @Override public void visit(Iterator<JApiConstructor> iterator, JApiConstructor jApiConstructor) { builder.add(signs(jApiConstructor)); } @Override public void visit(Iterator<JApiImplementedInterface> iterator, JApiImplementedInterface jApiImplementedInterface) { builder.add(signs(jApiImplementedInterface)); } @Override public void visit(Iterator<JApiField> iterator, JApiField jApiField) { builder.add(signs(jApiField)); } @Override public void visit(Iterator<JApiAnnotation> iterator, JApiAnnotation jApiAnnotation) { builder.add(signs(jApiAnnotation)); } @Override public void visit(JApiSuperclass jApiSuperclass) { builder.add(signs(jApiSuperclass)); } }); ImmutableSet<JApiSemanticVersionLevel> build = builder.build(); if (build.contains(JApiSemanticVersionLevel.MAJOR)) { return "1.0.0"; } else if (build.contains(JApiSemanticVersionLevel.MINOR)) { return "0.1.0"; } else if (build.contains(JApiSemanticVersionLevel.PATCH)) { return "0.0.1"; } else if (build.isEmpty()) { return "0.0.0"; } else { return "N/A"; } } SemverOut(Options options, List<JApiClass> jApiClasses);  SemverOut(Options options, List<JApiClass> jApiClasses, Listener listener); @Override String generate();  }### Answer:
@Test public void testNoChangesAtAll() throws Exception { List<JApiClass> jApiClasses = ClassesHelper.compareClasses(new JarArchiveComparatorOptions(), new ClassesHelper.ClassesGenerator() { @Override public List<CtClass> createOldClasses(ClassPool classPool) throws Exception { return Collections.emptyList(); } @Override public List<CtClass> createNewClasses(ClassPool classPool) throws Exception { return Collections.emptyList(); } }); assertThat(jApiClasses.size(), is(0)); Options options = Options.newDefault(); SemverOut semverOut = new SemverOut(options, jApiClasses); String output = semverOut.generate(); assertThat(output, is("0.0.0")); }