equals() overridden without hashCode(): a == b is true, but hashCode() differs
==============================================================================

a.equals(b) = true
a.hashCode() = 1390869998
b.hashCode() = 1820383114
(these should be IDENTICAL per the contract - they are not, because hashCode() was never overridden)

HashSet<EqualsOnlyPoint> after adding two equal-but-differently-hashed points: size=2
HashSet<CorrectPoint>    after adding two equal, correctly-hashed points:      size=1