@Test
    public void isKeyChangedAndPlacedInCorrectWay() {
        Goo g1 = new Goo(114, "lu-" + 114);
        Goo g2 = new Goo(13, "lu-" + 13);
        Goo g3 = new Goo(600, "lu-" + 600);
        Goo g4 = new Goo(9, "lu-" + 9);
        Goo g5 = new Goo(7, "lu-" + 7);

        mh.insert(114, new Double(114));
        mh.insert(600, new Double(600));
        mh.insert(13, new Double(13));
        mh.insert(9, new Double(9));
        mh.insert(7, new Double(7));

        objh.insert(114, g1);
        objh.insert(600, g3);
        objh.insert(13, g2);
        objh.insert(9, g4);
        objh.insert(7, g5);

        assertEquals(7, mh.min(), 7);
        mh.change_key(114, 1);
        assertEquals(114, mh.min(), 114);// the value is still 114 but the key is minimum (1)
        assertFalse(mh.isEmpty());
        mh.change_key(1, Double.POSITIVE_INFINITY);
        assertFalse(mh.min() == 114.00);
        mh.change_key(new Double(114), 1);//searching by object not key 
        assertTrue(mh.min() == 114.00);

        assertEquals(objh.min(), g5);//
        objh.change_key(g1, 1);
        assertEquals(objh.min(), g1);// the value is still 114 but the key is minimum (1)
        assertFalse(objh.isEmpty());
        objh.change_key(g1, 6070);
        //System.out.println("min heap: " + objh.getKey(objh.min()));
        assertTrue(objh.min().equals(g5));
        objh.change_key(g1, 1);
        assertTrue(objh.min().equals(g1));

        while (!mh.isEmpty()) {
            mh.delete_min();
        }
        while (!objh.isEmpty()) {
            objh.delete_min();
        }

        assertTrue(mh.isEmpty());
        assertTrue(objh.isEmpty());
    }