1
1
package com .thealgorithms .datastructures .trees ;
2
2
3
- import static org .junit .jupiter .api .Assertions .*;
3
+ import static org .junit .jupiter .api .Assertions .assertEquals ;
4
+ import static org .junit .jupiter .api .Assertions .assertFalse ;
5
+ import static org .junit .jupiter .api .Assertions .assertTrue ;
4
6
5
7
import java .util .Arrays ;
6
8
import java .util .LinkedList ;
12
14
public class SplayTreeTest {
13
15
@ ParameterizedTest
14
16
@ MethodSource ("traversalOrders" )
15
- public void testTraversal (String traversalOrder ) {
17
+ public void testTraversal (SplayTree . TraverseOrder traverseOrder ) {
16
18
SplayTree tree = createComplexTree ();
17
19
18
20
// Perform traversal based on the provided order and verify the result
19
- List <Integer > expected = getExpectedTraversalResult (traversalOrder );
20
- List <Integer > result = performTraversal ( tree , traversalOrder );
21
+ List <Integer > expected = getExpectedTraversalResult (traverseOrder );
22
+ List <Integer > result = tree . traverse ( traverseOrder );
21
23
assertEquals (expected , result );
22
24
}
23
25
@@ -42,44 +44,30 @@ public void testDelete(int value) {
42
44
}
43
45
44
46
// Method to provide different traversal orders as parameters
45
- private static Stream <String > traversalOrders () {
46
- return Stream .of ("inOrder" , "preOrder" , "postOrder" );
47
+ private static Stream <SplayTree . TraverseOrder > traversalOrders () {
48
+ return Stream .of (SplayTree . TraverseOrder . IN_ORDER , SplayTree . TraverseOrder . PRE_ORDER , SplayTree . TraverseOrder . POST_ORDER );
47
49
}
48
50
49
51
// Method to provide values for search and delete tests as parameters
50
52
private static Stream <Integer > valuesToTest () {
51
53
return Stream .of (1 , 5 , 10 ); // Values present in the complex tree
52
54
}
53
55
54
- // Method to perform traversal based on the provided order
55
- private List <Integer > performTraversal (SplayTree tree , String traversalOrder ) {
56
- switch (traversalOrder ) {
57
- case "inOrder" :
58
- return tree .inOrder ();
59
- case "preOrder" :
60
- return tree .preOrder ();
61
- case "postOrder" :
62
- return tree .postOrder ();
63
- default :
64
- throw new IllegalArgumentException ("Invalid traversal order: " + traversalOrder );
65
- }
66
- }
67
-
68
56
// Method to get the expected traversal result based on the provided order
69
- private List <Integer > getExpectedTraversalResult (String traversalOrder ) {
57
+ private List <Integer > getExpectedTraversalResult (SplayTree . TraverseOrder traverseOrder ) {
70
58
List <Integer > expected = new LinkedList <>();
71
- switch (traversalOrder ) {
72
- case "inOrder" :
59
+ switch (traverseOrder ) {
60
+ case IN_ORDER :
73
61
expected .addAll (Arrays .asList (1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ));
74
62
break ;
75
- case "preOrder" :
63
+ case PRE_ORDER :
76
64
expected .addAll (Arrays .asList (10 , 9 , 8 , 7 , 3 , 1 , 2 , 5 , 4 , 6 ));
77
65
break ;
78
- case "postOrder" :
66
+ case POST_ORDER :
79
67
expected .addAll (Arrays .asList (2 , 1 , 4 , 6 , 5 , 3 , 7 , 8 , 9 , 10 ));
80
68
break ;
81
69
default :
82
- throw new IllegalArgumentException ("Invalid traversal order: " + traversalOrder );
70
+ throw new IllegalArgumentException ("Invalid traversal order: " + traverseOrder );
83
71
}
84
72
return expected ;
85
73
}
0 commit comments