11using System ;
22using System . Collections . Generic ;
3+ using System . IO ;
4+ using System . Linq ;
5+ using Pidgin ;
36using SimpleStateMachine . StructuralSearch . Extensions ;
47using SimpleStateMachine . StructuralSearch . Operator . Logical . Type ;
58using SimpleStateMachine . StructuralSearch . Parsing ;
@@ -12,7 +15,6 @@ public static class LogicalExpressionParserTests
1215{
1316 public static IEnumerable < string > StringCompareOperationCases ( )
1417 {
15- // var parameters = ["$var$", "\"123\"", "$var$.Len"]
1618 foreach ( var @operator in Enum . GetNames < StringCompareOperator > ( ) )
1719 {
1820 yield return $ "{ @operator } $var$";
@@ -89,21 +91,6 @@ public static void BinaryOperationParsingShouldBeSuccess(string input)
8991 {
9092 LogicalExpressionParser . BinaryOperation . ParseToEnd ( input ) ;
9193 }
92-
93- // public static IEnumerable<string> BinaryOperationCases()
94- // {
95- // foreach (var access in ParametersParserTests.PropertyAccessCases())
96- // {
97- // foreach (var VARIABLE in COLLECTION)
98- // {
99- //
100- // }
101- // yield return $"{@operator} $var$ Equals $var$";
102- // yield return $"{@operator} $var$ Equals $var$";
103- // yield return $"{@operator} $var$ Equals $var$";
104- // yield return $"{@operator} $var$ Equals $var$";
105- // }
106- // }
10794
10895 [ Theory ]
10996 [ InlineData ( "$var$ equals $var$" ) ]
@@ -131,42 +118,48 @@ public static void LogicalExpressionParsingShouldBeSuccess(string input)
131118 var result = operation . ToString ( ) ! ;
132119 Assert . Equal ( input . ToLower ( ) , result . ToLower ( ) ) ;
133120 }
134-
135- // [Theory]
136- // [InlineData("$var$ In \"Is\", \"==\", \"!=\", \"is not\"", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
137- // [InlineData("$var$ In (\"Is\", \"==\", \"!=\", \"is not\")", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
138- // [InlineData("$var$ In \"Is\",\"==\",\"!=\",\"is not\"", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
139- // [InlineData("$var$ In (\"Is\",\"==\",\"!=\",\"is not\")", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
140- // [InlineData("$var$ In(\"Is\",\"==\",\"!=\",\"is not\")", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
141- // [InlineData("$var$ In ( \"Is\",\"==\",\"!=\",\"is not\" ) ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
142- // [InlineData("$var$ In ( \"Is\",\"==\",\"!=\",\"is not\" )", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
143- // [InlineData("$var$ In ( \"Is\",\"==\",\"!=\",\"is not\") ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
144- // [InlineData("$var$ In (\"Is\",\"==\",\"!=\",\"is not\" ) ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
145- // [InlineData("$var$ In (\"Is\",\"==\",\"!=\",\"is not\" )", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
146- // [InlineData("$var$ In (\"Is\",\"==\",\"!=\",\"is not\") ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
147- // [InlineData("$var$ In( \"Is\",\"==\",\"!=\",\"is not\" ) ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
148- // [InlineData("$var$ In( \"Is\",\"==\",\"!=\",\"is not\" )", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
149- // [InlineData("$var$ In( \"Is\",\"==\",\"!=\",\"is not\") ", "$var$ In \"Is\",\"==\",\"!=\",\"is not\"")]
150- // [InlineData("Not ($var$ equals $var$.Length and $var$ StartsWith \"123\")", "Not $var$ equals $var$.Length and $var$ StartsWith \"123\"")]
151- // [InlineData("Not ($var$ equals $var$.Length)", "Not $var$ equals $var$.Length")]
152- // public static void FindRuleExprParsingShouldBeEqualsCustomResult(string ruleStr, string customResult)
153- // {
154- // var rule = LogicalExpressionParser.LogicalExpression.ParseOrThrow(ruleStr);
155- // var ruleAsStr = rule.ToString()?.ToLower();
156- // Assert.NotNull(rule);
157- // Assert.Equal(ruleAsStr, customResult.ToLower());
158- // }
159- //
160- // [Theory]
161- // [InlineData("FindRule/NullUnionOperator.txt", "$sign$ In \"is\",\"==\",\"!=\",\"is not\"")]
162- // [InlineData("FindRule/AssignmentNullUnionOperator.txt", "$sign$ In \"is\",\"==\",\"!=\",\"is not\"")]
163- // public static void FindRuleParsingFromFileShouldBeSuccess(string filePath, params string[] customResult)
164- // {
165- // var ruleStr = File.ReadAllText(filePath);
166- // var rules = ruleStr.Split(Constant.LineFeed)
167- // .Select(StructuralSearch.StructuralSearch.ParseFindRule);
168- // var rulesAsStr = rules.Select(x => x.ToString()).ToArray();
169- //
170- // Assert.True(customResult.SequenceEqual(rulesAsStr));
171- // }
121+
122+ [ Theory ]
123+ [ InlineData ( "$var$ Is int" , "$var$ Is int" ) ]
124+ [ InlineData ( "$var$ In \" Is\" , \" ==\" , \" !=\" , \" is not\" " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
125+ [ InlineData ( "$var$ In (\" Is\" , \" ==\" , \" !=\" , \" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
126+ [ InlineData ( "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
127+ [ InlineData ( "$var$ In \" Is\" , \" ==\" , \" !=\" , \" is not\" " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
128+ [ InlineData ( "$var$ In (\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
129+ [ InlineData ( "$var$ In(\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
130+ [ InlineData ( "$var$ In (\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
131+ [ InlineData ( "$var$ In ( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
132+ [ InlineData ( "$var$ In ( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
133+ [ InlineData ( "$var$ In ( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
134+ [ InlineData ( "$var$ In (\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
135+ [ InlineData ( "$var$ In (\" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
136+ [ InlineData ( "$var$ In( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
137+ [ InlineData ( "$var$ In( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" )" , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
138+ [ InlineData ( "$var$ In( \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" ) " , "$var$ In \" Is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
139+ [ InlineData ( "Not $var$ Is int" , "Not $var$ Is int" ) ]
140+ [ InlineData ( "$var$ equals $var$.Length" , "$var$ equals $var$.Length" ) ]
141+ [ InlineData ( "$var$ equals (\" 123\" )" , "$var$ equals (\" 123\" )" ) ]
142+ [ InlineData ( "Not $var$ equals $var$.Length" , "Not $var$ equals $var$.Length" ) ]
143+ [ InlineData ( "Not ($var$ equals $var$.Length)" , "Not ($var$ equals $var$.Length)" ) ]
144+ [ InlineData ( "Not ($var$ equals $var$.Length and $var$ StartsWith \" 123\" )" , "Not ($var$ equals $var$.Length and $var$ StartsWith \" 123\" )" ) ]
145+ public static void FindRuleExprParsingShouldBeEqualsCustomResult ( string ruleStr , string customResult )
146+ {
147+ var rule = LogicalExpressionParser . LogicalExpression . ParseOrThrow ( ruleStr ) ;
148+ var ruleAsStr = rule . ToString ( ) ? . ToLower ( ) ;
149+ Assert . NotNull ( rule ) ;
150+ Assert . Equal ( ruleAsStr , customResult . ToLower ( ) ) ;
151+ }
152+
153+ [ Theory ]
154+ [ InlineData ( "FindRule/NullUnionOperator.txt" , "$sign$ In \" is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
155+ [ InlineData ( "FindRule/AssignmentNullUnionOperator.txt" , "$sign$ In \" is\" ,\" ==\" ,\" !=\" ,\" is not\" " ) ]
156+ public static void FindRuleParsingFromFileShouldBeSuccess ( string filePath , params string [ ] customResult )
157+ {
158+ var ruleStr = File . ReadAllText ( filePath ) ;
159+ var rules = ruleStr . Split ( Constant . LineFeed )
160+ . Select ( Parsing . StructuralSearch . ParseFindRule ) ;
161+ var rulesAsStr = rules . Select ( x => x . ToString ( ) ) . ToArray ( ) ;
162+
163+ Assert . True ( customResult . SequenceEqual ( rulesAsStr ) ) ;
164+ }
172165}
0 commit comments