def test_lfu(): cache = Cache() cache['a'] = 'x' assert len(cache) == 1 assert len(cache.queue) == 1 _ = cache['a'] assert len(cache) == 1 assert len(cache.queue) == 2 assert cache.cache['a'] == (2, 'x') _ = cache['a'] assert len(cache) == 1 assert len(cache.queue) == 3 assert cache.cache['a'] == (3, 'x') cache.evict_one() assert len(cache) == 1 assert len(cache.queue) == 2 assert cache.cache['a'] == (2, 'x') cache.evict_one() assert len(cache) == 1 assert len(cache.queue) == 1 assert cache.cache['a'] == (1, 'x') cache.evict_one() assert len(cache) == 0 assert len(cache.queue) == 0 cache['a'] = 'x' assert len(cache) == 1 assert len(cache.queue) == 1 cache['a'] = 'y' assert len(cache) == 1 assert len(cache.queue) == 2 assert cache.cache['a'] == (2, 'y')