Example #1
0
 def test_put_get(self):
     c = cache.SegmentedLruCache(9, 3)
     self.assertEqual(c.maxlen, 9)
     c.put(1)
     self.assertEqual(c.dump(serialized=False), [[], [], [1]])
     c.put(2)
     self.assertEqual(c.dump(serialized=False), [[], [], [2, 1]])
     c.put(3)
     self.assertEqual(len(c), 3)
     self.assertEqual(c.dump(serialized=False), [[], [], [3, 2, 1]])
     c.get(2)
     self.assertEqual(len(c), 3)
     self.assertEqual(c.dump(serialized=False), [[], [2], [3, 1]])
     c.get(2)
     self.assertEqual(len(c), 3)
     self.assertEqual(c.dump(serialized=False), [[2], [], [3, 1]])
     c.put(4)
     self.assertEqual(len(c), 4)
     self.assertEqual(c.dump(serialized=False), [[2], [], [4, 3, 1]])
     evicted = c.put(5)
     self.assertEqual(evicted, 1)
     self.assertEqual(len(c), 4)
     self.assertEqual(c.dump(serialized=False), [[2], [], [5, 4, 3]])
     c.get(5)
     self.assertEqual(len(c), 4)
     self.assertEqual(c.dump(serialized=False), [[2], [5], [4, 3]])
     c.put(6)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[2], [5], [6, 4, 3]])
     c.get(6)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[2], [6, 5], [4, 3]])
     c.get(3)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[2], [3, 6, 5], [4]])
     c.get(4)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[2], [4, 3, 6], [5]])
     c.get(4)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[4, 2], [3, 6], [5]])
     c.get(2)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[2, 4], [3, 6], [5]])
     c.get(3)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[3, 2, 4], [6], [5]])
     c.get(3)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[3, 2, 4], [6], [5]])
     c.get(2)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[2, 3, 4], [6], [5]])
     c.get(6)
     self.assertEqual(len(c), 5)
     self.assertEqual(c.dump(serialized=False), [[6, 2, 3], [4], [5]])
Example #2
0
 def test_put_get(self):
     c = cache.SegmentedLruCache(9, 3)
     assert c.maxlen == 9
     c.put(1)
     assert c.dump(serialized=False) == [[], [], [1]]
     c.put(2)
     assert c.dump(serialized=False) == [[], [], [2, 1]]
     c.put(3)
     assert len(c) == 3
     assert c.dump(serialized=False) == [[], [], [3, 2, 1]]
     c.get(2)
     assert len(c) == 3
     assert c.dump(serialized=False) == [[], [2], [3, 1]]
     c.get(2)
     assert len(c) == 3
     assert c.dump(serialized=False) == [[2], [], [3, 1]]
     c.put(4)
     assert len(c) == 4
     assert c.dump(serialized=False) == [[2], [], [4, 3, 1]]
     evicted = c.put(5)
     assert evicted == 1
     assert len(c) == 4
     assert c.dump(serialized=False) == [[2], [], [5, 4, 3]]
     c.get(5)
     assert len(c) == 4
     assert c.dump(serialized=False) == [[2], [5], [4, 3]]
     c.put(6)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[2], [5], [6, 4, 3]]
     c.get(6)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[2], [6, 5], [4, 3]]
     c.get(3)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[2], [3, 6, 5], [4]]
     c.get(4)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[2], [4, 3, 6], [5]]
     c.get(4)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[4, 2], [3, 6], [5]]
     c.get(2)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[2, 4], [3, 6], [5]]
     c.get(3)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[3, 2, 4], [6], [5]]
     c.get(3)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[3, 2, 4], [6], [5]]
     c.get(2)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[2, 3, 4], [6], [5]]
     c.get(6)
     assert len(c) == 5
     assert c.dump(serialized=False) == [[6, 2, 3], [4], [5]]
Example #3
0
 def test_dump(self):
     c = cache.SegmentedLruCache(4, 2)
     c.put(2)
     c.put(2)
     c.put(1)
     c.put(1)
     c.put(4)
     c.put(3)
     self.assertEqual(c.dump(serialized=False), [[1, 2], [3, 4]])
     self.assertEqual(c.dump(serialized=True), [1, 2, 3, 4])
     self.assertEqual(c.dump(), [1, 2, 3, 4])
Example #4
0
 def test_dump(self):
     c = cache.SegmentedLruCache(4, 2)
     c.put(2)
     c.put(2)
     c.put(1)
     c.put(1)
     c.put(4)
     c.put(3)
     assert c.dump(serialized=False) == [[1, 2], [3, 4]]
     assert c.dump(serialized=True) == [1, 2, 3, 4]
     assert c.dump() == [1, 2, 3, 4]
