### Question:
IntervalMarker extends Marker implements Cloneable, Serializable { @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (!(obj instanceof IntervalMarker)) { return false; } if (!super.equals(obj)) { return false; } IntervalMarker that = (IntervalMarker) obj; if (this.startValue != that.startValue) { return false; } if (this.endValue != that.endValue) { return false; } if (!ObjectUtilities.equal(this.gradientPaintTransformer, that.gradientPaintTransformer)) { return false; } return true; } IntervalMarker(double start, double end);  IntervalMarker(double start, double end, Paint paint);  IntervalMarker(double start, double end,
                          Paint paint, Stroke stroke,
                          Paint outlinePaint, Stroke outlineStroke,
                          float alpha); double getStartValue(); void setStartValue(double value); double getEndValue(); void setEndValue(double value); GradientPaintTransformer getGradientPaintTransformer(); void setGradientPaintTransformer(
            GradientPaintTransformer transformer); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testEquals() { IntervalMarker m1 = new IntervalMarker(45.0, 50.0); IntervalMarker m2 = new IntervalMarker(45.0, 50.0); assertEquals(m1, m2); assertEquals(m2, m1); m1 = new IntervalMarker(44.0, 50.0); assertFalse(m1.equals(m2)); m2 = new IntervalMarker(44.0, 50.0); assertEquals(m1, m2); m1 = new IntervalMarker(44.0, 55.0); assertFalse(m1.equals(m2)); m2 = new IntervalMarker(44.0, 55.0); assertEquals(m1, m2); GradientPaintTransformer t = new StandardGradientPaintTransformer( GradientPaintTransformType.HORIZONTAL); m1.setGradientPaintTransformer(t); assertFalse(m1.equals(m2)); m2.setGradientPaintTransformer(t); assertEquals(m1, m2); }