-
Notifications
You must be signed in to change notification settings - Fork 2
/
insert_test.go
75 lines (71 loc) · 1.77 KB
/
insert_test.go
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package splaytree
import "testing"
func TestInsert(t *testing.T) {
tree := NewSplayTree()
if tree == nil {
t.Errorf("new tree == nil")
}
num := 0
for _, item := range []Item{Int(6), Int(4), Int(2), Int(5), Int(3), Int(7), Int(0)} {
if tree.Insert(item) == false {
t.Errorf("insert !%v", item)
}
num++
if cnt := tree.Count(); cnt != num {
t.Errorf("insert %v != %v", item, cnt)
}
if tree.Lookup(item) == nil {
t.Errorf("lookup after insert !%v", item)
}
tree.Check()
}
}
func TestReplace(t *testing.T) {
tree := NewSplayTree()
if tree == nil {
t.Errorf("new tree == nil")
}
num := 0
for _, item := range []Item{Int(6), Int(4), Int(2), Int(5), Int(3), Int(7), Int(0)} {
if tree.Replace(item) != false {
t.Errorf("replace !%v false", item)
}
num++
if cnt := tree.Count(); cnt != num {
t.Errorf("insert %v != %v", item, cnt)
}
if tree.Lookup(item) == nil {
t.Errorf("lookup after replace !%v", item)
}
tree.Check()
}
for _, item := range []Item{Int(6), Int(4), Int(2), Int(5), Int(3), Int(7), Int(0)} {
if tree.Replace(item) != true {
t.Errorf("replace !%v true", item)
}
if cnt := tree.Count(); cnt != num {
t.Errorf("replace %v != %v", item, cnt)
}
if tree.Lookup(item) == nil {
t.Errorf("lookup after 2nd replace !%v", item)
}
tree.Check()
}
}
func TestReplaceAll(t *testing.T) {
tree := NewSplayTree()
if tree == nil {
t.Errorf("new tree == nil")
}
items1 := []Item{Int(6), Int(4), Int(2), Int(5), Int(3), Int(7), Int(0)}
num := tree.ReplaceAll(items1)
if num != 0 {
t.Errorf("ReplaceAll %v != %v", num, 0)
}
items2 := []Item{Int(6), Int(4), Int(2), Int(5), Int(3), Int(7), Int(0)}
num = tree.ReplaceAll(items2)
if num != len(items2) {
t.Errorf("ReplaceAll %v != %v", num, len(items2))
}
tree.Check()
}