Пример #1
0
        public void CalculateFromReversePolishNotationTest2()
        {
            var expressionProcessor = new MathExpressionProcessor();
            var calculator          = new Calculator.Calculator(expressionProcessor);
            var inputString         = $"5{Dot}4 23{Dot}6 +";
            var expectedOutput      = 29;

            var actualOutput = calculator.CalculateFromReversePolishNotation(inputString);

            Assert.IsTrue(Math.Abs(expectedOutput - actualOutput) < Eps);
        }
Пример #2
0
        public void ReversePolishNotationTest3()
        {
            var expressionProcessor = new MathExpressionProcessor();
            var mapper         = new NotationMapper(expressionProcessor);
            var inputString    = $"( 5{Dot}3+2{Dot}7) *3{Dot}12";
            var expectedOutput = $"5{Dot}3 2{Dot}7 + 3{Dot}12 *";

            var actualOutput = mapper.ReversePolishNotation(inputString);

            Assert.AreEqual(expectedOutput, actualOutput.Trim());
        }
Пример #3
0
        public void ReversePolishNotationTest2()
        {
            var expressionProcessor = new MathExpressionProcessor();
            var mapper         = new NotationMapper(expressionProcessor);
            var inputString    = "( 5+2) *3";
            var expectedOutput = "5 2 + 3 *";

            var actualOutput = mapper.ReversePolishNotation(inputString);

            Assert.AreEqual(expectedOutput, actualOutput.Trim());
        }
Пример #4
0
        public void DoubleNotationTest1()
        {
            var expressionProcessor = new MathExpressionProcessor();
            var calculator          = new Calculator.Calculator(expressionProcessor);
            var inputString         = ".1";

            var expectedOutput = 0.1;
            var actualOutput   = calculator.CalculateFromReversePolishNotation(inputString);

            Assert.IsTrue(Math.Abs(expectedOutput - actualOutput) < Eps);
        }
Пример #5
0
        public void OpeningParenthesisMissTest2()
        {
            var expressionProcessor = new MathExpressionProcessor();
            var mapper      = new NotationMapper(expressionProcessor);
            var inputString = ")( 5+2) *3";

            try
            {
                mapper.ReversePolishNotation(inputString);
                Assert.Fail("Must be exception!");
            }
            catch (ArgumentException) { }
        }
Пример #6
0
        public void UnknownCharacterTest1()
        {
            var expressionProcessor = new MathExpressionProcessor();
            var mapper      = new NotationMapper(expressionProcessor);
            var inputString = "5^2";


            try
            {
                mapper.ReversePolishNotation(inputString);
                Assert.Fail("Must be exception!");
            }
            catch (ArgumentException) { }
        }
Пример #7
0
        public void OperatorsMistakeTest1()
        {
            var expressionProcessor = new MathExpressionProcessor();
            var mapper      = new NotationMapper(expressionProcessor);
            var calculator  = new Calculator.Calculator(expressionProcessor);
            var inputString = "(( 5+2) *)3";
            var reversePolishNotationString = mapper.ReversePolishNotation(inputString);

            try
            {
                calculator.CalculateFromReversePolishNotation(reversePolishNotationString);
                Assert.Fail("Must be exception!");
            }
            catch (ArgumentException) {}
        }