public void Should_Return_10_For_X() { var expression = "X"; var calculator = new RomanCalculator(expression); Assert.AreEqual(10, calculator.Result()); }
public void Should_Return_3_For_III() { var expression = "III"; var calculator = new RomanCalculator(expression); Assert.AreEqual(3, calculator.Result()); }
public void Should_Return_5_For_V() { var expression = "V"; var calculator = new RomanCalculator(expression); Assert.AreEqual(5, calculator.Result()); }
public void Should_Subtract_Two_Roman_Numbers() { var expression = "I - II"; var calculator = new RomanCalculator(expression); Assert.AreEqual(-1, calculator.Result()); }
public void Should_Add_Two_Roman_Numbers() { var expression = "I + II"; var calculator = new RomanCalculator(expression); Assert.AreEqual(3, calculator.Result()); }
public void Should_Divide_Three_Roman_Numbers() { var expression = "I / II / III"; var calculator = new RomanCalculator(expression); Assert.AreEqual(0.166, calculator.Result()); }
public void Should_Multiply_Three_Roman_Numbers() { var expression = "I * II * III"; var calculator = new RomanCalculator(expression); Assert.AreEqual(6, calculator.Result()); }
public void Should_Process_Parenthesis_Before_Anything_Else() { var parensFirstInExpression = "( I + II ) * III"; var calculator = new RomanCalculator(parensFirstInExpression); Assert.AreEqual(9, calculator.Result()); var parensLastInExpression = "I * ( II + III )"; calculator = new RomanCalculator(parensLastInExpression); Assert.AreEqual(5, calculator.Result()); }
public void Should_Perform_Multiplication_Before_Addition() { var multiplicationIsSecondInExpression = "I + II * III"; var calculator = new RomanCalculator(multiplicationIsSecondInExpression); Assert.AreEqual(7, calculator.Result()); var multiplicationIsFirstInExpression = "I * II + III"; calculator = new RomanCalculator(multiplicationIsFirstInExpression); Assert.AreEqual(5, calculator.Result()); }