### Question:
GrayPaintScale implements PaintScale, PublicCloneable,
        Serializable { @Override public Object clone() throws CloneNotSupportedException { return super.clone(); } GrayPaintScale();  GrayPaintScale(double lowerBound, double upperBound);  GrayPaintScale(double lowerBound, double upperBound, int alpha); @Override double getLowerBound(); @Override double getUpperBound(); int getAlpha(); @Override Paint getPaint(double value); @Override boolean equals(Object obj); @Override int hashCode(); @Override Object clone();  }### Answer:
@Test public void testCloning() throws CloneNotSupportedException { GrayPaintScale g1 = new GrayPaintScale(); GrayPaintScale g2 = (GrayPaintScale) g1.clone(); assertNotSame(g1, g2); assertSame(g1.getClass(), g2.getClass()); assertEquals(g1, g2); }