### Question:
ScatterRenderer extends AbstractCategoryItemRenderer implements Cloneable, PublicCloneable, Serializable { @Override public Object clone() throws CloneNotSupportedException { ScatterRenderer clone = (ScatterRenderer) super.clone(); clone.seriesShapesFilled = (BooleanList) this.seriesShapesFilled.clone(); return clone; } ScatterRenderer(); boolean getUseSeriesOffset(); void setUseSeriesOffset(boolean offset); double getItemMargin(); void setItemMargin(double margin); 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); @Override Range findRangeBounds(CategoryDataset dataset); @Override void drawItem(Graphics2D g2, CategoryItemRendererState state,
            Rectangle2D dataArea, CategoryPlot plot, CategoryAxis domainAxis,
            ValueAxis rangeAxis, CategoryDataset dataset, int row, int column,
            int pass); @Override LegendItem getLegendItem(int datasetIndex, int series); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testCloning() throws CloneNotSupportedException { ScatterRenderer r1 = new ScatterRenderer(); ScatterRenderer r2 = (ScatterRenderer) r1.clone(); assertNotSame(r1, r2); assertSame(r1.getClass(), r2.getClass()); assertEquals(r1, r2); assertTrue(checkIndependence(r1, r2)); }