def test_lfu(self): c = cache.InCacheLfuCache(4) self.assertEquals(len(c), 0) c.put(1) self.assertEquals(len(c), 1) c.put(2) self.assertEquals(len(c), 2) c.put(3) self.assertEquals(len(c), 3) c.put(4) self.assertEquals(len(c), 4) self.assertEquals(len(c.dump()), 4) for v in (1, 2, 3, 4): self.assertTrue(c.has(v)) c.get(1) c.get(1) c.get(1) c.get(2) c.get(2) c.get(3) c.put(5) self.assertEquals(c.dump(), [1, 2, 3, 5]) self.assertEquals(len(c), 4) self.assertTrue(c.has(5)) c.clear() self.assertEquals(len(c), 0) self.assertEquals(c.dump(), [])
def test_lfu(self): c = cache.InCacheLfuCache(4) assert len(c) == 0 c.put(1) assert len(c) == 1 c.put(2) assert len(c) == 2 c.put(3) assert len(c) == 3 c.put(4) assert len(c) == 4 assert len(c.dump()) == 4 for v in (1, 2, 3, 4): assert c.has(v) c.get(1) c.get(1) c.get(1) c.get(2) c.get(2) c.get(3) c.put(5) assert c.dump() == [1, 2, 3, 5] assert len(c) == 4 assert c.has(5) c.clear() assert len(c) == 0 assert c.dump() == []
def test_in_cache_lfu_cache(self): r = 0.1 h = cacheperf.numeric_cache_hit_ratio( self.pdf, cache.InCacheLfuCache(r * self.n)) assert np.abs(h - r) < 0.01