### Question:
CategoryTableXYDataset extends AbstractIntervalXYDataset implements TableXYDataset, IntervalXYDataset, DomainInfo,
                   PublicCloneable { public void add(double x, double y, String seriesName) { add(x, y, seriesName, true); } CategoryTableXYDataset(); void add(double x, double y, String seriesName); void add(Number x, Number y, String seriesName, boolean notify); void remove(double x, String seriesName); void remove(Number x, String seriesName, boolean notify); void clear(); @Override int getSeriesCount(); @Override Comparable getSeriesKey(int series); @Override int getItemCount(); @Override int getItemCount(int series); @Override Number getX(int series, int item); @Override Number getStartX(int series, int item); @Override Number getEndX(int series, int item); @Override Number getY(int series, int item); @Override Number getStartY(int series, int item); @Override Number getEndY(int series, int item); @Override double getDomainLowerBound(boolean includeInterval); @Override double getDomainUpperBound(boolean includeInterval); @Override Range getDomainBounds(boolean includeInterval); double getIntervalPositionFactor(); void setIntervalPositionFactor(double d); double getIntervalWidth(); void setIntervalWidth(double d); boolean isAutoWidth(); void setAutoWidth(boolean b); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testSerialization() throws IOException, ClassNotFoundException { CategoryTableXYDataset d1 = new CategoryTableXYDataset(); d1.add(1.0, 1.1, "Series 1"); d1.add(2.0, 2.2, "Series 1"); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); ObjectOutput out = new ObjectOutputStream(buffer); out.writeObject(d1); out.close(); ObjectInput in = new ObjectInputStream( new ByteArrayInputStream(buffer.toByteArray()) ); CategoryTableXYDataset d2 = (CategoryTableXYDataset) in.readObject(); in.close(); assertEquals(d1, d2); }