### Question:
Parameter implements Described, Named { @Override public int hashCode() { return name.toLowerCase(Locale.getDefault()).hashCode(); } Parameter(final String name);  Parameter(final String name, final String description); @Override boolean equals(final Object obj); @Override String getName(); @Override String getDescription(); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void testEqualsDifferentDescription() { final Parameter other = new Parameter(name, StringUtils.reverse(description)); assertThat(param).isEqualTo(other); assertThat(other).isEqualTo(param); assertThat(param.hashCode()).isEqualTo(other.hashCode()); }
@Test public void testEqualsNameCaseInsensitive() { final Parameter other = new Parameter(StringUtils.swapCase(name)); assertThat(param).isEqualTo(other); assertThat(other).isEqualTo(param); assertThat(param.hashCode()).isEqualTo(other.hashCode()); }