### Question:
ShapeFileDataSource extends ImportDataSource { @Override public ShapeFileDataSource clone() { ShapeFileDataSource result = (ShapeFileDataSource)super.clone(); result.myParseParameters = myParseParameters.clone(); return result; } ShapeFileDataSource();  ShapeFileDataSource(URI sourceUri); ImportParseParameters getParseParameters(); void setParseParameters(ImportParseParameters parseParameters); @Override int hashCode(); @Override boolean equals(Object obj); @Override String toString(); @Override ShapeFileDataSource clone(); @Override String generateTypeKey(); Set<String> getColumnFilter();  }### Answer:
@Test public void testClone() { ShapeFileDataSource input = getTestObject(); ShapeFileDataSource clone = input.clone(); Assert.assertTrue(Utilities.notSameInstance(input, clone)); Assert.assertTrue(Utilities.sameInstance(input.getClass(), clone.getClass())); Assert.assertEquals(input, clone); }