### Question:
Vector3 extends Message { @Override public Vector3 clone() { return new Vector3(this.x, this.y, this.z); } Vector3();  Vector3(double x, double y, double z); double getX(); double getY(); double getZ(); @Override Vector3 clone(); static Vector3 fromJsonString(String jsonString); static Vector3 fromMessage(Message m); static Vector3 fromJsonObject(JsonObject jsonObject); static final String FIELD_X; static final String FIELD_Y; static final String FIELD_Z; static final String TYPE; }### Answer:
@Test public void testClone() { Vector3 clone = v1.clone(); assertEquals(v1.toString(), clone.toString()); assertEquals(v1.toJsonObject(), clone.toJsonObject()); assertEquals(v1.getMessageType(), clone.getMessageType()); assertEquals(v1.getX(), clone.getX(), 0); assertEquals(v1.getY(), clone.getY(), 0); assertEquals(v1.getZ(), clone.getZ(), 0); assertNotSame(v1, clone); assertNotSame(v1.toString(), clone.toString()); assertNotSame(v1.toJsonObject(), clone.toJsonObject()); }