### Question:
ObjectId implements Comparable<ObjectId>, Serializable { public int compareTo(final ObjectId o) { if (this == o) { return 0; } int c = UnsignedInts.compare(h1, o.h1); if (c == 0) { c = UnsignedLongs.compare(h2, o.h2); if (c == 0) { c = UnsignedLongs.compare(h3, o.h3); } } return c; } ObjectId(byte[] raw); private  ObjectId(int h1, long h2, long h3); static ObjectId create(byte[] raw); static ObjectId create(int h1, long h2, long h3); boolean isNull(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static ObjectId valueOf(final @NonNull String hash); static byte[] toRaw(final @NonNull String hash); int compareTo(final ObjectId o); byte[] getRawValue(); void getRawValue(byte[] target); void getRawValue(byte[] target, final int length); int byteN(final int index); static ObjectId readFrom(DataInput in); void writeTo(DataOutput out); static final Ordering<ObjectId> NATURAL_ORDER; static final ObjectId NULL; static final HashFunction HASH_FUNCTION; static final int NUM_BYTES; }### Answer:
@Test public void testCompareTo() { ObjectId oid = new ObjectId(new byte[] { (byte) 0xab, 01, 02, 03, (byte) 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }); ObjectId oid2 = new ObjectId(new byte[] { (byte) 0xba, 01, 02, 03, (byte) 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }); assertTrue(oid.compareTo(oid2) < 0); assertTrue(oid2.compareTo(oid) > 0); assertEquals(oid.compareTo(oid), 0); }