unit test for the whole serialization process

Interface Input DataInput anf DataOutput need to be revised, but I left them unchanged
why we need a TreeMap here?