Skip to content

Commit e3881da

Browse files
committed
More if tests
1 parent f7b01cc commit e3881da

File tree

6 files changed

+71
-13
lines changed

6 files changed

+71
-13
lines changed

CodingSeb.ExpressionEvaluator.Tests/CodingSeb.ExpressionEvaluator.Tests.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@
9595
<ItemGroup>
9696
<None Include="Resources\Script0004.txt" />
9797
</ItemGroup>
98+
<ItemGroup>
99+
<None Include="Resources\Script0005.txt" />
100+
</ItemGroup>
98101
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
99102
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
100103
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

CodingSeb.ExpressionEvaluator.Tests/ExpressionEvaluatorScriptEvaluateTests.cs

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,38 @@ public static IEnumerable<TestCaseData> TestCasesForScriptEvaluateTests
2525
yield return new TestCaseData(Resources.Script0003 , null, true).SetCategory("Script").SetCategory("for").SetCategory("variable assignation").SetCategory("++").SetCategory("+=").Returns("0,1,2,3,4");
2626
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0003, "") , null, true).SetCategory("Script").SetCategory("for").SetCategory("variable assignation").SetCategory("++").SetCategory("+=").Returns("0,1,2,3,4");
2727

28-
// if else if else
28+
// if else else
2929
yield return new TestCaseData(Resources.Script0004.Replace("[valx]", "0").Replace("[valy]", "1") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
30-
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "0").Replace("[valy]", "1"), "").Replace("elseif", "else if") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
30+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "0").Replace("[valy]", "1"), "").Replace("else", "else ") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
3131
yield return new TestCaseData(Resources.Script0004.Replace("[valx]", "-1").Replace("[valy]", "1") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
32-
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "-1").Replace("[valy]", "1"), "").Replace("elseif", "else if"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
32+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "-1").Replace("[valy]", "1"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
3333
yield return new TestCaseData(Resources.Script0004.Replace("[valx]", "1").Replace("[valy]", "1") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
34-
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "1").Replace("[valy]", "1"), "").Replace("elseif", "else if"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
34+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "1").Replace("[valy]", "1"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
3535

3636
yield return new TestCaseData(Resources.Script0004.Replace("[valx]", "0").Replace("[valy]", "0") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(2);
37-
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "0").Replace("[valy]", "0"), "").Replace("elseif", "else if") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(2);
37+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "0").Replace("[valy]", "0"), "").Replace("else", "else ") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(2);
3838

3939
yield return new TestCaseData(Resources.Script0004.Replace("[valx]", "-1").Replace("[valy]", "0") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(3);
40-
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "-1").Replace("[valy]", "0"), "").Replace("elseif", "else if"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(3);
40+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "-1").Replace("[valy]", "0"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(3);
4141

4242
yield return new TestCaseData(Resources.Script0004.Replace("[valx]", "1").Replace("[valy]", "0") , null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(4);
43-
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "1").Replace("[valy]", "0"), "").Replace("elseif", "else if"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(4);
43+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0004.Replace("[valx]", "1").Replace("[valy]", "0"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(4);
44+
45+
yield return new TestCaseData(Resources.Script0005.Replace("[valx]", "0").Replace("[valy]", "1"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
46+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0005.Replace("[valx]", "0").Replace("[valy]", "1"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
47+
yield return new TestCaseData(Resources.Script0005.Replace("[valx]", "-1").Replace("[valy]", "1"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
48+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0005.Replace("[valx]", "-1").Replace("[valy]", "1"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
49+
yield return new TestCaseData(Resources.Script0005.Replace("[valx]", "1").Replace("[valy]", "1"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
50+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0005.Replace("[valx]", "1").Replace("[valy]", "1"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(1);
51+
52+
yield return new TestCaseData(Resources.Script0005.Replace("[valx]", "0").Replace("[valy]", "0"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(2);
53+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0005.Replace("[valx]", "0").Replace("[valy]", "0"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(2);
54+
55+
yield return new TestCaseData(Resources.Script0005.Replace("[valx]", "-1").Replace("[valy]", "0"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(3);
56+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0005.Replace("[valx]", "-1").Replace("[valy]", "0"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(3);
57+
58+
yield return new TestCaseData(Resources.Script0005.Replace("[valx]", "1").Replace("[valy]", "0"), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(4);
59+
yield return new TestCaseData(removeAllWhiteSpacesRegex.Replace(Resources.Script0005.Replace("[valx]", "1").Replace("[valy]", "0"), "").Replace("else", "else "), null, true).SetCategory("Script").SetCategory("if").SetCategory("variable assignation").Returns(4);
4460
}
4561
}
4662

CodingSeb.ExpressionEvaluator.Tests/Resources.Designer.cs

Lines changed: 27 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

CodingSeb.ExpressionEvaluator.Tests/Resources.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,4 +130,7 @@
130130
<data name="Script0004" type="System.Resources.ResXFileRef, System.Windows.Forms">
131131
<value>resources\script0004.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
132132
</data>
133+
<data name="Script0005" type="System.Resources.ResXFileRef, System.Windows.Forms">
134+
<value>resources\script0005.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;Windows-1252</value>
135+
</data>
133136
</root>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
x = [valx];
2+
y = [valy];
3+
result = 0;
4+
5+
if(y != 0)
6+
result = 1;
7+
else if(x == 0)
8+
result = 2;
9+
else if(x < 0)
10+
result = 3;
11+
else
12+
result = 4;
13+
14+
result;

CodingSeb.ExpressionEvaluator/ExpressionEvaluator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public class ExpressionEvaluator
3636
// For script only
3737
private static Regex variableAssignationRegex = new Regex(@"^(?<name>[a-zA-Z_][a-zA-Z0-9_]*)\s*(?<assignmentPrefix>[+\-*/%&|^]|<<|>>)?=(?![=>])");
3838
private static Regex blockKeywordsBeginningRegex = new Regex(@"^\s*(?<keyword>while|for|if|else\s+if)\s*[(]", RegexOptions.IgnoreCase);
39-
private static Regex elseblockKeywordsBeginningRegex = new Regex(@"^\s*(?<keyword>else)", RegexOptions.IgnoreCase);
39+
private static Regex elseblockKeywordsBeginningRegex = new Regex(@"^\s*(?<keyword>else)(?![a-zA-Z0-9_])", RegexOptions.IgnoreCase);
4040
private static Regex blockBeginningRegex = new Regex(@"^\s*[{]");
4141

4242
#endregion

0 commit comments

Comments
 (0)