class TrackingLongDoubleHashMap extends LongDoubleHashMap {

    public static MemoryEstimation memoryEstimation(int pageSize) {
        return MemoryEstimations
                .builder(TrackingLongDoubleHashMap.class)
                .rangePerNode("map buffers", nodeCount -> {
                    long minBufferSize = MemoryUsage.sizeOfEmptyOpenHashContainer();
                    long maxBufferSize = MemoryUsage.sizeOfOpenHashContainer(Math.min(pageSize, nodeCount));
                    long min = sizeOfLongArray(minBufferSize) + sizeOfDoubleArray(minBufferSize);
                    long max = sizeOfLongArray(maxBufferSize) + sizeOfDoubleArray(maxBufferSize);
                    return MemoryRange.of(min, max);
                })
                .build();
    }

    public  TrackingLongDoubleHashMap(AllocationTracker tracker);

}