Exemple #1
0
class LRUCacheTest(unittest.TestCase):
    def test_default_behaviour(self):
        self.LRU = LRUCache(2)
        self.assertEqual(self.LRU.get(1), -1)
        self.LRU.put(1, 1)
        self.assertEqual(self.LRU.get(1), 1)
        self.LRU.put(2, 4)
        self.LRU.put(3, 9)
        self.LRU.put(4, 16)
        self.assertEqual(self.LRU.get(4), 16)
        self.assertEqual(self.LRU.get(2), -1)
        self.assertEqual(len(self.LRU.get_all()), 2)
        self.LRU.put(5, 5)
        self.LRU.put(6, 6)
        self.LRU.put(7, 7)
        self.assertEqual(self.LRU.get(6), 6)
        self.assertEqual(self.LRU.get(5), -1)

    def test_lru_cache_expired(self):
        self.LRU = LRUCache(3)
        self.LRU.put(1, 1, 2)
        self.assertEqual(self.LRU.get(1), 1)
        time.sleep(3)
        self.assertEqual(self.LRU.get(1), -1)
        self.LRU.put(1, 1, 3)
        self.LRU.put(2, 2, 10)
        self.LRU.put(3, 3, 3)
        time.sleep(4)
        self.assertEqual(self.LRU.get(2), 2)
        self.assertEqual(self.LRU.get(3), -1)
        self.assertEqual(self.LRU.get(1), -1)