public void Group_Gr_Eq() { //>, = string expr = ">="; List <ExprToken> listTokens = TestCommon.AddTokens(">", "="); List <string> listSpecialOperators = new List <string>(); listSpecialOperators.Add("<>"); listSpecialOperators.Add(">="); listSpecialOperators.Add("<="); ExprScanner parser = new ExprScanner(); ExpressionEvalConfig evalConfig = TestCommon.BuildDefaultConfig(); parser.SetConfiguration(evalConfig); List <ExprToken> listTokensGrp = parser.GroupTokens(expr, listTokens); Assert.AreEqual(1, listTokensGrp.Count, expr + " should contains 1 token"); Assert.AreEqual(">=", listTokensGrp[0].Value, expr + " should contains 1 '>='"); Assert.AreEqual(0, listTokensGrp[0].Position, expr + " should contains 1 '>='"); }
public void TwoSpace() { ExprScanner parser = new ExprScanner(); string expr = " "; List <ExprToken> listTokens = parser.SplitExpr(expr); Assert.AreEqual(0, listTokens.Count, expr + " should contains 0 tokens"); }
public void Spc_BrO_Spc() { ExprScanner scanner = new ExprScanner(); TestCommon.BuildDefaultConfig(scanner); string expr = " ( "; List <ExprToken> listTokens = scanner.SplitExpr(expr); Assert.AreEqual(1, listTokens.Count, expr + " should contains 1 token"); Assert.AreEqual("(", listTokens[0].Value); }
public void Spc_Minus_Spc_12_Spc() { ExprScanner scanner = new ExprScanner(); TestCommon.BuildDefaultConfig(scanner); string expr = " - 12 "; List <ExprToken> listTokens = scanner.SplitExpr(expr); Assert.AreEqual(2, listTokens.Count, expr + " should contains 2 tokens"); Assert.AreEqual("-", listTokens[0].Value); Assert.AreEqual("12", listTokens[1].Value); }
public void A_STR_QsQ_STR_c() { ExprScanner scanner = new ExprScanner(); TestCommon.BuildDefaultConfig(scanner); string expr = "a \"s\" c"; List <ExprToken> listTokens = scanner.SplitExpr(expr); Assert.AreEqual(3, listTokens.Count, expr + " should contains 3 tokens"); Assert.AreEqual("a", listTokens[0].Value); Assert.AreEqual("\"s\"", listTokens[1].Value); Assert.AreEqual("c", listTokens[2].Value); }
public void Group_a_Plus_Minus_12() { ExprScanner scanner = new ExprScanner(); TestCommon.BuildDefaultConfig(scanner); string expr = "a+-12"; List <ExprToken> listTokens = scanner.SplitExpr(expr); List <ExprToken> listTokensGrp = scanner.GroupTokens(expr, listTokens); Assert.AreEqual(3, listTokensGrp.Count, expr + " should contains 3 grouped tokens"); Assert.AreEqual("a", listTokensGrp[0].Value); Assert.AreEqual("+", listTokensGrp[1].Value); Assert.AreEqual("-12", listTokensGrp[2].Value); }
public static void BuildDefaultConfig(ExprScanner scanner) { // configure ExpressionEvalConfig exprEvalConfig = new ExpressionEvalConfig(); exprEvalConfig.SetLang(Language.En); exprEvalConfig.SetStringTagCode(StringTagCode.DoubleQuote); ExprOperatorBuilder operatorsBuilder = new ExprOperatorBuilder(); operatorsBuilder.BuildOperators(exprEvalConfig); //ExpressionEvalConfig evalConfig = new ExpressionEvalConfig(); //scanner.SetListSpecial2CharOperators(exprEvalConfig.ListSpecial2CharOperators); scanner.SetConfiguration(exprEvalConfig); }
public void DontGroup_Gr_Ls() { //>, = string expr = ">="; List <ExprToken> listTokens = TestCommon.AddTokens(">", "<"); ExpressionEvalConfig exprOperators = TestCommon.BuildDefaultConfig(); ExpressionEvalConfig evalConfig = new ExpressionEvalConfig(); ExprScanner parser = new ExprScanner(); parser.SetConfiguration(evalConfig); List <ExprToken> listTokensGrp = parser.GroupTokens(expr, listTokens); Assert.AreEqual(2, listTokens.Count, expr + " should contains 2 tokens"); }
public void A_Gt_B() { ExprScanner scanner = new ExprScanner(); TestCommon.BuildDefaultConfig(scanner); string expr = "(A>B)"; List <ExprToken> listTokens = scanner.SplitExpr(expr); Assert.AreEqual(5, listTokens.Count, expr + " should contains 5 tokens"); Assert.AreEqual("(", listTokens[0].Value); Assert.AreEqual("A", listTokens[1].Value); Assert.AreEqual(">", listTokens[2].Value); Assert.AreEqual("B", listTokens[3].Value); Assert.AreEqual(")", listTokens[4].Value); }
public void Spc_A__Spc_Lt_Spc_Eq_Spc_B_Spc() { ExprScanner scanner = new ExprScanner(); TestCommon.BuildDefaultConfig(scanner); string expr = "( A < = B )"; List <ExprToken> listTokens = scanner.SplitExpr(expr); Assert.AreEqual(6, listTokens.Count, expr + " should contains 6 tokens"); Assert.AreEqual("(", listTokens[0].Value); Assert.AreEqual("A", listTokens[1].Value); Assert.AreEqual("<", listTokens[2].Value); Assert.AreEqual("=", listTokens[3].Value); Assert.AreEqual("B", listTokens[4].Value); Assert.AreEqual(")", listTokens[5].Value); }
public void Fct_OneParam() { ExprScanner scanner = new ExprScanner(); TestCommon.BuildDefaultConfig(scanner); string expr = "( fct(a))"; List <ExprToken> listTokens = scanner.SplitExpr(expr); Assert.AreEqual(6, listTokens.Count, expr + " should contains 6 tokens"); Assert.AreEqual("(", listTokens[0].Value); Assert.AreEqual("fct", listTokens[1].Value); Assert.AreEqual("(", listTokens[2].Value); Assert.AreEqual("a", listTokens[3].Value); Assert.AreEqual(")", listTokens[4].Value); Assert.AreEqual(")", listTokens[5].Value); }
public void A_STR_s_c() { ExprScanner scanner = new ExprScanner(); // todo: parametriser stringtag: Quote ou DoubleQuote ExpressionEvalConfig config = TestCommon.BuildDefaultConfig(); config.SetStringTagCode(StringTagCode.Quote); scanner.SetConfiguration(config); string expr = "a 's c"; List <ExprToken> listTokens = scanner.SplitExpr(expr); Assert.AreEqual(2, listTokens.Count, expr + " should contains 2 tokens"); Assert.AreEqual("a", listTokens[0].Value); Assert.AreEqual("'s c", listTokens[1].Value); }
public void A_STR_s_s_s_STR_c() { ExpressionEvalConfig config = TestCommon.BuildDefaultConfig(); config.SetStringTagCode(StringTagCode.Quote); ExprScanner scanner = new ExprScanner(); scanner.SetConfiguration(config); string expr = "a 's s s' c"; List <ExprToken> listTokens = scanner.SplitExpr(expr); Assert.AreEqual(3, listTokens.Count, expr + " should contains 3 tokens"); Assert.AreEqual("a", listTokens[0].Value); Assert.AreEqual("'s s s'", listTokens[1].Value); Assert.AreEqual("c", listTokens[2].Value); }
public void Group_Bra_A_Gr_Eq_B_Bra() { //>, = string expr = ">="; List <ExprToken> listTokens = TestCommon.AddTokens("(", "A", ">"); TestCommon.AddTokens(listTokens, "=", "B", ")"); ExprScanner parser = new ExprScanner(); ExpressionEvalConfig evalConfig = TestCommon.BuildDefaultConfig(); parser.SetConfiguration(evalConfig); List <ExprToken> listTokensGrp = parser.GroupTokens(expr, listTokens); Assert.AreEqual(5, listTokensGrp.Count, expr + " should contains 5 tokens"); Assert.AreEqual(">=", listTokensGrp[2].Value, expr + " should contains '>='"); }
public void Fct_TwoParam() { ExprScanner scanner = new ExprScanner(); TestCommon.BuildDefaultConfig(scanner); // todo: seulement si le parametre FunctionCallAvailable est à true!! // et si le separator est défini a std (DoubleAndFunctionCallParameterSeparator= Std) string expr = "( fct(a,b))"; List <ExprToken> listTokens = scanner.SplitExpr(expr); Assert.AreEqual(8, listTokens.Count, expr + " should contains 8 tokens"); Assert.AreEqual("(", listTokens[0].Value); Assert.AreEqual("fct", listTokens[1].Value); Assert.AreEqual("(", listTokens[2].Value); Assert.AreEqual("a", listTokens[3].Value); Assert.AreEqual(",", listTokens[4].Value); Assert.AreEqual("b", listTokens[5].Value); Assert.AreEqual(")", listTokens[6].Value); Assert.AreEqual(")", listTokens[7].Value); }