### Question:
ImmutableTerm implements Term { @Override public final int hashCode() { return super.hashCode()*HASH_CODE_SALT; } ImmutableTerm(AbstractImmutableVocabulary<? extends ImmutableTerm> vocabulary, String entityName); @Override final int ordinal(); @Override final String name(); @Override final String entityName(); @Override final String qualifiedEntityName(); @Override final Vocabulary getDeclaringVocabulary(); @Override V as(Class<? extends V> valueClass); @Override final boolean equals(Object other); @Override final int hashCode(); @Override String toString(); @Override int compareTo(Term other);  }### Answer:
@Test public void testHashCode$isCustom() throws Exception { ImmutableTerm term = term(); assertThat(term.hashCode(),not(equalTo(System.identityHashCode(term)))); }
@Test public void testHashCode$notSame() throws Exception { V v=new V(); ImmutableTerm term1 = new ImmutableTerm(v,"termA"); V v2=new V(); ImmutableTerm term2 = new ImmutableTerm(v2,"termA"); assertThat(term1.hashCode(),not(equalTo(term2.hashCode()))); }