Skip to content

Commit a93d9c7

Browse files
committed
test: 가중치 그래프 테스트 코드 추가
1 parent d0ff25c commit a93d9c7

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
package graph;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
5+
6+
import org.junit.jupiter.api.BeforeEach;
7+
import org.junit.jupiter.api.Test;
8+
9+
class WeightedGraphTest {
10+
11+
WeightedGraph graph;
12+
13+
@BeforeEach
14+
void setUp() {
15+
this.graph = new ListWeightGraph(7, Point.class);
16+
}
17+
18+
@Test
19+
void 가중치_그래프_초기화_테스트() {
20+
assertThat(this.graph).isNotNull();
21+
}
22+
23+
@Test
24+
void 가중치_없이_생성하면_UnsupportedOperationException_발생_테스트() {
25+
assertThatThrownBy(() -> graph.addEdge(Point.A, Point.B))
26+
.isInstanceOf(UnsupportedOperationException.class);
27+
}
28+
29+
@Test
30+
void 가중치_그래프_정점_연결_테스트() {
31+
graph.addEdge(Point.A, Point.B, 9);
32+
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B\nB: A\n");
33+
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo("(A-B), w: 9\n");
34+
35+
graph.addEdge(Point.B, Point.C, 2);
36+
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B\nB: A C\nC: B\n");
37+
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo("(A-B), w: 9\n(B-C), w: 2\n");
38+
39+
graph.addEdge(Point.A, Point.C, 12);
40+
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B C\nB: A C\nC: B A\n");
41+
assertThat(graph.showGraphEdgeWeightInfo())
42+
.isEqualTo("(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n");
43+
44+
graph.addEdge(Point.A, Point.D, 8);
45+
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B C D\nB: A C\nC: B A\nD: A\n");
46+
assertThat(graph.showGraphEdgeWeightInfo())
47+
.isEqualTo("(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n");
48+
49+
graph.addEdge(Point.D, Point.C, 6);
50+
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B C D\nB: A C\nC: B A D\nD: A C\n");
51+
assertThat(graph.showGraphEdgeWeightInfo())
52+
.isEqualTo("(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n");
53+
54+
graph.addEdge(Point.A, Point.F, 11);
55+
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: B C D F\nB: A C\nC: B A D\nD: A C\nF: A\n");
56+
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
57+
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n");
58+
59+
graph.addEdge(Point.F, Point.D, 4);
60+
assertThat(graph.showGraphEdgeInfo())
61+
.isEqualTo("A: B C D F\nB: A C\nC: B A D\nD: A C F\nF: A D\n");
62+
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
63+
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n(F-D), w: 4\n");
64+
65+
graph.addEdge(Point.D, Point.E, 3);
66+
assertThat(graph.showGraphEdgeInfo())
67+
.isEqualTo("A: B C D F\nB: A C\nC: B A D\nD: A C F E\nE: D\nF: A D\n");
68+
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
69+
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n(F-D), w: 4\n(D-E), w: 3\n");
70+
71+
graph.addEdge(Point.E, Point.C, 7);
72+
assertThat(graph.showGraphEdgeInfo())
73+
.isEqualTo("A: B C D F\nB: A C\nC: B A D E\nD: A C F E\nE: D C\nF: A D\n");
74+
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
75+
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n(F-D), w: 4\n(D-E), w: 3\n(E-C), w: 7\n");
76+
77+
graph.addEdge(Point.F, Point.E, 13);
78+
assertThat(graph.showGraphEdgeInfo())
79+
.isEqualTo("A: B C D F\nB: A C\nC: B A D E\nD: A C F E\nE: D C F\nF: A D E\n");
80+
assertThat(graph.showGraphEdgeWeightInfo()).isEqualTo(
81+
"(A-B), w: 9\n(B-C), w: 2\n(A-C), w: 12\n(A-D), w: 8\n(D-C), w: 6\n(A-F), w: 11\n(F-D), w: 4\n(D-E), w: 3\n(E-C), w: 7\n(F-E), w: 13\n");
82+
}
83+
84+
@Test
85+
void 가중치_그래프_MST변환_테스트() {
86+
graph.addEdge(Point.A, Point.B, 9);
87+
graph.addEdge(Point.B, Point.C, 2);
88+
graph.addEdge(Point.A, Point.C, 12);
89+
graph.addEdge(Point.A, Point.D, 8);
90+
graph.addEdge(Point.D, Point.C, 6);
91+
graph.addEdge(Point.A, Point.F, 11);
92+
graph.addEdge(Point.F, Point.D, 4);
93+
graph.addEdge(Point.D, Point.E, 3);
94+
graph.addEdge(Point.E, Point.C, 7);
95+
graph.addEdge(Point.F, Point.E, 13);
96+
97+
graph.convertToMST(new KruskalAlgorithm());
98+
assertThat(graph.showGraphEdgeInfo()).isEqualTo("A: D\nB: C\nC: B D\nD: A C E F\nE: D\nF: D\n");
99+
assertThat(graph.showGraphEdgeWeightInfo())
100+
.isEqualTo("(A-D), w: 8\n(D-C), w: 6\n(F-D), w:4\n(D-E), w:3\n(B-C), w:2\n");
101+
}
102+
103+
private enum Point {
104+
A, B, C, D, E, F, G, H, I, J
105+
}
106+
}

0 commit comments

Comments
 (0)