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:
Fahim Faisaal
2022-03-20 13:36:13 +06:00
committed by GitHub
parent bb2338216e
commit 9f7ed56290
4 changed files with 44 additions and 49 deletions

37
Cache/test/cacheTest.js Normal file
View 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], [])
)
}