    @Test
    public void longExpression() {

        Expression expr = new Expression();
        expr.numbers.add(new BigDecimal("-1"));
        expr.operators.add(Expression.Operator.DIVIDE);
        expr.numbers.add(new BigDecimal("6"));
        expr.operators.add(Expression.Operator.ADD);
        expr.numbers.add(new BigDecimal("5"));
        expr.operators.add(Expression.Operator.MULTIPLY);
        expr.numbers.add(new BigDecimal("12"));
        expr.operators.add(Expression.Operator.DIVIDE);
        expr.numbers.add(new BigDecimal("3"));
        expr.operators.add(Expression.Operator.DIVIDE);
        expr.numbers.add(new BigDecimal("8"));
        expr.operators.add(Expression.Operator.SUBTRACT);
        expr.numbers.add(new BigDecimal("-10"));

        BigDecimal result1 = expr.evaluate(false, 8, RoundingMode.HALF_UP);
        assertEquals(result1, new BigDecimal("12.41666667"));

        BigDecimal result2 = expr.evaluate(true, 8, RoundingMode.HALF_UP);
        assertEquals(result2, new BigDecimal("12.33333333"));
    }