internal void TestWriteToWithMessageSet(MessageSet set)
 {
     // do the write twice to ensure the message set is restored to its orginal state
     for (var i = 0; i < 1; i++)
     {
         var stream = ByteBuffer.Allocate(1024);
         var written = set.WriteTo(stream, 0, 1024);
         stream.SetLength(written);
         Assert.Equal(set.SizeInBytes, written);
         stream.Position = 0;
         var newSet = new ByteBufferMessageSet(stream);
         Assert.Equal(TestUtil.IteratorToArray(set.Iterator()), TestUtil.IteratorToArray(newSet.Iterator()));
     }
 }