@Test
  void duplicateElements() {
    create(5);
    heap.push(1, 2L);
    heap.push(0, 4L);
    heap.push(2, 1L);
    assertEquals(2, heap.poll());
    // pushing 2 again is ok because it was polled before
    heap.push(2, 6L);
    // but now its not ok to push it again
    assertThrows(IllegalStateException.class, () -> heap.push(2, 4L));
  }
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