@Test
  public void testCompact() throws Exception {
    DynamicByteBuffer readBuffer = DynamicByteBuffer.allocate(512);

    byte[] bytes = new byte[521];
    DynamicByteBuffer data = DynamicByteBuffer.wrap(bytes);
    readBuffer.putBuffer(data);
    readBuffer.limit(data.position());
    int numberOfBytesToBeCopiedDuringCompact = readBuffer.remaining();
    readBuffer.compact(); // compact the read buffer
    Assert.assertEquals(numberOfBytesToBeCopiedDuringCompact, readBuffer.position());

    byte[] bytes1 = new byte[10];
    DynamicByteBuffer data1 = DynamicByteBuffer.wrap(bytes1);

    readBuffer.putBuffer(data1);
    readBuffer.limit(data1.position());

    numberOfBytesToBeCopiedDuringCompact = readBuffer.remaining();
    readBuffer.compact(); // compact the read buffer
    Assert.assertEquals(numberOfBytesToBeCopiedDuringCompact, readBuffer.position());

    readBuffer.position(10);
    numberOfBytesToBeCopiedDuringCompact = readBuffer.remaining();
    readBuffer.compact();
    Assert.assertEquals(numberOfBytesToBeCopiedDuringCompact, readBuffer.position());
  }
  @Test
  public void testBuffers() throws Exception {
    // tests reallocation of buffer automatically.
    String test1 = "Test1";
    String test2 = "Test2";
    DynamicByteBuffer buf1 = DynamicByteBuffer.wrap(test1.getBytes());
    DynamicByteBuffer buf2 = DynamicByteBuffer.wrap(test2.getBytes());
    buf1.get();
    buf1.get();

    int p = buf1.position();
    buf1.skip(buf1.remaining());
    buf1.putBuffer(buf2);
    buf1.flip();
    buf1.position(p);
    buf1 = buf1.slice();

    // TODO: should test actual contents of these buffers
    assertEquals(8, buf1.remaining());
  }