Skip to content

Commit 045f54b

Browse files
committed
Adds doctest to other/least_recently_used
1 parent e097193 commit 045f54b

File tree

1 file changed

+30
-1
lines changed

1 file changed

+30
-1
lines changed

other/least_recently_used.py

+30-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,27 @@
88

99

1010
class LRUCache(Generic[T]):
11-
"""Page Replacement Algorithm, Least Recently Used (LRU) Caching."""
11+
"""
12+
Page Replacement Algorithm, Least Recently Used (LRU) Caching.
13+
14+
>>> lru_cache: LRUCache[str | int] = LRUCache(4)
15+
>>> lru_cache.refer("A")
16+
>>> lru_cache.refer(2)
17+
>>> lru_cache.refer(3)
18+
19+
>>> lru_cache
20+
LRUCache(4) => [3, 2, 'A']
21+
22+
>>> lru_cache.refer("A")
23+
>>> lru_cache
24+
LRUCache(4) => ['A', 3, 2]
25+
26+
>>> lru_cache.refer(4)
27+
>>> lru_cache.refer(5)
28+
>>> lru_cache
29+
LRUCache(4) => [5, 4, 'A', 3]
30+
31+
"""
1232

1333
dq_store: deque[T] # Cache store of keys
1434
key_reference: set[T] # References of the keys in cache
@@ -50,8 +70,14 @@ def display(self) -> None:
5070
for k in self.dq_store:
5171
print(k)
5272

73+
def __repr__(self) -> str:
74+
return f"LRUCache({self._MAX_CAPACITY}) => {list(self.dq_store)}"
75+
5376

5477
if __name__ == "__main__":
78+
import doctest
79+
80+
doctest.testmod()
5581

5682
lru_cache: LRUCache[str | int] = LRUCache(4)
5783
lru_cache.refer("A")
@@ -61,3 +87,6 @@ def display(self) -> None:
6187
lru_cache.refer(4)
6288
lru_cache.refer(5)
6389
lru_cache.display()
90+
91+
print(lru_cache)
92+
assert str(lru_cache) == "LRUCache(4) => [5, 4, 'A', 3]"

0 commit comments

Comments
 (0)