Skip to content

Commit ae9ca72

Browse files
committed
Update tests
1 parent 106177b commit ae9ca72

File tree

1 file changed

+47
-37
lines changed

1 file changed

+47
-37
lines changed

test/runtests.jl

Lines changed: 47 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,42 @@ using Test
4040
@test tree[1] == 11
4141
@test tree[3] == 33
4242

43+
# right rotate
44+
tree = AVLTree{Int,Int}()
45+
tree[3] = 30
46+
tree[2] = 20
47+
tree[1] = 10
48+
@test tree.root.key == 2
49+
@test tree.root.left.key == 1
50+
@test tree.root.right.key == 3
51+
52+
# left rotate
53+
tree = AVLTree{Int,Int}()
54+
tree[1] = 10
55+
tree[2] = 20
56+
tree[3] = 30
57+
@test tree.root.key == 2
58+
@test tree.root.left.key == 1
59+
@test tree.root.right.key == 3
60+
61+
# left-right rotate
62+
tree = AVLTree{Int,Int}()
63+
tree[3] = 30
64+
tree[1] = 10
65+
tree[2] = 20
66+
@test tree.root.key == 2
67+
@test tree.root.left.key == 1
68+
@test tree.root.right.key == 3
69+
70+
# right-left rotate
71+
tree = AVLTree{Int,Int}()
72+
tree[1] = 10
73+
tree[3] = 30
74+
tree[2] = 20
75+
@test tree.root.key == 2
76+
@test tree.root.left.key == 1
77+
@test tree.root.right.key == 3
78+
4379
# delete
4480
tree = AVLTree{Int,Int}()
4581
tree[2] = 20
@@ -56,14 +92,24 @@ using Test
5692
delete!(tree, 2)
5793
@test isnothing(tree.root)
5894

59-
# tree that accept any types
95+
# tree that accepts any types
6096
tree = AVLTree()
6197
tree[2] = 'A'
6298
tree[1] = 1.1
6399
tree[3] = "test"
64100
@test tree[2] == 'A'
65101
@test tree[1] == 1.1
66102
@test tree[3] == "test"
103+
delete!(tree, 3)
104+
@test !isnothing(tree.root)
105+
@test !isnothing(tree.root.left)
106+
@test isnothing(tree.root.right)
107+
delete!(tree, 1)
108+
@test !isnothing(tree.root)
109+
@test isnothing(tree.root.left)
110+
@test isnothing(tree.root.right)
111+
delete!(tree, 2)
112+
@test isnothing(tree.root)
67113

68114
# AbstractTrees interface
69115
tree = AVLTree{Int,Int}()
@@ -86,42 +132,6 @@ using Test
86132
@test NodeType(root) === HasNodeType()
87133
@test nodetype(root) === typeof(root)
88134

89-
# left rotate
90-
tree = AVLTree{Int,Int}()
91-
tree[1] = 10
92-
tree[2] = 20
93-
tree[3] = 30
94-
@test tree.root.key == 2
95-
@test tree.root.left.key == 1
96-
@test tree.root.right.key == 3
97-
98-
# right rotate
99-
tree = AVLTree{Int,Int}()
100-
tree[3] = 30
101-
tree[2] = 20
102-
tree[1] = 10
103-
@test tree.root.key == 2
104-
@test tree.root.left.key == 1
105-
@test tree.root.right.key == 3
106-
107-
# left-right rotate
108-
tree = AVLTree{Int,Int}()
109-
tree[3] = 30
110-
tree[1] = 10
111-
tree[2] = 20
112-
@test tree.root.key == 2
113-
@test tree.root.left.key == 1
114-
@test tree.root.right.key == 3
115-
116-
# right-left rotate
117-
tree = AVLTree{Int,Int}()
118-
tree[1] = 10
119-
tree[3] = 30
120-
tree[2] = 20
121-
@test tree.root.key == 2
122-
@test tree.root.left.key == 1
123-
@test tree.root.right.key == 3
124-
125135
# show
126136
tree = AVLTree{Int,Int}()
127137
@test sprint(show, MIME("text/plain"), tree) == "AVLTree()"

0 commit comments

Comments
 (0)