### Question:
UnpooledOffHeapMemoryAllocator implements OffHeapMemoryAllocator { public static long estimateSizeOverhead(long size) { return (size + 8 + 15) & ~15; }  @Override long allocate(long memoryLength); @Override void deallocate(long memoryAddress, long size); @Override long getAllocatedAmount(); static long estimateSizeOverhead(long size); static long offHeapEntrySize(boolean evictionEnabled, boolean writeMetadataSize, int keySize, int valueSize); static long offHeapEntrySize(boolean evictionEnabled, boolean writeMetadataSize, int keySize, int valueSize,
         int metadataSize, int internalMetadataSize);  }### Answer:
@Test(dataProvider = "roundings") public void testRoundings(long original, long expected) { assertEquals(expected, UnpooledOffHeapMemoryAllocator.estimateSizeOverhead(original)); }