mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-24 21:56:48 +08:00

* chore: Switch to Node 20 + Vitest * chore: migrate to vitest mock functions * chore: code style (switch to prettier) * test: re-enable long-running test Seems the switch to Node 20 and Vitest has vastly improved the code's and / or the test's runtime! see #1193 * chore: code style * chore: fix failing tests * Updated Documentation in README.md * Update contribution guidelines to state usage of Prettier * fix: set prettier printWidth back to 80 * chore: apply updated code style automatically * fix: set prettier line endings to lf again * chore: apply updated code style automatically --------- Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
38 lines
987 B
JavaScript
38 lines
987 B
JavaScript
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
|
|
})
|
|
})
|