### Question:
DefaultHeatMapDataset extends AbstractDataset implements HeatMapDataset, Cloneable, PublicCloneable, Serializable { public void setZValue(int xIndex, int yIndex, double z) { setZValue(xIndex, yIndex, z, true); } DefaultHeatMapDataset(int xSamples, int ySamples, double minX,
            double maxX, double minY, double maxY); @Override int getXSampleCount(); @Override int getYSampleCount(); @Override double getMinimumXValue(); @Override double getMaximumXValue(); @Override double getMinimumYValue(); @Override double getMaximumYValue(); @Override double getXValue(int xIndex); @Override double getYValue(int yIndex); @Override double getZValue(int xIndex, int yIndex); @Override Number getZ(int xIndex, int yIndex); void setZValue(int xIndex, int yIndex, double z); void setZValue(int xIndex, int yIndex, double z, boolean notify); @Override boolean equals(Object obj); @Override Object clone();  }### Answer:
@Test public void testSerialization() throws IOException, ClassNotFoundException { DefaultHeatMapDataset d1 = new DefaultHeatMapDataset(2, 3, -1.0, 4.0, -2.0, 5.0); d1.setZValue(0, 0, 10.0); d1.setZValue(0, 1, Double.NEGATIVE_INFINITY); d1.setZValue(0, 2, Double.POSITIVE_INFINITY); d1.setZValue(1, 0, Double.NaN); ByteArrayOutputStream buffer = new ByteArrayOutputStream(); ObjectOutput out = new ObjectOutputStream(buffer); out.writeObject(d1); out.close(); ObjectInput in = new ObjectInputStream(new ByteArrayInputStream( buffer.toByteArray())); DefaultHeatMapDataset d2 = (DefaultHeatMapDataset) in.readObject(); in.close(); assertEquals(d1, d2); }