コード例 #1
0
        public void TestMult()
        {
            List <Token> mathExpression = StringConverter.ConvertToTokensExpression("2.5*3");
            double       expected       = 7.5;
            double       actual         = ConsoleCalculator.Calculator.CalculateExpression(mathExpression);

            Assert.AreEqual(expected, actual);
        }
コード例 #2
0
        public void TestLessOrEqual()
        {
            List <Token> mathExpression = StringConverter.ConvertToTokensExpression("6 <= 5");
            double       expected       = 0;
            double       actual         = ConsoleCalculator.Calculator.CalculateExpression(mathExpression);

            Assert.AreEqual(expected, actual);
        }
コード例 #3
0
        public void TestUnaryMinus()
        {
            List <Token> mathExpression = StringConverter.ConvertToTokensExpression("-8");
            double       expected       = -8;
            double       actual         = ConsoleCalculator.Calculator.CalculateExpression(mathExpression);

            Assert.AreEqual(expected, actual);
        }
コード例 #4
0
        public void TestBitRSH()
        {
            List <Token> mathExpression = StringConverter.ConvertToTokensExpression("12 >> 2");
            double       expected       = 3;
            double       actual         = ConsoleCalculator.Calculator.CalculateExpression(mathExpression);

            Assert.AreEqual(expected, actual);
        }
コード例 #5
0
        public void TestCtg()
        {
            List <Token> mathExpression = StringConverter.ConvertToTokensExpression("ctg(pi/4)");
            double       expected       = 1;
            double       actual         = ConsoleCalculator.Calculator.CalculateExpression(mathExpression);

            Assert.AreEqual(expected, actual);
        }
コード例 #6
0
        public void MediumTest()
        {
            string       mathExpression   = "(ctg(pi/4)+3%2)^(sqrt(100/10/2+-1))";
            List <Token> tokensExpression = StringConverter.ConvertToTokensExpression(mathExpression);
            double       actual           = Calculator.CalculateExpression(tokensExpression);

            double expected = 4;

            Assert.AreEqual(expected, actual);
        }
コード例 #7
0
        public void TestEasyConvertToTokensExpression()
        {
            string       entry    = "2+3";
            List <Token> expected = new List <Token>()
            {
                new Token(TOKEN_TYPE.VARIABLE, "2"),
                new Token(TOKEN_TYPE.BINARY_OPERATION, "+"),
                new Token(TOKEN_TYPE.VARIABLE, "3")
            };
            List <Token> actual = StringConverter.ConvertToTokensExpression(entry);

            Assert.AreEqual(true, CompareLists(expected, actual));
        }
コード例 #8
0
        static void Main(string[] args)
        {
            string mathExpression = Console.ReadLine();

            try
            {
                List <Token> tokensExpression = StringConverter.ConvertToTokensExpression(mathExpression);
                var          res = Calculator.CalculateExpression(tokensExpression);
                Console.WriteLine(res.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
コード例 #9
0
        public void TestMediumConvertToTokensExpression()
        {
            string       entry    = "(-2-3)*4";
            List <Token> expected = new List <Token>()
            {
                new Token(TOKEN_TYPE.OPENING_BRACKET, "("),
                new Token(TOKEN_TYPE.UNARY_OPERATION, "-"),
                new Token(TOKEN_TYPE.VARIABLE, "2"),
                new Token(TOKEN_TYPE.BINARY_OPERATION, "-"),
                new Token(TOKEN_TYPE.VARIABLE, "3"),
                new Token(TOKEN_TYPE.CLOSING_BRACKET, ")"),
                new Token(TOKEN_TYPE.BINARY_OPERATION, "*"),
                new Token(TOKEN_TYPE.VARIABLE, "4")
            };
            List <Token> actual = StringConverter.ConvertToTokensExpression(entry);

            Assert.AreEqual(true, CompareLists(expected, actual));
        }