### Question:
Duration extends TimeBase<Duration> { @Override public Duration clone() { return new Duration(this.secs, this.nsecs); } Duration();  Duration(int secs, int nsecs);  Duration(double sec);  Duration(long nano); @Override Duration add(Duration d); @Override Duration subtract(Duration d); boolean sleep(); @Override Duration clone(); static Duration fromSec(double sec); static Duration fromNano(long nano); static Duration fromJsonString(String jsonString); static Duration fromJsonObject(JsonObject jsonObject); static final String TYPE; }### Answer:
@Test public void testClone() { Duration clone = d1.clone(); assertEquals(d1.toString(), clone.toString()); assertEquals(d1.toJsonObject(), clone.toJsonObject()); assertEquals(d1.getPrimitiveType(), clone.getPrimitiveType()); assertEquals(d1.getSecs(), clone.getSecs()); assertEquals(d1.getNsecs(), clone.getNsecs()); assertEquals(d1.toSec(), clone.toSec(), 0); assertEquals(d1.toNSec(), clone.toNSec()); assertNotSame(d1, clone); assertNotSame(d1.toString(), clone.toString()); assertNotSame(d1.toJsonObject(), clone.toJsonObject()); }