/** Check that the equals() method distinguishes the required fields. */
  public void testEquals() {
    MultiplePiePlot p1 = new MultiplePiePlot();
    MultiplePiePlot p2 = new MultiplePiePlot();
    assertTrue(p1.equals(p2));
    assertTrue(p2.equals(p1));

    p1.setDataExtractOrder(TableOrder.BY_ROW);
    assertFalse(p1.equals(p2));
    p2.setDataExtractOrder(TableOrder.BY_ROW);
    assertTrue(p1.equals(p2));

    p1.setLimit(1.23);
    assertFalse(p1.equals(p2));
    p2.setLimit(1.23);
    assertTrue(p1.equals(p2));

    p1.setAggregatedItemsKey("Aggregated Items");
    assertFalse(p1.equals(p2));
    p2.setAggregatedItemsKey("Aggregated Items");
    assertTrue(p1.equals(p2));

    p1.setAggregatedItemsPaint(new GradientPaint(1.0f, 2.0f, Color.red, 3.0f, 4.0f, Color.yellow));
    assertFalse(p1.equals(p2));
    p2.setAggregatedItemsPaint(new GradientPaint(1.0f, 2.0f, Color.red, 3.0f, 4.0f, Color.yellow));
    assertTrue(p1.equals(p2));

    p1.setPieChart(ChartFactory.createPieChart("Title", null, true, true, true));
    assertFalse(p1.equals(p2));
    p2.setPieChart(ChartFactory.createPieChart("Title", null, true, true, true));
    assertTrue(p1.equals(p2));
  }
  /** Serialize an instance, restore it, and check for equality. */
  public void testSerialization() {
    MultiplePiePlot p1 = new MultiplePiePlot(null);
    p1.setAggregatedItemsPaint(new GradientPaint(1.0f, 2.0f, Color.yellow, 3.0f, 4.0f, Color.red));
    MultiplePiePlot p2 = null;
    try {
      ByteArrayOutputStream buffer = new ByteArrayOutputStream();
      ObjectOutput out = new ObjectOutputStream(buffer);
      out.writeObject(p1);
      out.close();

      ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
      p2 = (MultiplePiePlot) in.readObject();
      in.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
    assertEquals(p1, p2);
  }