def test_least_recently_used(self): x = LRUCache(3) x[1], x[2], x[3] = 1, 2, 3 self.assertEqual(list(x.keys()), [1, 2, 3]) x[4], x[5] = 4, 5 self.assertEqual(list(x.keys()), [3, 4, 5]) # access 3, which makes it the last used key. x[3] x[6] = 6 self.assertEqual(list(x.keys()), [5, 3, 6]) x[7] = 7 self.assertEqual(list(x.keys()), [3, 6, 7])
def test_update_expires(self): limit = 100 x = LRUCache(limit=limit) slots = list(range(limit * 2)) for i in slots: x.update({i: i}) self.assertListEqual(list(x.keys()), list(slots[limit:]))
def test_expires(self): limit = 100 x = LRUCache(limit=limit) slots = list(range(limit * 2)) for i in slots: x[i] = i self.assertListEqual(list(x.keys()), list(slots[limit:])) self.assertTrue(x.items()) self.assertTrue(x.values())
def test_update_larger_than_cache_size(self): x = LRUCache(2) x.update({x: x for x in range(100)}) self.assertEqual(list(x.keys()), [98, 99])
def test_update_larger_than_cache_size(self): x = LRUCache(2) x.update(dict((x, x) for x in range(100))) self.assertEqual(list(x.keys()), [98, 99])