def test_clear(self): pairs = [('a', 1), ('b', 2), ('c', 3), ('d', 4)] cache = LruCache(pairs) self.assertEqual(len(cache), len(pairs)) cache.clear() self.assertEqual(len(cache), 0) cache.clear() self.assertEqual(len(cache), 0) cache.update(pairs) self.assertEqual(len(cache), len(pairs)) cache.clear() self.assertEqual(len(cache), 0)
def test_delitem(self): with self.assertRaises(KeyError): del LruCache()['key'] pairs = [('a', 1), ('b', 2), ('c', 3), ('d', 4)] cache = LruCache(pairs) with self.assertRaises(KeyError): del cache['key'] for index, (key, value) in enumerate(pairs): del cache[key] self.assertEqual(cache.items(), pairs[index+1:][::-1]) # start deleting from the tail cache.update(pairs) for index, (key, value) in enumerate(pairs[::-1]): del cache[key] index = len(pairs) - index - 1 self.assertEqual(cache.items(), pairs[:index][::-1])