### Question:
IndexDesc implements ProtoObject<IndexDescProto>, Cloneable { public Object clone() throws CloneNotSupportedException { IndexDesc desc = (IndexDesc) super.clone(); desc.databaseName = this.databaseName; desc.tableName = this.tableName; desc.indexMeta = (IndexMeta) this.indexMeta.clone(); return desc; } IndexDesc();  IndexDesc(String databaseName, String tableName, String indexName, URI indexPath, SortSpec[] keySortSpecs,
                   IndexMethod type,  boolean isUnique, boolean isClustered, Schema targetRelationSchema);  IndexDesc(IndexDescProto proto); void set(String databaseName, String tableName, String indexName, URI indexPath, SortSpec[] keySortSpecs,
                  IndexMethod type,  boolean isUnique, boolean isClustered, Schema targetRelationSchema); String getDatabaseName(); String getTableName(); String getName(); URI getIndexPath(); SortSpec[] getKeySortSpecs(); IndexMethod getIndexMethod(); boolean isClustered(); boolean isUnique(); Schema getTargetRelationSchema(); @Override IndexDescProto getProto(); boolean equals(Object obj); int hashCode(); Object clone(); String toString();  }### Answer:
@Test public void testClone() throws CloneNotSupportedException { IndexDesc copy = (IndexDesc) desc1.clone(); assertEquals(desc1, copy); assertEquals(desc3, copy); }