### Question:
QuaternionStamped extends Message { @Override public QuaternionStamped clone() { return new QuaternionStamped(this.header, this.quaternion); } QuaternionStamped();  QuaternionStamped(Header header, Quaternion quaternion); Header getHeader(); Quaternion getQuaternion(); @Override QuaternionStamped clone(); static QuaternionStamped fromJsonString(String jsonString); static QuaternionStamped fromMessage(Message m); static QuaternionStamped fromJsonObject(JsonObject jsonObject); static final String FIELD_HEADER; static final String FIELD_QUATERNION; static final String TYPE; }### Answer:
@Test public void testClone() { QuaternionStamped clone = p1.clone(); assertEquals(p1.toString(), clone.toString()); assertEquals(p1.toJsonObject(), clone.toJsonObject()); assertEquals(p1.getMessageType(), clone.getMessageType()); assertEquals(p1.getHeader(), clone.getHeader()); assertEquals(p1.getQuaternion(), clone.getQuaternion()); assertNotSame(p1, clone); assertNotSame(p1.toString(), clone.toString()); assertNotSame(p1.toJsonObject(), clone.toJsonObject()); }