### Question:
LineSegment3 extends Line3Base implements ReadOnlyLineSegment3, Poolable { @Override public boolean equals(final Object o) { if (this == o) { return true; } if (!(o instanceof ReadOnlyLineSegment3)) { return false; } final ReadOnlyLineSegment3 comp = (ReadOnlyLineSegment3) o; return _origin.equals(comp.getOrigin()) && _direction.equals(comp.getDirection()) && _extent == comp.getExtent(); } LineSegment3();  LineSegment3(final ReadOnlyLineSegment3 source);  LineSegment3(final ReadOnlyVector3 origin, final ReadOnlyVector3 direction, final double extent);  LineSegment3(final ReadOnlyVector3 start, final ReadOnlyVector3 end); LineSegment3 set(final ReadOnlyLineSegment3 source); @Override double getExtent(); void setExtent(final double extent); Vector3 getPositiveEnd(final Vector3 store); Vector3 getNegativeEnd(final Vector3 store); @Override double distanceSquared(final ReadOnlyVector3 point, final Vector3 store); Vector3 random(final Vector3 store); static boolean isValid(final ReadOnlyLineSegment3 segment); @Override String toString(); @Override boolean equals(final Object o); @Override int hashCode(); @Override LineSegment3 clone(); @Override void write(final OutputCapsule capsule); @Override void read(final InputCapsule capsule); @Override void readExternal(final ObjectInput in); @Override void writeExternal(final ObjectOutput out); final static LineSegment3 fetchTempInstance(); final static void releaseTempInstance(final LineSegment3 segment);  }### Answer:
@Test public void testEquals() { final LineSegment3 seg1 = new LineSegment3(); assertEquals(seg1, seg1); assertFalse(seg1.equals(null)); final LineSegment3 seg2 = LineSegment3.fetchTempInstance(); seg2.set(seg1); assertEquals(seg1, seg2); assertNotSame(seg1, seg2); LineSegment3.releaseTempInstance(seg2); assertFalse(seg1.equals(new LineSegment3(Vector3.ZERO, Vector3.UNIT_X, 2))); assertFalse(seg1.equals(new LineSegment3(Vector3.ZERO, Vector3.UNIT_Z, 2))); }