1+ package com .wonu606 .calculator .converter ;
2+
3+ import static org .assertj .core .api .Assertions .assertThat ;
4+
5+ import java .util .Arrays ;
6+ import java .util .List ;
7+ import org .junit .jupiter .api .DisplayName ;
8+ import org .junit .jupiter .api .Test ;
9+
10+ class InfixToPostfixConverterTest {
11+
12+ @ Test
13+ @ DisplayName ("연산자가 1개일 경우" )
14+ void testSingle () {
15+ // given
16+ Converter <String , List <String >> converter = new InfixToPostfixConverter ();
17+ List <String > expectedList = Arrays .asList ("-3" , "5.0" , "+" );
18+ String infixExpression = "-3 + 5.0" ;
19+
20+ // when
21+ List <String > actualList = converter .convert (infixExpression );
22+
23+ // then
24+ assertThat (actualList ).isEqualTo (expectedList );
25+ }
26+
27+ @ Test
28+ @ DisplayName ("같은 우선 순위일 경우" )
29+ void testPrecedenceEquals () {
30+ // given
31+ Converter <String , List <String >> converter = new InfixToPostfixConverter ();
32+ List <String > expectedList = Arrays .asList ("3" , "5" , "+" , "2" , "-" );
33+ String infixExpression = "3 + 5 - 2" ;
34+
35+ // when
36+ List <String > actualList = converter .convert (infixExpression );
37+
38+ // then
39+ assertThat (actualList ).isEqualTo (expectedList );
40+ }
41+
42+ @ Test
43+ @ DisplayName ("높은 우선 순위가 뒤에 올 경우" )
44+ void testHigherPrecedenceFollows () {
45+ // given
46+ Converter <String , List <String >> converter = new InfixToPostfixConverter ();
47+ List <String > expectedList = Arrays .asList ("3" , "5" , "2" , "*" , "+" );
48+ String infixExpression = "3 + 5 * 2" ;
49+
50+ // when
51+ List <String > actualList = converter .convert (infixExpression );
52+
53+ // then
54+ assertThat (actualList ).isEqualTo (expectedList );
55+ }
56+
57+ @ Test
58+ @ DisplayName ("높은 우선 순위가 앞에 올 경우" )
59+ void testHigherPrecedenceComesFirst () {
60+ // given
61+ Converter <String , List <String >> converter = new InfixToPostfixConverter ();
62+ List <String > expectedList = Arrays .asList ("3" , "5" , "*" , "2" , "+" );
63+ String infixExpression = "3 * 5 + 2" ;
64+
65+ // when
66+ List <String > actualList = converter .convert (infixExpression );
67+
68+ // then
69+ assertThat (actualList ).isEqualTo (expectedList );
70+ }
71+ }
0 commit comments