Point implements Context { @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + Arrays.hashCode(dimensions); result = prime * result + Arrays.hashCode(location); return result; } Point(Map<String, ?> properties); private  Point(Tuple2<String[], Value[]> dimensionsAndLocation);   Point(String[] dimensions, Value[] location); static Point emptyPoint(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); List<Value> location(); List<String> dimensions(); int dimensionality();  }
@Test public void testPointEquality() { Point a = new Point(Collections.emptyMap()); Point b = new Point(new HashMap<>(0)); assertEquals(a.hashCode(), b.hashCode()); assertEquals(a, b); }