public void testVisitFunctionExp() { setup("log(100)"); FunctionExpContext context = parser.expression() as FunctionExpContext; DoubleSpreadsheetVisitor visitor = new DoubleSpreadsheetVisitor(); double result = visitor.VisitFunctionExp(context); Assert.Equal(result, double.Parse("2")); }
public void testWrongVisitFunctionExp() { setup("logga(100)"); FunctionExpContext context = parser.expression() as FunctionExpContext; DoubleSpreadsheetVisitor visitor = new DoubleSpreadsheetVisitor(); double result = visitor.VisitFunctionExp(context); CommonTokenStream ts = (CommonTokenStream)parser.InputStream; // this is syntactically correct and would be true even for a good function Assert.Equal(SpreadsheetLexer.NAME, ts.Get(0).Type); Assert.Equal(null, errorListener.Symbol); // we choose to return 0 if we can't the find function with that NAME // so that's how we know is wrong Assert.Equal(0, result); }