@Override
    void create(int capacity, IntBinaryOperator tieBreaker) {
      doubleHeap = DoubleMinHeap.newArrayHeap(capacity, tieBreaker);
      heap = new LongMinHeap() {
        @Override
        public int size() {
          return doubleHeap.size();
        }

        @Override
        public boolean isEmpty() {
          return doubleHeap.isEmpty();
        }

        @Override
        public void push(int id, long value) {
          doubleHeap.push(id, value);
        }

        @Override
        public boolean contains(int id) {
          return doubleHeap.contains(id);
        }

        @Override
        public void update(int id, long value) {
          doubleHeap.update(id, value);
        }

        @Override
        public void updateHead(long value) {
          doubleHeap.updateHead(value);
        }

        @Override
        public int peekId() {
          return doubleHeap.peekId();
        }

        @Override
        public long peekValue() {
          return (long) doubleHeap.peekValue();
        }

        @Override
        public int poll() {
          return doubleHeap.poll();
        }

        @Override
        public void clear() {
          doubleHeap.clear();
        }
      };
    }
Ported from <a href=
"https://github.com/graphhopper/graphhopper/blob/master/core/src/test/java/com/graphhopper/coll/MinHeapWithUpdateTest.java">GraphHopper</a>
and modified to use long instead of float values, use stable random seed for reproducibility, and to use new
implementations.
planetiler-core/src/test/java/com/onthegomap/planetiler/collection/MinHeapTest.java