ImmutableInterfaceAnalysis implements InterfaceAnalysis { @Override public int hashCode() { return Objects.hashCode(annotations, extends1, imports, interfaceName, methods, package1); } ImmutableInterfaceAnalysis(@Nonnull final List<Annotation> annotations, @Nonnull final List<Interface> extends1,
			@Nonnull final List<Import> imports, @Nonnull final String interfaceName, @Nonnull final List<Method> methods,
			@Nonnull final Package package1); @Nonnull static ImmutableInterfaceAnalysis copyOf(@Nonnull final InterfaceAnalysis interfaceanalysis); @Override boolean equals(final Object obj); @Override @Nonnull List<Annotation> getAnnotations(); @Override @Nonnull List<Interface> getExtends(); @Override @Nonnull List<Import> getImports(); @Override @Nonnull String getInterfaceName(); @Override @Nonnull List<Method> getMethods(); @Override @Nonnull Package getPackage(); @Override int hashCode();  }
@Test public void equals_identical() { final ImmutableInterfaceAnalysis a = new Blueprint().build(); final ImmutableInterfaceAnalysis b = new Blueprint().build(); assertEquals(a, b); assertTrue(a.hashCode() == b.hashCode()); }
@Test public void equals_same() { final ImmutableInterfaceAnalysis a = new Blueprint().build(); assertEquals(a, a); assertSame(a, a); assertTrue(a.hashCode() == a.hashCode()); }