/**
* Test the equals method to ensure that it can distinguish the required
* fields. Note that the dataset is NOT considered in the equals test.
*/
public void testEquals() {
MeterPlot plot1 = new MeterPlot();
MeterPlot plot2 = new MeterPlot();
assertTrue(plot1.equals(plot2));
// units
plot1.setUnits("mph");
assertFalse(plot1.equals(plot2));
plot2.setUnits("mph");
assertTrue(plot1.equals(plot2));
// range
plot1.setRange(new Range(50.0, 70.0));
assertFalse(plot1.equals(plot2));
plot2.setRange(new Range(50.0, 70.0));
assertTrue(plot1.equals(plot2));
// interval
plot1.addInterval(new MeterInterval("Normal", new Range(55.0, 60.0)));
assertFalse(plot1.equals(plot2));
plot2.addInterval(new MeterInterval("Normal", new Range(55.0, 60.0)));
assertTrue(plot1.equals(plot2));
// dial outline paint
plot1.setDialOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.red,
3.0f, 4.0f, Color.blue));
assertFalse(plot1.equals(plot2));
plot2.setDialOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.red,
3.0f, 4.0f, Color.blue));
assertTrue(plot1.equals(plot2));
// dial shape
plot1.setDialShape(DialShape.CHORD);
assertFalse(plot1.equals(plot2));
plot2.setDialShape(DialShape.CHORD);
assertTrue(plot1.equals(plot2));
// dial background paint
plot1.setDialBackgroundPaint(new GradientPaint(9.0f, 8.0f, Color.red,
7.0f, 6.0f, Color.blue));
assertFalse(plot1.equals(plot2));
plot2.setDialBackgroundPaint(new GradientPaint(9.0f, 8.0f, Color.red,
7.0f, 6.0f, Color.blue));
assertTrue(plot1.equals(plot2));
// dial outline paint
plot1.setDialOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.green,
3.0f, 4.0f, Color.red));
assertFalse(plot1.equals(plot2));
plot2.setDialOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.green,
3.0f, 4.0f, Color.red));
assertTrue(plot1.equals(plot2));
// needle paint
plot1.setNeedlePaint(new GradientPaint(9.0f, 8.0f, Color.red,
7.0f, 6.0f, Color.blue));
assertFalse(plot1.equals(plot2));
plot2.setNeedlePaint(new GradientPaint(9.0f, 8.0f, Color.red,
7.0f, 6.0f, Color.blue));
assertTrue(plot1.equals(plot2));
// value font
plot1.setValueFont(new Font("Serif", Font.PLAIN, 6));
assertFalse(plot1.equals(plot2));
plot2.setValueFont(new Font("Serif", Font.PLAIN, 6));
assertTrue(plot1.equals(plot2));
// value paint
plot1.setValuePaint(new GradientPaint(1.0f, 2.0f, Color.black,
3.0f, 4.0f, Color.white));
assertFalse(plot1.equals(plot2));
plot2.setValuePaint(new GradientPaint(1.0f, 2.0f, Color.black,
3.0f, 4.0f, Color.white));
assertTrue(plot1.equals(plot2));
// tick labels visible
plot1.setTickLabelsVisible(false);
assertFalse(plot1.equals(plot2));
plot2.setTickLabelsVisible(false);
assertTrue(plot1.equals(plot2));
// tick label font
plot1.setTickLabelFont(new Font("Serif", Font.PLAIN, 6));
assertFalse(plot1.equals(plot2));
plot2.setTickLabelFont(new Font("Serif", Font.PLAIN, 6));
assertTrue(plot1.equals(plot2));
// tick label paint
plot1.setTickLabelPaint(Color.red);
assertFalse(plot1.equals(plot2));
plot2.setTickLabelPaint(Color.red);
assertTrue(plot1.equals(plot2));
// tick label format
plot1.setTickLabelFormat(new DecimalFormat("0"));
assertFalse(plot1.equals(plot2));
plot2.setTickLabelFormat(new DecimalFormat("0"));
assertTrue(plot1.equals(plot2));
// tick paint
plot1.setTickPaint(Color.green);
assertFalse(plot1.equals(plot2));
plot2.setTickPaint(Color.green);
assertTrue(plot1.equals(plot2));
// tick size
plot1.setTickSize(1.23);
assertFalse(plot1.equals(plot2));
plot2.setTickSize(1.23);
assertTrue(plot1.equals(plot2));
// draw border
plot1.setDrawBorder(!plot1.getDrawBorder());
assertFalse(plot1.equals(plot2));
plot2.setDrawBorder(plot1.getDrawBorder());
assertTrue(plot1.equals(plot2));
// meter angle
plot1.setMeterAngle(22);
assertFalse(plot1.equals(plot2));
plot2.setMeterAngle(22);
assertTrue(plot1.equals(plot2));
}