### Question:
CSVParseParameters extends Observable implements Cloneable { @Override public CSVParseParameters clone() { try { CSVParseParameters result = (CSVParseParameters)super.clone(); result.myColumnNames = New.list(myColumnNames); result.mySpecialColumns = New.set(StreamUtilities.map(mySpecialColumns, specialColumn -> specialColumn.clone())); result.myColumnsToIgnore = New.list(myColumnsToIgnore); result.myColumnInfo = StreamUtilities.map(myColumnInfo, columnInfo -> columnInfo.clone()); return result; } catch (CloneNotSupportedException e) { throw new ExpectedCloneableException(e); } } CSVParseParameters();  CSVParseParameters(CSVParseParameters parameters); CSVColumnFormat getColumnFormat(); List<? extends String> getColumnNames(); String getCommentIndicator(); Integer getDataStartLine(); Integer getHeaderLine(); Set<SpecialColumn> getSpecialColumns(); void setColumnFormat(CSVColumnFormat columnFormat); void setColumnNames(List<? extends String> columnNames); void setCommentIndicator(String commentIndicator); void setDataStartLine(Integer dataStartLine); void setHeaderLine(Integer headerLine); List<Integer> getColumnsToIgnore(); void setColumnsToIgnore(List<Integer> columnsToIgnore); List<CSVColumnInfo> getColumnClasses(); void setColumnClasses(List<CSVColumnInfo> columnClasses); void setFiresUpdates(boolean update); boolean hasCategory(final Category category); boolean hasType(final ColumnType type); boolean hasType(final ColumnType... types); SpecialColumn getSpecialColumn(ColumnType columnType); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString(); @Override CSVParseParameters clone(); @XmlTransient
    static final String COLUMNFORMAT; @XmlTransient
    static final String COMMENTINDICATOR; @XmlTransient
    static final String DATASTARTLINE; @XmlTransient
    static final String HEADERLINE; }### Answer:
@Test public void testClone() { CSVParseParameters input = getTestObject(); CSVParseParameters clone = input.clone(); Assert.assertTrue(Utilities.notSameInstance(input, clone)); Assert.assertTrue(Utilities.sameInstance(input.getClass(), clone.getClass())); Assert.assertEquals(input, clone); }