Beispiel #1
0
 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)
Beispiel #2
0
    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))
Beispiel #3
0
 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)
Beispiel #4
0
 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)
Beispiel #5
0
 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)
Beispiel #6
0
 def test_deletenonexistantkey(self):
     key = get_random_key()
     self.lrucache.delete(key)
Beispiel #7
0
 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)