Ejemplo n.º 1
0
        public void TestSrqtExpressions(string expression, double expectedResult)
        {
            Setup(expression);

            CalcParser.ExpressionContext context = this._calcParser.expression();

            CalcVisitor visitor = new CalcVisitor();
            Argument    result  = visitor.Visit(context);

            Assert.AreEqual(expectedResult, result.ToDouble());
        }
Ejemplo n.º 2
0
        public TroubleshootTests(ITestOutputHelper testoutputHelper)
        {
            this.logger = testoutputHelper;

            this.writer = s =>
            {
                Trace.WriteLine(s);
                logger.WriteLine(s.ToString());
            };

            this.visitor = new CalcVisitor(writer);
        }
Ejemplo n.º 3
0
        public void TestIntegerComplexExpressions(string expression, int expectedResult)
        {
            Setup(expression);

            CalcParser.ExpressionContext context = this._calcParser.expression();

            CalcVisitor visitor = new CalcVisitor();
            Argument    result  = visitor.Visit(context);

            Assert.True(result.IsInteger);
            Assert.AreEqual(expectedResult, result.ToInteger());
        }
Ejemplo n.º 4
0
        public Value CalculateFormula(string formula)
        {
            AntlrInputStream  input  = new AntlrInputStream(formula); //2. parse is to AntlrIS
            calculatorLexer   lexer  = new calculatorLexer(input);    //3. lexer created from AntlrIS
            CommonTokenStream tokens = new CommonTokenStream(lexer);  //4. want to save tokens from the lexer
            calculatorParser  parser = new calculatorParser(tokens);  //5. feed these tokens from lexer when creating the parser
            IParseTree        tree   = parser.block();                //6. run parser using parser.prog() and save output in IParseTree
            //Console.WriteLine(tree.ToStringTree(parser));           //7.
            CalcVisitor visitor = new CalcVisitor();                  //8. CalcVisitor will do the evaluations
            Value       ret     = visitor.Visit(tree.GetChild(0));

            //Console.WriteLine(ret);             //z. CalcVisitor performs the actual evaluations + then write output
            return(ret);
        }
Ejemplo n.º 5
0
        public void TestDateExpressionsWithDateResult(string expression, string expectedResult)
        {
            Setup(expression);

            CalcParser.ExpressionContext context = this._calcParser.expression();

            CalcVisitor visitor = new CalcVisitor();
            Argument    result  = visitor.Visit(context);

            Assert.True(result.IsDate);
            Assert.False(result.IsInteger);
            Assert.False(result.IsDouble);
            Assert.IsNotNull(result.ToDate());
            Assert.AreEqual(expectedResult, result.ToDate().Value.ToString("yyyy-MM-dd"));
        }