private void writeReadAndVerifyOptimizedByteArray(long threadId, long sequenceId,
      int expectedArrayLength) {
    byte[] array = EventID.getOptimizedByteArrayForEventID(threadId, sequenceId);
    assertEquals("optimized byte-array length not as expected", expectedArrayLength, array.length);
    ByteBuffer buffer = ByteBuffer.wrap(array);
    long threadIdReadFromOptArray = EventID.readEventIdPartsFromOptimizedByteArray(buffer);
    long sequenceIdReadFromOptArray = EventID.readEventIdPartsFromOptimizedByteArray(buffer);
    assertEquals("threadId value read is not same as that written to the byte-buffer", threadId,
        threadIdReadFromOptArray);
    assertEquals("sequenceId value read is not same as that written to the byte-buffer", sequenceId,
        sequenceIdReadFromOptArray);
  }
Creates the optimized byte array using <code>EventID#getOptimizedByteArrayForEventID</code> api
with the given threadId and sequenceId and verifies that the length of that byte-array is as
expected, then reads the values for eventId and sequenceId from this byte-array using
<code>EventID#readEventIdPartsFromOptmizedByteArray</code> api and verifies that they are
decoded properly.

@param threadId the long value of threadId
@param sequenceId the long value of sequenceId
@param expectedArrayLength expected length of the optimized byte-array
geode-core/src/test/java/org/apache/geode/internal/cache/ha/EventIdOptimizationJUnitTest.java