Skip to content

Commit efa2f48

Browse files
author
barbara
committed
Tests for max, min, search, insert and remove
1 parent 84e75b7 commit efa2f48

File tree

1 file changed

+40
-12
lines changed

1 file changed

+40
-12
lines changed

Splay Tree/Tests/SplayTreeTests.swift

+40-12
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,58 @@ import XCTest
22

33
class SplayTreeTests: XCTestCase {
44

5-
var tree: SplayTree<Int>!
65
var tree1: SplayTree<Int>!
6+
var tree2: SplayTree<Int>!
77

88
override func setUp() {
99
super.setUp()
10-
tree = SplayTree<Int>(value: 1)
11-
tree1 = tree.insert(value: 10)?.insert(value: 20)?.insert(value: 3)?.insert(value: 6)?.insert(value: 100)?.insert(value: 44)
10+
tree1 = SplayTree<Int>(value: 1)
11+
12+
tree2 = SplayTree<Int>(value: 1)
13+
tree2.insert(value: 10)
14+
tree2.insert(value: 20)
15+
tree2.insert(value: 3)
16+
tree2.insert(value: 6)
17+
tree2.insert(value: 100)
18+
tree2.insert(value: 44)
1219
}
1320

1421
func testInsertion() {
15-
let tree1 = tree.insert(value: 10)
16-
assert(tree1?.root?.value == 10)
22+
tree1.insert(value: 10)
23+
assert(tree1.value == 10)
1724

18-
let tree2 = tree1!.insert(value: 2)
19-
assert(tree2?.root?.value == 2)
25+
tree2.insert(value: 2)
26+
assert(tree2.root?.value == 2)
2027
}
2128

22-
2329
func testSearchNonExisting() {
24-
print(tree1)
25-
let tree2 = tree1.search(value: 5)
26-
assert(tree2?.root?.value == 10)
27-
30+
let t = tree2.search(value: 5)
31+
assert(t?.value == 10)
32+
}
33+
34+
func testSearchExisting() {
35+
let t = tree2.search(value: 6)
36+
assert(t?.value == 6)
37+
}
38+
39+
func testDeleteExistingOnlyLeftChild() {
40+
tree2.remove(value: 3)
41+
assert(tree2.value == 6)
42+
}
43+
44+
func testDeleteExistingOnly2Children() {
45+
tree2.remove(value: 6)
46+
assert(tree2.value == 20)
2847
}
2948

49+
func testMinimum() {
50+
let v = tree2.minimum()
51+
assert(v?.value == 1)
52+
}
53+
54+
func testMaximum() {
55+
let v = tree2.maximum()
56+
assert(v?.value == 100)
57+
}
3058

3159
}

0 commit comments

Comments
 (0)