I am working on building a simple calculator in Java. Currently, I am testing the subtraction functionality using tests. It works fine for the first subtraction (5-5-5) but doesn't work with the (-2-2) due to Java stack order - how can I go about solving this problem.
Calculator class:
public class Calculator{
public double evaluate(String expression){
    if (expression.contains("+")){
        int index = expression.indexOf("+");
        String str1 = expression.substring(0, index);
        // String str2 = expression.substring(index + 1);
        return evaluate(str1) + evaluate(expression.substring(index + 1));
    }
    else if (expression.contains("-")){
        int index = expression.indexOf("-");
        String str1 = expression.substring(0, index);
        // String str2 = expression.substring(index + 1);
        return evaluate(expression.substring(index + 1)) - evaluate(str1);
    }
    return Double.parseDouble(expression);
}
Test class:
public class CalculatorTest{
Calculator cal;
@Before
public void setUp(){
    cal = new Calculator();
}
@Test
public void  testEvaluateReturnsDoubleMinusZeroWhenStringFiveMinusFiveMinusFiveIsPassedIn(){
    assertEquals(-5.0,cal.evaluate("5-5-5"),0.0);
}
@Test
public void testEvaluateReturnsDoubleMinusFourWhenStringMinusTwoMinusTwoIsPassedIn(){
    assertEquals(-4.0,cal.evaluate("-2-2"),0.0);
}
 
     
     
    