### Question:
LineAndShapeRenderer extends AbstractCategoryItemRenderer implements Cloneable, PublicCloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { LineAndShapeRenderer clone = (LineAndShapeRenderer) super.clone(); clone.seriesLinesVisible = (BooleanList) this.seriesLinesVisible.clone(); clone.seriesShapesVisible = (BooleanList) this.seriesShapesVisible.clone(); clone.seriesShapesFilled = (BooleanList) this.seriesShapesFilled.clone(); return clone; } LineAndShapeRenderer();  LineAndShapeRenderer(boolean lines, boolean shapes); boolean getItemLineVisible(int series, int item); Boolean getSeriesLinesVisible(int series); void setSeriesLinesVisible(int series, Boolean flag); void setSeriesLinesVisible(int series, boolean visible); boolean getBaseLinesVisible(); void setBaseLinesVisible(boolean flag); boolean getItemShapeVisible(int series, int item); Boolean getSeriesShapesVisible(int series); void setSeriesShapesVisible(int series, boolean visible); void setSeriesShapesVisible(int series, Boolean flag); boolean getBaseShapesVisible(); void setBaseShapesVisible(boolean flag); boolean getDrawOutlines(); void setDrawOutlines(boolean flag); boolean getUseOutlinePaint(); void setUseOutlinePaint(boolean use); boolean getItemShapeFilled(int series, int item); boolean getSeriesShapesFilled(int series); void setSeriesShapesFilled(int series, Boolean filled); void setSeriesShapesFilled(int series, boolean filled); boolean getBaseShapesFilled(); void setBaseShapesFilled(boolean flag); boolean getUseFillPaint(); void setUseFillPaint(boolean flag); boolean getUseSeriesOffset(); void setUseSeriesOffset(boolean offset); double getItemMargin(); void setItemMargin(double margin); @Override LegendItem getLegendItem(int datasetIndex, int series); @Override int getPassCount(); @Override void drawItem(Graphics2D g2, CategoryItemRendererState state,
            Rectangle2D dataArea, CategoryPlot plot, CategoryAxis domainAxis,
            ValueAxis rangeAxis, CategoryDataset dataset, int row, int column,
            int pass); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testCloning() throws CloneNotSupportedException { LineAndShapeRenderer r1 = new LineAndShapeRenderer(); LineAndShapeRenderer r2 = (LineAndShapeRenderer) r1.clone(); assertNotSame(r1, r2); assertSame(r1.getClass(), r2.getClass()); assertEquals(r1, r2); assertTrue(checkIndependence(r1, r2)); }