Esempio n. 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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        public void CalculateExpression_ResultOfDivisionIsNotInteger_ExceptionThrown()
        {
            var          romanCalculator           = new RomanCalculator();
            const string inputArithmeticExpression = "(IX/IV)";

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

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

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

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

            romanCalculator.CalculateExpression(inputArithmeticExpression);
        }
Esempio n. 9
0
 public void RomanCalculator_IncorrectExpression_ShouldThrowInvalidData(string expression)
 {
     Assert.Throws(typeof(InvalidDataException), () =>
     {
         RomanCalculator.CalculateExpression(expression);
     });
 }
Esempio n. 10
0
 public void CalculateExpression_IncorrectArgumentsCount_ArgumentExceptionThrown(string expression)
 {
     Assert.Throws(typeof(ArgumentException), () =>
     {
         RomanCalculator.CalculateExpression(expression);
     });
 }
Esempio n. 11
0
 public void RomanCalculator_IncorrectOperation_InvalidOperationExceptionThrown(string expression)
 {
     Assert.Throws(typeof(InvalidOperationException), () =>
     {
         RomanCalculator.CalculateExpression(expression);
     });
 }
Esempio n. 12
0
 public void RomanCalculator_FromExpression_NotNaturalResult_ShouldThrowInvalidOperation(string expression)
 {
     Assert.Throws(typeof(InvalidOperationException), () =>
     {
         RomanCalculator.CalculateExpression(expression);
     });
 }
Esempio n. 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);
 }
Esempio n. 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);
        }
Esempio n. 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);
        }
Esempio n. 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);
        }
Esempio n. 17
0
 public void CalculateExpression_SimpleExpressions_ShouldPass(string expression, string expected)
 {
     Assert.Equal(expected, RomanCalculator.CalculateExpression(expression));
 }
Esempio n. 18
0
 public void CalculateExpression_UncorrectRomanNumber_ExceptionThrown()
 {
     var          romanCalculator           = new RomanCalculator();
     const string inputArithmeticExpression = "(IX+F)";
     var          actualResultOfCalculationInRomanFormat = romanCalculator.CalculateExpression(inputArithmeticExpression);
 }