@@ -2,30 +2,58 @@ import XCTest
2
2
3
3
class SplayTreeTests : XCTestCase {
4
4
5
- var tree : SplayTree < Int > !
6
5
var tree1 : SplayTree < Int > !
6
+ var tree2 : SplayTree < Int > !
7
7
8
8
override func setUp( ) {
9
9
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 )
12
19
}
13
20
14
21
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 )
17
24
18
- let tree2 = tree1! . insert ( value: 2 )
19
- assert ( tree2? . root? . value == 2 )
25
+ tree2. insert ( value: 2 )
26
+ assert ( tree2. root? . value == 2 )
20
27
}
21
28
22
-
23
29
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 )
28
47
}
29
48
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
+ }
30
58
31
59
}
0 commit comments