/** Confirm that the equals method can distinguish all the required fields. */ public void testEquals() { Stroke stroke1 = new BasicStroke(2.0f); Stroke stroke2 = new BasicStroke(2.5f); XYPolygonAnnotation a1 = new XYPolygonAnnotation( new double[] {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.red, Color.blue); XYPolygonAnnotation a2 = new XYPolygonAnnotation( new double[] {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.red, Color.blue); assertTrue(a1.equals(a2)); assertTrue(a2.equals(a1)); a1 = new XYPolygonAnnotation( new double[] {99.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.red, Color.blue); assertFalse(a1.equals(a2)); a2 = new XYPolygonAnnotation( new double[] {99.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.red, Color.blue); assertTrue(a1.equals(a2)); a1 = new XYPolygonAnnotation( new double[] {99.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke2, Color.red, Color.blue); assertFalse(a1.equals(a2)); a2 = new XYPolygonAnnotation( new double[] {99.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke2, Color.red, Color.blue); assertTrue(a1.equals(a2)); GradientPaint gp1 = new GradientPaint(1.0f, 2.0f, Color.yellow, 3.0f, 4.0f, Color.white); GradientPaint gp2 = new GradientPaint(1.0f, 2.0f, Color.yellow, 3.0f, 4.0f, Color.white); a1 = new XYPolygonAnnotation( new double[] {99.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke2, gp1, Color.blue); assertFalse(a1.equals(a2)); a2 = new XYPolygonAnnotation( new double[] {99.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke2, gp2, Color.blue); assertTrue(a1.equals(a2)); GradientPaint gp3 = new GradientPaint(1.0f, 2.0f, Color.green, 3.0f, 4.0f, Color.white); GradientPaint gp4 = new GradientPaint(1.0f, 2.0f, Color.green, 3.0f, 4.0f, Color.white); a1 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke2, gp1, gp3); assertFalse(a1.equals(a2)); a2 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke2, gp2, gp4); assertTrue(a1.equals(a2)); }
/** Two objects that are equal are required to return the same hashCode. */ public void testHashCode() { Stroke stroke = new BasicStroke(2.0f); XYPolygonAnnotation a1 = new XYPolygonAnnotation( new double[] {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke, Color.red, Color.blue); XYPolygonAnnotation a2 = new XYPolygonAnnotation( new double[] {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke, Color.red, Color.blue); assertTrue(a1.equals(a2)); int h1 = a1.hashCode(); int h2 = a2.hashCode(); assertEquals(h1, h2); }
/** Confirm that cloning works. */ public void testCloning() { Stroke stroke1 = new BasicStroke(2.0f); XYPolygonAnnotation a1 = new XYPolygonAnnotation( new double[] {1.0, 2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.red, Color.blue); XYPolygonAnnotation a2 = null; try { a2 = (XYPolygonAnnotation) a1.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } assertTrue(a1 != a2); assertTrue(a1.getClass() == a2.getClass()); assertTrue(a1.equals(a2)); }