merge: Added explicit cache feature & optional parameter (#941)

This commit is contained in:
Fahim Faisaal
2022-03-22 15:06:21 +06:00
committed by GitHub
parent ad68c63947
commit d246958a4d
2 changed files with 16 additions and 4 deletions

View File

@ -2,6 +2,7 @@ import { memoize } from '../Memoize'
import { union } from './cacheTest'
import { fibonacci } from '../../Dynamic-Programming/FibonacciNumber'
import { factorial } from '../../Recursive/Factorial'
import LFUCache from '../LFUCache'
const multipleFactorials = (arr) => arr.map(factorial)
@ -51,4 +52,17 @@ describe('Testing Memoize', () => {
expect(memoUnion(...inputs)).toEqual(new Set([1, 2, 3, 4, 5, 6]))
expect(memoUnion(...inputs)).toEqual(union(...inputs))
})
it('Testing with explicit cache -> LFUCache', () => {
const LFU = new LFUCache(2)
const memoizeFibonacci = memoize(fibonacci, LFU) // added LFU cache explicitly
const fibOfFiveHundred = memoizeFibonacci(500)
const fibOfOneHundred = memoizeFibonacci(100)
expect(memoizeFibonacci(500)).toBe(fibOfFiveHundred)
expect(memoizeFibonacci(100)).toBe(fibOfOneHundred)
expect(LFU.leastFrequency).toBe(2)
})
})