def test_getkey(self): # Add Element to cache key = get_random_key() value = get_random_string() self.lrucache.put(key, value) self.assertEqual(self.lrucache.get(key), value) self.assertEqual(self.lrucache.current_size, 1)
def test_queuesnapshot(self): kv_pairs = get_key_value_pairs(length=self.capacity * 2) # Insert keys for key, value in kv_pairs: self.lrucache.put(key, value) # Keep track of key order manually keys = list(map(lambda item: item[0], kv_pairs[self.capacity:]))[::-1] # Add new element key = get_random_key() value = get_random_string() self.lrucache.put(key, value) keys.pop(-1) keys.insert(0, key) # Access last element self.lrucache.get(keys[-1]) keys.insert(0, keys.pop(-1)) # Update an element rand_index = random.randint(*(0, len(keys) - 1)) self.lrucache.put(keys[rand_index], get_random_string()) keys.insert(0, keys.pop(rand_index)) # Check Linked List self.assertListEqual(keys, get_list(self.lrucache.head))
def test_addkey(self): # Add Element to cache key = get_random_key() value = get_random_string() self.lrucache.put(key, value) self.assertEqual(self.lrucache.store[key].value, value) self.assertEqual(self.lrucache.current_size, 1)
def test_deletekey(self): key = get_random_key() value = get_random_string() self.lrucache.put(key, value) self.assertEqual(self.lrucache.current_size, 1) self.lrucache.delete(key) self.assertEqual(self.lrucache.get(key), -1) self.assertEqual(self.lrucache.head, None)
def test_updatekey(self): key = get_random_key() value = get_random_string() self.lrucache.put(key, value) self.assertEqual(self.lrucache.get(key), value) value = get_random_string() self.lrucache.put(key, value) self.assertEqual(self.lrucache.get(key), value) self.assertEqual(self.lrucache.current_size, 1)
def test_deletenonexistantkey(self): key = get_random_key() self.lrucache.delete(key)
def test_getnonexistantkey(self): # Add Element to cache key = get_random_key() self.assertEqual(self.lrucache.get(key), -1) self.assertEqual(self.lrucache.current_size, 0)