forked from TheAlgorithms/JavaScript
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMinHeap.test.js
More file actions
33 lines (24 loc) · 981 Bytes
/
MinHeap.test.js
File metadata and controls
33 lines (24 loc) · 981 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { MinHeap } from '../MinHeap'
describe('MinHeap', () => {
const array = [2, 4, 10, 23, 43, 42, 39, 7, 9, 16, 85, 1, 51]
let heap
beforeEach(() => {
heap = new MinHeap(array)
})
it('should initialize a heap from an input array', () => {
expect(heap).toEqual({ 'heap': [1, 4, 2, 7, 16, 10, 39, 23, 9, 43, 85, 42, 51] }) // eslint-disable-line
})
it('should show the top value in the heap', () => {
const minValue = heap.peek()
expect(minValue).toEqual(1)
})
it('should remove and return the top value in the heap', () => {
const minValue = heap.extractMin()
expect(minValue).toEqual(1)
expect(heap).toEqual({ 'heap': [2, 4, 10, 7, 16, 42, 39, 23, 9, 43, 85, 51] }) // eslint-disable-line
})
it('should insert a new value and sort until it meets heap conditions', () => {
heap.insert(15)
expect(heap).toEqual({ 'heap': [2, 4, 10, 7, 16, 15, 39, 23, 9, 43, 85, 51, 42] }) // eslint-disable-line
})
})