### Question:
Triangle implements Cloneable, Savable, Externalizable, ReadOnlyTriangle, Poolable { @Override public Triangle clone() { return new Triangle(this); } Triangle();  Triangle(final ReadOnlyTriangle source);  Triangle(final ReadOnlyVector3 pointA, final ReadOnlyVector3 pointB, final ReadOnlyVector3 pointC);  Triangle(final ReadOnlyVector3 pointA, final ReadOnlyVector3 pointB, final ReadOnlyVector3 pointC,
    final int index); Triangle set(final ReadOnlyTriangle source); @Override int getIndex(); @Override ReadOnlyVector3 get(final int index); @Override ReadOnlyVector3 getA(); @Override ReadOnlyVector3 getB(); @Override ReadOnlyVector3 getC(); @Override ReadOnlyVector3 getNormal(); @Override ReadOnlyVector3 getCenter(); void setIndex(final int index); void setA(final ReadOnlyVector3 pointA); void setB(final ReadOnlyVector3 pointB); void setC(final ReadOnlyVector3 pointC); void set(final int index, final ReadOnlyVector3 point); static boolean isValid(final Triangle triangle); @Override double getArea(); @Override String toString(); @Override int hashCode(); @Override boolean equals(final Object o); @Override Triangle clone(); @Override Class<? extends Triangle> getClassTag(); @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 Triangle fetchTempInstance(); final static void releaseTempInstance(final Triangle tri);  }### Answer:
@Test public void testClone() { final Triangle tri1 = new Triangle(); final Triangle tri2 = tri1.clone(); assertEquals(tri1, tri2); assertNotSame(tri1, tri2); }