Skip to content

Commit 2bcb830

Browse files
committed
test: 순회 가능한 이진 트리 테스트 코드 작성
1 parent a4dfa1d commit 2bcb830

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
package tree.binarytree;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import org.junit.jupiter.api.DisplayName;
6+
import org.junit.jupiter.api.Test;
7+
8+
class TraversableBinaryTreeNodeTest {
9+
10+
@Test
11+
@DisplayName("이진_트리_생성_및_초기화_테스트")
12+
void 이진_트리_생성_및_초기화_테스트() {
13+
TraversableBinaryTreeNode<Integer> bt = new TraversableBinaryTreeNodeImpl<>(1);
14+
15+
assertThat(bt).isNotNull();
16+
assertThat(bt.getData()).isEqualTo(1);
17+
assertThat(bt.getLeftSubTree()).isNull();
18+
assertThat(bt.getRightSubTree()).isNull();
19+
}
20+
21+
@Test
22+
@DisplayName("이진_트리_저장_및_출력_테스트")
23+
void 이진_트리_저장_및_출력_테스트() {
24+
TraversableBinaryTreeNode<Integer> bt1 = new TraversableBinaryTreeNodeImpl<>(1);
25+
TraversableBinaryTreeNode<Integer> bt2 = new TraversableBinaryTreeNodeImpl<>(2);
26+
TraversableBinaryTreeNode<Integer> bt3 = new TraversableBinaryTreeNodeImpl<>(3);
27+
TraversableBinaryTreeNode<Integer> bt4 = new TraversableBinaryTreeNodeImpl<>(4);
28+
29+
bt1.setLeftSubTree(bt2);
30+
bt1.setRightSubTree(bt3);
31+
bt2.setLeftSubTree(bt4);
32+
33+
assertThat(bt1).isNotNull();
34+
assertThat(bt2).isNotNull();
35+
assertThat(bt3).isNotNull();
36+
assertThat(bt4).isNotNull();
37+
assertThat(bt1.getData()).isEqualTo(1);
38+
assertThat(bt2.getData()).isEqualTo(2);
39+
assertThat(bt3.getData()).isEqualTo(3);
40+
assertThat(bt4.getData()).isEqualTo(4);
41+
assertThat(bt1.getLeftSubTree().getData()).isEqualTo(2);
42+
assertThat(bt1.getRightSubTree().getData()).isEqualTo(3);
43+
assertThat(bt1.getLeftSubTree().getLeftSubTree().getData()).isEqualTo(4);
44+
assertThat(bt1.getLeftSubTree().getRightSubTree()).isNull();
45+
}
46+
47+
@Test
48+
@DisplayName("이진_트리_전위_순회_테스트")
49+
void 이진_트리_전위_순회_테스트() {
50+
TraversableBinaryTreeNode<Integer> bt1 = new TraversableBinaryTreeNodeImpl<>(1);
51+
TraversableBinaryTreeNode<Integer> bt2 = new TraversableBinaryTreeNodeImpl<>(2);
52+
TraversableBinaryTreeNode<Integer> bt3 = new TraversableBinaryTreeNodeImpl<>(3);
53+
TraversableBinaryTreeNode<Integer> bt4 = new TraversableBinaryTreeNodeImpl<>(4);
54+
55+
bt1.setLeftSubTree(bt2);
56+
bt1.setRightSubTree(bt3);
57+
bt2.setLeftSubTree(bt4);
58+
59+
String expected = "1 2 4 3";
60+
StringBuilder sb = new StringBuilder();
61+
bt1.preorderTraverse(sb);
62+
63+
assertThat(sb.toString()).isEqualTo(expected);
64+
}
65+
66+
@Test
67+
@DisplayName("이진_트리_중위_순회_테스트")
68+
void 이진_트리_중위_순회_테스트() {
69+
TraversableBinaryTreeNode<Integer> bt1 = new TraversableBinaryTreeNodeImpl<>(1);
70+
TraversableBinaryTreeNode<Integer> bt2 = new TraversableBinaryTreeNodeImpl<>(2);
71+
TraversableBinaryTreeNode<Integer> bt3 = new TraversableBinaryTreeNodeImpl<>(3);
72+
TraversableBinaryTreeNode<Integer> bt4 = new TraversableBinaryTreeNodeImpl<>(4);
73+
74+
bt1.setLeftSubTree(bt2);
75+
bt1.setRightSubTree(bt3);
76+
bt2.setLeftSubTree(bt4);
77+
78+
String expected = "4 2 1 3";
79+
StringBuilder sb = new StringBuilder();
80+
bt1.inorderTraverse(sb);
81+
82+
assertThat(sb.toString()).isEqualTo(expected);
83+
}
84+
85+
@Test
86+
@DisplayName("이진_트리_후위_순회_테스트")
87+
void 이진_트리_후위_순회_테스트() {
88+
TraversableBinaryTreeNode<Integer> bt1 = new TraversableBinaryTreeNodeImpl<>(1);
89+
TraversableBinaryTreeNode<Integer> bt2 = new TraversableBinaryTreeNodeImpl<>(2);
90+
TraversableBinaryTreeNode<Integer> bt3 = new TraversableBinaryTreeNodeImpl<>(3);
91+
TraversableBinaryTreeNode<Integer> bt4 = new TraversableBinaryTreeNodeImpl<>(4);
92+
93+
bt1.setLeftSubTree(bt2);
94+
bt1.setRightSubTree(bt3);
95+
bt2.setLeftSubTree(bt4);
96+
97+
String expected = "4 2 3 1";
98+
StringBuilder sb = new StringBuilder();
99+
bt1.postorderTraverse(sb);
100+
101+
assertThat(sb.toString()).isEqualTo(expected);
102+
}
103+
}

0 commit comments

Comments
 (0)