/** Maps with same contents are equal */
 public void testEquals() {
   ConcurrentNavigableMap map1 = map5();
   ConcurrentNavigableMap map2 = map5();
   assertEquals(map1, map2);
   assertEquals(map2, map1);
   map1.clear();
   assertFalse(map1.equals(map2));
   assertFalse(map2.equals(map1));
 }
  /** A deserialized map equals original */
  public void testSerialization() throws Exception {
    ConcurrentNavigableMap q = map5();

    ByteArrayOutputStream bout = new ByteArrayOutputStream(10000);
    ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(bout));
    out.writeObject(q);
    out.close();

    ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray());
    ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(bin));
    ConcurrentNavigableMap r = (ConcurrentNavigableMap) in.readObject();
    assertEquals(q.size(), r.size());
    assertTrue(q.equals(r));
    assertTrue(r.equals(q));
  }