@Test
public void testDecrease() throws Exception {

    HashMap<Integer, Integer> map = new HashMap<>();
    BinaryHeap<Integer, Integer> bi = new BinaryHeap<>(true, map::get);
    map.put(1, 1);
    map.put(2, 2);
    map.put(3, 3);
    map.put(4, 4);
    map.put(5, 5);
    map.put(6, 6);
    map.put(7, 7);
    map.put(8, 8);
    bi.addElement(5);
    bi.addElement(6);
    bi.addElement(4);
    bi.addElement(3);
    bi.addElement(7);
    assertEquals(bi.extract().intValue(), 3);
    map.put(7, 0);
    bi.decrease(7);
    assertEquals(bi.extract().intValue(), 7);
    bi.addElement(8);
    bi.addElement(2);
    map.put(8, 1);
    bi.decrease(8);
    assertEquals(bi.extract().intValue(), 8);
}