ox
Version:
Ethereum Standard Library
39 lines (36 loc) • 954 B
text/typescript
import { expect, test } from 'vp/test'
import { LruMap } from '../../internal/lru.js'
test('default', () => {
const cache = new LruMap(5)
cache.set('a', 1)
cache.set('b', 2)
cache.set('c', 3)
cache.set('d', 4)
cache.set('e', 5)
cache.set('f', 6)
cache.set('g', 7)
expect(cache.size).toBe(5)
expect(cache.has('a')).toBe(false)
expect(cache.has('b')).toBe(false)
expect(cache.get('c')).toBe(3)
expect(cache.get('d')).toBe(4)
expect(cache.get('e')).toBe(5)
expect(cache.get('f')).toBe(6)
expect(cache.get('g')).toBe(7)
})
test('update touched keys', () => {
const cache = new LruMap(5)
cache.set('a', 1)
cache.set('b', 2)
cache.set('c', 3)
cache.set('d', 4)
cache.set('e', 5)
expect(cache.size).toBe(5)
cache.get('a')
cache.set('f', 6)
cache.set('g', 7)
expect(cache.has('a')).toBe(true)
expect(cache.has('b')).toBe(false)
expect(cache.has('c')).toBe(false)
expect(cache.has('d')).toBe(true)
})