Rectangle3 implements Cloneable, Savable, Externalizable, ReadOnlyRectangle3, Poolable { @Override public int hashCode() { int result = 17; result += 31 * result + _a.hashCode(); result += 31 * result + _b.hashCode(); result += 31 * result + _c.hashCode(); return result; } Rectangle3();  Rectangle3(final ReadOnlyRectangle3 source);  Rectangle3(final ReadOnlyVector3 a, final ReadOnlyVector3 b, final ReadOnlyVector3 c); Rectangle3 set(final ReadOnlyRectangle3 source); @Override ReadOnlyVector3 getA(); void setA(final ReadOnlyVector3 a); @Override ReadOnlyVector3 getB(); void setB(final ReadOnlyVector3 b); @Override ReadOnlyVector3 getC(); void setC(final ReadOnlyVector3 c); @Override Vector3 random(Vector3 result); @Override String toString(); @Override int hashCode(); @Override boolean equals(final Object o); @Override Rectangle3 clone(); @Override void write(final OutputCapsule capsule); @Override void read(final InputCapsule capsule); @Override Class<? extends Rectangle3> getClassTag(); @Override void readExternal(final ObjectInput in); @Override void writeExternal(final ObjectOutput out); final static Rectangle3 fetchTempInstance(); final static void releaseTempInstance(final Rectangle3 rectangle);  }
@Test public void testSimpleHash() { final Rectangle3 rect1 = new Rectangle3(Vector3.ZERO, Vector3.UNIT_Y, Vector3.UNIT_X); final Rectangle3 rect2 = new Rectangle3(Vector3.ZERO, Vector3.UNIT_Y, Vector3.UNIT_X); final Rectangle3 rect3 = new Rectangle3(Vector3.ZERO, Vector3.UNIT_Y, Vector3.UNIT_Z); assertTrue(rect1.hashCode() == rect2.hashCode()); assertTrue(rect1.hashCode() != rect3.hashCode()); }