Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8cc3231

Browse files
Add tests to heap "update" method
1 parent 0ecc151 commit 8cc3231

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

test/data-structures/heap.spec.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,38 @@ describe('Heap', function () {
5858
res = heap.extract();
5959
expect(res).toBe(66);
6060
});
61+
it('should update top node properly', function () {
62+
var heap = new Heap(function (a, b) {
63+
return a.val - b.val;
64+
});
65+
var objectToUpdate = { val: 66 };
66+
heap.add(objectToUpdate);
67+
heap.add({ val: 11 });
68+
heap.add({ val: 55 });
69+
objectToUpdate.val = 0;
70+
heap.update(objectToUpdate);
71+
var res = heap.extract();
72+
expect(res.val).toBe(55);
73+
res = heap.extract();
74+
expect(res.val).toBe(11);
75+
res = heap.extract();
76+
expect(res.val).toBe(0);
77+
});
78+
it('should update bottom node properly', function () {
79+
var heap = new Heap(function (a, b) {
80+
return a.val - b.val;
81+
});
82+
var objectToUpdate = { val: 0 };
83+
heap.add(objectToUpdate);
84+
heap.add({ val: 11 });
85+
heap.add({ val: 55 });
86+
objectToUpdate.val = 66;
87+
heap.update(objectToUpdate);
88+
var res = heap.extract();
89+
expect(res.val).toBe(66);
90+
res = heap.extract();
91+
expect(res.val).toBe(55);
92+
res = heap.extract();
93+
expect(res.val).toBe(11);
94+
});
6195
});

0 commit comments

Comments
 (0)