Example #5
0
 def test_position(self):
     c = cache.SegmentedLruCache(4, 2)
     c.put(2)
     c.put(2)
     c.put(1)
     c.put(1)
     c.put(4)
     c.put(3)
     self.assertEqual(c.dump(serialized=False), [[1, 2], [3, 4]])
     self.assertEqual(c.position(1), 0)
     self.assertEqual(c.position(2), 1)
     self.assertEqual(c.position(3), 2)
     self.assertEqual(c.position(4), 3)
Example #6
0
 def test_position(self):
     c = cache.SegmentedLruCache(4, 2)
     c.put(2)
     c.put(2)
     c.put(1)
     c.put(1)
     c.put(4)
     c.put(3)
     assert c.dump(serialized=False) == [[1, 2], [3, 4]]
     assert c.position(1) == 0
     assert c.position(2) == 1
     assert c.position(3) == 2
     assert c.position(4) == 3
Example #7
0
 def test_has(self):
     c = cache.SegmentedLruCache(4, 2)
     c.put(2)
     c.put(2)
     c.put(1)
     c.put(1)
     c.put(4)
     c.put(3)
     self.assertEqual(c.dump(serialized=False), [[1, 2], [3, 4]])
     self.assertTrue(c.has(1))
     self.assertTrue(c.has(2))
     self.assertTrue(c.has(3))
     self.assertTrue(c.has(4))
     self.assertFalse(c.has(5))
Example #8
0
 def test_has(self):
     c = cache.SegmentedLruCache(4, 2)
     c.put(2)
     c.put(2)
     c.put(1)
     c.put(1)
     c.put(4)
     c.put(3)
     assert c.dump(serialized=False) == [[1, 2], [3, 4]]
     assert c.has(1)
     assert c.has(2)
     assert c.has(3)
     assert c.has(4)
     assert not c.has(5)
Example #9
0
 def test_remove(self):
     c = cache.SegmentedLruCache(4, 2)
     c.put(2)
     c.put(2)
     c.put(1)
     c.put(1)
     c.put(4)
     c.put(3)
     self.assertEqual(c.dump(serialized=False), [[1, 2], [3, 4]])
     c.remove(2)
     self.assertEqual(len(c), 3)
     self.assertEqual(c.dump(serialized=False), [[1], [3, 4]])
     c.remove(1)
     self.assertEqual(len(c), 2)
     self.assertEqual(c.dump(serialized=False), [[], [3, 4]])
     c.remove(4)
     self.assertEqual(len(c), 1)
     self.assertEqual(c.dump(serialized=False), [[], [3]])
     c.remove(3)
     self.assertEqual(len(c), 0)
     self.assertEqual(c.dump(serialized=False), [[], []])
Example #10
0
 def test_remove(self):
     c = cache.SegmentedLruCache(4, 2)
     c.put(2)
     c.put(2)
     c.put(1)
     c.put(1)
     c.put(4)
     c.put(3)
     assert c.dump(serialized=False) == [[1, 2], [3, 4]]
     c.remove(2)
     assert len(c) == 3
     assert c.dump(serialized=False) == [[1], [3, 4]]
     c.remove(1)
     assert len(c) == 2
     assert c.dump(serialized=False) == [[], [3, 4]]
     c.remove(4)
     assert len(c) == 1
     assert c.dump(serialized=False) == [[], [3]]
     c.remove(3)
     assert len(c) == 0
     assert c.dump(serialized=False) == [[], []]
Example #11
0
 def test_alloc_rounding(self):
     c = cache.SegmentedLruCache(100, 3, [0.402, 0.201, 0.397])
     self.assertEqual(list(c._segment_maxlen), [40, 20, 40])
     self.assertEqual(sum(c._segment_maxlen), c.maxlen)
Example #12
0
 def test_alloc(self):
     c = cache.SegmentedLruCache(100, 3, [0.4, 0.21, 0.39])
     self.assertEqual(list(c._segment_maxlen), [40, 21, 39])
     self.assertEqual(sum(c._segment_maxlen), c.maxlen)
Example #13
0
 def test_alloc_rounding(self):
     c = cache.SegmentedLruCache(100, 3, [0.402, 0.201, 0.397])
     assert list(c._segment_maxlen) == [40, 20, 40]
     assert sum(c._segment_maxlen) == c.maxlen
Example #14
0
 def test_alloc(self):
     c = cache.SegmentedLruCache(100, 3, [0.4, 0.21, 0.39])
     assert list(c._segment_maxlen) == [40, 21, 39]
     assert sum(c._segment_maxlen) == c.maxlen