mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-05 08:16:50 +08:00
merge: Remove duplicate helper functions in cache tests. (#933)
* refactor: added one implementation of fibonacciCahce * chore: move union function * chore: renamed the cacheTest file
This commit is contained in:
37
Cache/test/cacheTest.js
Normal file
37
Cache/test/cacheTest.js
Normal file
@ -0,0 +1,37 @@
|
||||
/**
|
||||
* @function fibonacciCache
|
||||
* @description - this is a cached variant of fib number
|
||||
* @param {number} n - Real number (n > -1)
|
||||
* @param {Object} cache
|
||||
* @returns {number}
|
||||
*/
|
||||
export const fibonacciCache = (n, cache = null) => {
|
||||
if (cache) {
|
||||
const value = cache.get(n)
|
||||
|
||||
if (value !== null) {
|
||||
return value
|
||||
}
|
||||
}
|
||||
|
||||
if (n === 1 || n === 2) {
|
||||
return 1
|
||||
}
|
||||
|
||||
const result = fibonacciCache(n - 1, cache) + fibonacciCache(n - 2, cache)
|
||||
|
||||
cache && cache.set(n, result)
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
/**
|
||||
* @title implementation of union function
|
||||
* @param {Set} sets
|
||||
* @return {new Set}
|
||||
*/
|
||||
export const union = (...sets) => {
|
||||
return new Set(
|
||||
sets.reduce((flatArray, set) => [...flatArray, ...set], [])
|
||||
)
|
||||
}
|
Reference in New Issue
Block a user