Skip to content

Commit 8e15ab0

Browse files
committed
expands doctests to compare cache and lru cache
1 parent 91effc8 commit 8e15ab0

File tree

1 file changed

+39
-12
lines changed

1 file changed

+39
-12
lines changed

other/lru_cache.py

Lines changed: 39 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,29 +30,36 @@ class DoubleLinkedList:
3030
3131
>>> dll: DoubleLinkedList = DoubleLinkedList()
3232
>>> dll
33-
DoubleLinkedList:,
33+
DoubleLinkedList,
3434
Node: key: None, val: None, has next: True, has prev: False,
3535
Node: key: None, val: None, has next: False, has prev: True
3636
37-
>>> new_node = DoubleLinkedListNode(1,1)
38-
>>> new_node
39-
Node: key: 1, val: 1, has next: False, has prev: False
37+
>>> first_node = DoubleLinkedListNode(1,10)
38+
>>> first_node
39+
Node: key: 1, val: 10, has next: False, has prev: False
40+
4041
41-
>>> dll.add(new_node)
42+
>>> dll.add(first_node)
4243
>>> dll
43-
DoubleLinkedList:,
44+
DoubleLinkedList,
4445
Node: key: None, val: None, has next: True, has prev: False,
45-
Node: key: 1, val: 1, has next: True, has prev: True,
46+
Node: key: 1, val: 10, has next: True, has prev: True,
4647
Node: key: None, val: None, has next: False, has prev: True
4748
4849
>>> # node is mutated
49-
>>> new_node
50-
Node: key: 1, val: 1, has next: True, has prev: True
50+
>>> first_node
51+
Node: key: 1, val: 10, has next: True, has prev: True
5152
52-
>>> removed_node = dll.remove(new_node)
53+
>>> second_node = DoubleLinkedListNode(2,20)
54+
>>> second_node
55+
Node: key: 2, val: 20, has next: False, has prev: False
56+
57+
>>> dll.add(second_node)
5358
>>> dll
54-
DoubleLinkedList:,
59+
DoubleLinkedList,
5560
Node: key: None, val: None, has next: True, has prev: False,
61+
Node: key: 1, val: 10, has next: True, has prev: True,
62+
Node: key: 2, val: 20, has next: True, has prev: True,
5663
Node: key: None, val: None, has next: False, has prev: True
5764
5865
>>> removed_node = dll.remove(first_node)
@@ -90,7 +97,7 @@ def __init__(self):
9097
self.head.next, self.rear.prev = self.rear, self.head
9198

9299
def __repr__(self) -> str:
93-
rep = ["DoubleLinkedList:"]
100+
rep = ["DoubleLinkedList"]
94101
node = self.head
95102
while node.next is not None:
96103
rep.append(str(node))
@@ -141,8 +148,28 @@ class LRUCache:
141148
>>> cache.get(1)
142149
1
143150
151+
>>> cache.list
152+
DoubleLinkedList,
153+
Node: key: None, val: None, has next: True, has prev: False,
154+
Node: key: 2, val: 2, has next: True, has prev: True,
155+
Node: key: 1, val: 1, has next: True, has prev: True,
156+
Node: key: None, val: None, has next: False, has prev: True
157+
158+
>>> cache.cache
159+
{1: Node: key: 1, val: 1, has next: True, has prev: True, 2: Node: key: 2, val: 2, has next: True, has prev: True}
160+
144161
>>> cache.set(3, 3)
145162
163+
>>> cache.list
164+
DoubleLinkedList,
165+
Node: key: None, val: None, has next: True, has prev: False,
166+
Node: key: 1, val: 1, has next: True, has prev: True,
167+
Node: key: 3, val: 3, has next: True, has prev: True,
168+
Node: key: None, val: None, has next: False, has prev: True
169+
170+
>>> cache.cache
171+
{1: Node: key: 1, val: 1, has next: True, has prev: True, 3: Node: key: 3, val: 3, has next: True, has prev: True}
172+
146173
>>> cache.get(2) is None
147174
True
148175

0 commit comments

Comments
 (0)