Skip to content

Commit 4176347

Browse files
committed
test: 후위 연산식을 계산하는 클래스 테스트 작성 및 통과
1 parent db12c20 commit 4176347

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package com.wonu606.calculator;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
5+
import com.wonu606.calculator.calculator.Calculator;
6+
import com.wonu606.calculator.calculator.PostfixCalculator;
7+
import java.util.Arrays;
8+
import java.util.List;
9+
import org.junit.jupiter.api.DisplayName;
10+
import org.junit.jupiter.api.Test;
11+
12+
class PostCalculatorTest {
13+
14+
@Test
15+
@DisplayName("연산자가 1개일 경우")
16+
void testSingle() {
17+
// given
18+
Calculator calculator = new PostfixCalculator();
19+
List<String> actualList = Arrays.asList("-3", "5.0", "+");
20+
double expected = -3 + 5.0;
21+
22+
// when
23+
double result = calculator.calculate(actualList);
24+
25+
// then
26+
assertThat(result).isEqualTo(expected);
27+
}
28+
29+
@Test
30+
@DisplayName("같은 우선 순위일 경우")
31+
void testPrecedenceEquals() {
32+
// given
33+
Calculator calculator = new PostfixCalculator();
34+
List<String> actualList = Arrays.asList("3", "5", "+", "2", "-");
35+
double expected = 3 + 5 - 2;
36+
37+
// when
38+
double result = calculator.calculate(actualList);
39+
40+
// then
41+
assertThat(result).isEqualTo(expected);
42+
}
43+
44+
@Test
45+
@DisplayName("높은 우선 순위가 뒤에 올 경우")
46+
void testHigherPrecedenceFollows() {
47+
// given
48+
Calculator calculator = new PostfixCalculator();
49+
List<String> actualList = Arrays.asList("3", "5", "2", "*", "+");
50+
double expected = 3 + 5 * 2;
51+
52+
// when
53+
double result = calculator.calculate(actualList);
54+
55+
// then
56+
assertThat(result).isEqualTo(expected);
57+
}
58+
59+
@Test
60+
@DisplayName("높은 우선 순위가 앞에 올 경우")
61+
void testHigherPrecedenceComesFirst() {
62+
// given
63+
Calculator calculator = new PostfixCalculator();
64+
List<String> actualList = Arrays.asList("3", "5", "*", "2", "+");
65+
double expected = 3 * 5 + 2;
66+
67+
// when
68+
double result = calculator.calculate(actualList);
69+
70+
// then
71+
assertThat(result).isEqualTo(expected);
72+
}
73+
74+
@Test
75+
@DisplayName("소수가 나올 경우")
76+
void testIfFraction() {
77+
// given
78+
Calculator calculator = new PostfixCalculator();
79+
List<String> actualList = Arrays.asList("3", "5", "/", "2", "+");
80+
double expected = 3.0 / 5 + 2;
81+
82+
// when
83+
double result = calculator.calculate(actualList);
84+
85+
// then
86+
assertThat(result).isEqualTo(expected);
87+
}
88+
}

0 commit comments

Comments
 (0)