mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-07 02:05:08 +08:00
merge: Add MinHeap and test (#817)
* Add MinHeap and test * Add description and reference link * Adjust formatting
This commit is contained in:
33
Data-Structures/Heap/test/MinHeap.test.js
Normal file
33
Data-Structures/Heap/test/MinHeap.test.js
Normal file
@ -0,0 +1,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
|
||||
})
|
||||
})
|
Reference in New Issue
Block a user