@@ -32,8 +32,8 @@ public void twoSum() {
3232 expr .operators .add (Expression .Operator .ADD );
3333 expr .numbers .add (new BigDecimal ("-24.8" ));
3434
35- BigDecimal result = expr .evaluate (false , RoundingMode .HALF_UP );
36- assertEquals (0 , result . compareTo ( new BigDecimal ("-12.7" ) ));
35+ BigDecimal result = expr .evaluate (false , 8 , RoundingMode .HALF_UP );
36+ assertEquals (result , new BigDecimal ("-12.7" ));
3737 }
3838
3939 @ Test
@@ -45,11 +45,11 @@ public void sumAndMultiply() {
4545 expr .operators .add (Expression .Operator .MULTIPLY );
4646 expr .numbers .add (new BigDecimal ("5" ));
4747
48- BigDecimal result1 = expr .evaluate (false , RoundingMode .HALF_UP );
49- assertEquals (0 , result1 . compareTo ( new BigDecimal ("35" ) ));
48+ BigDecimal result1 = expr .evaluate (false , 8 , RoundingMode .HALF_UP );
49+ assertEquals (result1 , new BigDecimal ("35" ));
5050
51- BigDecimal result2 = expr .evaluate (true , RoundingMode .HALF_UP );
52- assertEquals (0 , result2 . compareTo ( new BigDecimal ("23" ) ));
51+ BigDecimal result2 = expr .evaluate (true , 8 , RoundingMode .HALF_UP );
52+ assertEquals (result2 , new BigDecimal ("23" ));
5353 }
5454
5555 @ Test
@@ -69,11 +69,22 @@ public void longExpression() {
6969 expr .operators .add (Expression .Operator .SUBTRACT );
7070 expr .numbers .add (new BigDecimal ("-10" ));
7171
72- BigDecimal result1 = expr .evaluate (false , RoundingMode .HALF_UP );
73- assertEquals (0 , result1 . compareTo ( new BigDecimal ("12.41666667" ) ));
72+ BigDecimal result1 = expr .evaluate (false , 8 , RoundingMode .HALF_UP );
73+ assertEquals (result1 , new BigDecimal ("12.41666667" ));
7474
75- BigDecimal result2 = expr .evaluate (true , RoundingMode .HALF_UP );
76- assertEquals (0 , result2 .compareTo (new BigDecimal ("12.33333333" )));
75+ BigDecimal result2 = expr .evaluate (true , 8 , RoundingMode .HALF_UP );
76+ assertEquals (result2 , new BigDecimal ("12.33333333" ));
77+ }
78+
79+ @ Test
80+ public void stripTrailingZeroes () {
81+ Expression expr = new Expression ();
82+ expr .numbers .add (new BigDecimal ("1" ));
83+ expr .operators .add (Expression .Operator .DIVIDE );
84+ expr .numbers .add (new BigDecimal ("8" ));
85+
86+ BigDecimal result = expr .evaluate (false , 8 , RoundingMode .HALF_UP );
87+ assertEquals (result , new BigDecimal ("0.125" ));
7788 }
7889
7990}
0 commit comments