### Question:
ImmutableLanguage implements Language { @Override public int hashCode() { return Objects.hashCode(this.locale); } ImmutableLanguage(Locale locale); @Override boolean isWildcard(); @Override String primaryTag(); @Override String subTag(); @Override Locale locale(); @Override String toHeader(); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString();  }### Answer:
@Test public void wildcardLanguagesHaveSameHashCode() { assertThat(wildcard().hashCode(),equalTo(wildcard().hashCode())); }
@Test public void equalSimpleLanguageHaveSameHashCode() { assertThat(simpleLanguage().hashCode(),equalTo(simpleLanguage().hashCode())); }
@Test public void equalCompositeLanguageHaveSameHashCode() { assertThat(compositeLanguage().hashCode(),equalTo(compositeLanguage().hashCode())); }
@Test public void differentLanguagesHaveDifferentHashCode() { assertThat(simpleLanguage().hashCode(),not(equalTo(compositeLanguage().hashCode()))); }