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