@Test
  public void hashCodeOfDouble() {
    assertThat(Objects.hashCode(0.0d)).isEqualTo(0);
    assertThat(Objects.hashCode(-0.0d)).isEqualTo(-2147483648);
    assertThat(Objects.hashCode(1.0d)).isEqualTo(1072693248);
    assertThat(Objects.hashCode(-1.0d)).isEqualTo(-1074790400);
    assertThat(Objects.hashCode(Double.MAX_VALUE)).isEqualTo(-2146435072);
    assertThat(Objects.hashCode(Double.MAX_VALUE * -1)).isEqualTo(1048576);
    assertThat(Objects.hashCode(Double.MIN_VALUE)).isEqualTo(1);
    assertThat(Objects.hashCode(Double.POSITIVE_INFINITY)).isEqualTo(2146435072);
    assertThat(Objects.hashCode(Double.NEGATIVE_INFINITY)).isEqualTo(-1048576);
    assertThat(Objects.hashCode(Double.MIN_NORMAL)).isEqualTo(1048576);
    assertThat(Objects.hashCode(Double.NaN)).isEqualTo(2146959360);
  }
The test serves two purposes:
<p>
Since Geode hashes rely heavily on the Java implementation hashes. If those were to differ
between version it could pose difficulties in routing or finding keys on the correct servers.
<p>
It also serves as a comparison for hashing in other languages that need to match the Java hash
algorithm for specific types.
geode-core/src/test/java/org/apache/geode/cache/util/ObjectsTest.java