Exemple #1
0
        public void CalculateExpression_InpuExpressionIsProperlyCalculated()
        {
            var romanCalculator           = new RomanCalculator();
            var inputArithmeticExpression = "(IX+(XVII*IV))-(VII*IX)";
            var actualResultOfCalculationInRomanFormat = romanCalculator.CalculateExpression(inputArithmeticExpression);
            var expectedResultInRomanFormat            = "XIV";

            Assert.AreEqual(expectedResultInRomanFormat, actualResultOfCalculationInRomanFormat);

            inputArithmeticExpression = "(LXII*III)-(IV+(III*(XIV/VII)+III*II))";
            actualResultOfCalculationInRomanFormat = romanCalculator.CalculateExpression(inputArithmeticExpression);
            expectedResultInRomanFormat            = "CLXX";
            Assert.AreEqual(expectedResultInRomanFormat, actualResultOfCalculationInRomanFormat);
        }
        public void RomanCalculator_SimpleExpressions_ShouldPass(string expression, string expectedRoman, int expectedArabic)
        {
            var actual = RomanCalculator.CalculateExpression(expression);

            Assert.Equal(expectedRoman, actual.Roman);
            Assert.Equal(expectedArabic, actual.Arabic);
        }
Exemple #3
0
        public void CalculateExpression_ResultOfDivisionIsNotInteger_ExceptionThrown()
        {
            var          romanCalculator           = new RomanCalculator();
            const string inputArithmeticExpression = "(IX/IV)";

            romanCalculator.CalculateExpression(inputArithmeticExpression);
        }
Exemple #4
0
        public void CalculateExpression_NotPositiveResultOfCalculation_ExceptionThrown()
        {
            var          romanCalculator           = new RomanCalculator();
            const string inputArithmeticExpression = "(IX-L)";

            romanCalculator.CalculateExpression(inputArithmeticExpression);
        }
Exemple #5
0
        public void CalculateExpression_UncorrectAmountOfBrackets_ExceptionThrown()
        {
            var          romanCalculator           = new RomanCalculator();
            const string inputArithmeticExpression = "(IX+(XVII*IV))-(VII*IX)(((";

            romanCalculator.CalculateExpression(inputArithmeticExpression);
        }
Exemple #6
0
        public void CalculateExpression_UncorrectRomanNumber_ExceptionThrown()
        {
            var          romanCalculator           = new RomanCalculator();
            const string inputArithmeticExpression = "(IX+F)";

            romanCalculator.CalculateExpression(inputArithmeticExpression);
        }
 public void CalculateExpression_IncorrectOperation_InvalidOperationExceptionThrown()
 {
     Assert.Throws(typeof(InvalidOperationException), () =>
     {
         RomanCalculator.CalculateExpression("I / V");
     });
 }
Exemple #8
0
        public void CalculateExpression_UncorrectArithmeticExpressionWithTerminalSign_ExceptionThrown()
        {
            var          romanCalculator           = new RomanCalculator();
            const string inputArithmeticExpression = "(V$2)";

            romanCalculator.CalculateExpression(inputArithmeticExpression);
        }
Exemple #9
0
 public void RomanCalculator_IncorrectExpression_ShouldThrowInvalidData(string expression)
 {
     Assert.Throws(typeof(InvalidDataException), () =>
     {
         RomanCalculator.CalculateExpression(expression);
     });
 }
 public void CalculateExpression_IncorrectArgumentsCount_ArgumentExceptionThrown(string expression)
 {
     Assert.Throws(typeof(ArgumentException), () =>
     {
         RomanCalculator.CalculateExpression(expression);
     });
 }
Exemple #11
0
 public void RomanCalculator_IncorrectOperation_InvalidOperationExceptionThrown(string expression)
 {
     Assert.Throws(typeof(InvalidOperationException), () =>
     {
         RomanCalculator.CalculateExpression(expression);
     });
 }
Exemple #12
0
 public void RomanCalculator_FromExpression_NotNaturalResult_ShouldThrowInvalidOperation(string expression)
 {
     Assert.Throws(typeof(InvalidOperationException), () =>
     {
         RomanCalculator.CalculateExpression(expression);
     });
 }
Exemple #13
0
 public void CalculateExpression_UncorrectArithmeticExpression_ExceptionThrown2()
 {
     var          romanCalculator           = new RomanCalculator();
     const string inputArithmeticExpression = "(V++2)";
     //Why do we need this variable (it seems that I write this kind of comments again and again, may be it is just your style)
     var actualResultOfCalculationInRomanFormat = romanCalculator.CalculateExpression(inputArithmeticExpression);
 }
Exemple #14
0
        public void CalculateExpression_CorrectValueOfCalculation2()
        {
            var          romanCalculator           = new RomanCalculator();
            const string inputArithmeticExpression = "(LXII*III)-(IV+(III*(XIV/VII)+III*II))";
            var          actualResultOfCalculationInRomanFormat = romanCalculator.CalculateExpression(inputArithmeticExpression);
            const string expectedResultInRomanFormat            = "CLXX";

            Assert.AreEqual(expectedResultInRomanFormat, actualResultOfCalculationInRomanFormat);
        }
Exemple #15
0
        public void CalculateExpression_NotPositiveResultOfCalculation_ExceptionThrown()
        {
            var          romanCalculator           = new RomanCalculator();
            const string inputArithmeticExpression = "(IX-L)";
            var          expectedResultOfCalculationInRomanFormat = "-41"; //Should be constant
            var          actualResultOfCalculationInRomanFormat   = romanCalculator.CalculateExpression(inputArithmeticExpression);

            Assert.AreEqual(expectedResultOfCalculationInRomanFormat, actualResultOfCalculationInRomanFormat);
        }
Exemple #16
0
        public void CalculateExpression_UncorrectArithmeticExpression_ExceptionThrown()
        {
            var          romanCalculator           = new RomanCalculator();
            const string inputArithmeticExpression = "(IX+(XVII**IV))-(VII*IX)";
            var          actualResultOfCalculationInRomanFormat = romanCalculator.CalculateExpression(inputArithmeticExpression);
            const string expectedResultInRomanFormat            = "XIV";

            Assert.AreEqual(expectedResultInRomanFormat, actualResultOfCalculationInRomanFormat);
        }
 public void CalculateExpression_SimpleExpressions_ShouldPass(string expression, string expected)
 {
     Assert.Equal(expected, RomanCalculator.CalculateExpression(expression));
 }
Exemple #18
0
 public void CalculateExpression_UncorrectRomanNumber_ExceptionThrown()
 {
     var          romanCalculator           = new RomanCalculator();
     const string inputArithmeticExpression = "(IX+F)";
     var          actualResultOfCalculationInRomanFormat = romanCalculator.CalculateExpression(inputArithmeticExpression);
 }