@Test
  void poll() {
    create(10);
    assertTrue(heap.isEmpty());
    assertEquals(0, heap.size());

    heap.push(9, 36L);
    assertFalse(heap.isEmpty());
    assertEquals(1, heap.size());

    heap.push(5, 21L);
    assertFalse(heap.isEmpty());
    assertEquals(2, heap.size());

    heap.push(3, 23L);
    assertFalse(heap.isEmpty());
    assertEquals(3, heap.size());

    heap.push(8, 57L);
    assertFalse(heap.isEmpty());
    assertEquals(4, heap.size());

    assertEquals(5, heap.poll());
    assertFalse(heap.isEmpty());
    assertEquals(3, heap.size());

    assertEquals(3, heap.poll());
    assertFalse(heap.isEmpty());
    assertEquals(2, heap.size());

    assertEquals(9, heap.poll());
    assertFalse(heap.isEmpty());
    assertEquals(1, heap.size());

    assertEquals(8, heap.poll());
    assertTrue(heap.isEmpty());
    assertEquals(0, heap.size());
  }
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