Skip to content

Commit 65df981

Browse files
authored
Tighten up doctest
1 parent 0d40034 commit 65df981

File tree

1 file changed

+29
-26
lines changed

1 file changed

+29
-26
lines changed

data_structures/linked_list/skip_list.py

+29-26
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
https://epaperpress.com/sortsearch/download/skiplist.pdf
44
"""
55

6-
from typing import List, Tuple, Optional, TypeVar, Generic
76
from random import random
7+
from typing import Generic, List, Optional, Tuple, TypeVar
88

99
KT = TypeVar("KT")
1010
VT = TypeVar("VT")
@@ -16,7 +16,7 @@ def __init__(self, key: KT, value: VT):
1616
self.value = value
1717
self.forward: List[Node[KT, VT]] = []
1818

19-
def __repr__(self):
19+
def __repr__(self) -> str:
2020
"""
2121
:return: Visual representation of Node
2222
@@ -48,12 +48,12 @@ def level(self) -> int:
4848

4949
class SkipList(Generic[KT, VT]):
5050
def __init__(self, p: float = 0.5, max_level: int = 16):
51-
self.head: Node = Node("root", None)
52-
self.level: int = 0
51+
self.head = Node("root", None)
52+
self.level = 0
5353
self.p = p
5454
self.max_level = max_level
5555

56-
def __str__(self):
56+
def __str__(self) -> str:
5757
"""
5858
:return: Visual representation of SkipList
5959
@@ -62,15 +62,17 @@ def __str__(self):
6262
SkipList(level=0)
6363
>>> skip_list.insert("Key1", "Value")
6464
>>> print(skip_list) # doctest: +ELLIPSIS
65-
SkipList...
66-
[root]...
67-
[Key1]...
65+
SkipList(level=...
66+
[root]--...
67+
[Key1]--Key1...
68+
None *...
6869
>>> skip_list.insert("Key2", "OtherValue")
6970
>>> print(skip_list) # doctest: +ELLIPSIS
70-
SkipList...
71-
[root]...
72-
[Key1]...
73-
[Key2]...
71+
SkipList(level=...
72+
[root]--...
73+
[Key1]--Key1...
74+
[Key2]--Key2...
75+
None *...
7476
"""
7577

7678
items = list(self)
@@ -91,11 +93,12 @@ def __str__(self):
9193
while len(node.forward) != 0:
9294
node = node.forward[0]
9395

94-
lines.append(f"[{node.key}]".ljust(label_size, "-") + " ".join(
95-
str(n.key) if n.key == node.key else "|"
96-
for n in forwards))
96+
lines.append(
97+
f"[{node.key}]".ljust(label_size, "-")
98+
+ " ".join(str(n.key) if n.key == node.key else "|" for n in forwards)
99+
)
97100
lines.append(" " * label_size + "| " * len(forwards))
98-
forwards[:node.level] = node.forward
101+
forwards[: node.level] = node.forward
99102

100103
lines.append("None".ljust(label_size) + "* " * len(forwards))
101104
return f"SkipList(level={self.level})\n" + "\n".join(lines)
@@ -423,18 +426,18 @@ def main():
423426
>>> pytests()
424427
"""
425428

426-
lst = SkipList()
427-
lst.insert(2, "2")
428-
lst.insert(4, "4")
429-
lst.insert(6, "4")
430-
lst.insert(4, "5")
431-
lst.insert(8, "4")
432-
lst.insert(9, "4")
429+
skip_list = SkipList()
430+
skip_list.insert(2, "2")
431+
skip_list.insert(4, "4")
432+
skip_list.insert(6, "4")
433+
skip_list.insert(4, "5")
434+
skip_list.insert(8, "4")
435+
skip_list.insert(9, "4")
433436

434-
lst.delete(4)
437+
skip_list.delete(4)
435438

436-
print(lst)
439+
print(skip_list)
437440

438441

439-
if __name__ == '__main__':
442+
if __name__ == "__main__":
440443
main()

0 commit comments

Comments
 (0)