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