With version 3.1.0, the boolean expression evaluation was broken. It seems that the problem takes effect only when scale of the BigDecimal is greater than zero.
Example (correct result) with scale 0:
Expression expression = new Expression("a && b");
EvaluationValue result = expression
.with("a", BigDecimal.ZERO)
.and("b", BigDecimal.ZERO)
.evaluate();
System.out.println(result.getBooleanValue()); // prints false
Example (wrong result) with scale 1:
Expression expression = new Expression("a && b");
EvaluationValue result = expression
.with("a", new BigDecimal("0.0"))
.and("b", new BigDecimal("0.0"))
.evaluate();
System.out.println(result.getBooleanValue()); // prints true
With version 3.1.0, the boolean expression evaluation was broken. It seems that the problem takes effect only when scale of the BigDecimal is greater than zero.
Example (correct result) with scale 0:
Example (wrong result) with scale 1: