-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_k_tree.py
58 lines (40 loc) · 1.45 KB
/
test_k_tree.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
def test_empty_k_tree_length(new_k_tree):
assert len(new_k_tree) == 0
def test_empty_k_tree_contains(new_k_tree):
assert 0 not in new_k_tree
new_k_tree.insert(None, 0)
assert 0 in new_k_tree
def test_data_k_tree_contains(filled_k_tree):
assert 9 in filled_k_tree
assert (12 in filled_k_tree) is False
assert 6 in filled_k_tree
assert 1 in filled_k_tree
def test_empty_k_tree_insert(new_k_tree):
new_k_tree.insert(None, 1)
assert 1 in new_k_tree
def test_empty_k_tree_insert_many(new_k_tree):
new_k_tree.insert(None, 1)
new_k_tree.insert(1, 2)
new_k_tree.insert(1, 3)
assert 2 in new_k_tree
assert 3 in new_k_tree
assert 4 not in new_k_tree
def test_data_k_tree_has_length(filled_k_tree):
assert len(filled_k_tree) > 0
def test_data_k_tree_insert_changes_length(filled_k_tree):
start_len = len(filled_k_tree)
filled_k_tree.insert(1, -1)
filled_k_tree.insert(1, -2)
assert len(filled_k_tree) - start_len == 2
assert -2 in filled_k_tree
def test_data_k_tree_insert_negative_left(filled_k_tree):
filled_k_tree.insert(None, -1)
assert -1 not in filled_k_tree
def test_data_k_tree_pre_order_traverse(filled_k_tree):
lst = []
filled_k_tree.pre_order(lst.append)
assert lst == [1, 2, 5, 8, 9, 3, 4, 6, 7]
def test_data_k_tree_post_order_traverse(filled_k_tree):
lst = []
filled_k_tree.post_order(lst.append)
assert lst == [9, 8, 5, 7, 6, 4, 3, 2, 1]