public void GetLinesFromInclusiveSetBlockTest() { var input = "\0"; var visitor1 = new BuilderRegexVisitor(0, input, null, null); var inclusiveSetBlock = new InclusiveSetBlock("abc"); string[] expectedLines = new string[] { "a", "b", "c" }; CheckVisitorResult(visitor1, inclusiveSetBlock, expectedLines); input = "a"; var visitor2 = new BuilderRegexVisitor(0, input, null, null); expectedLines = new string[] { "a" }; CheckVisitorResult(visitor2, inclusiveSetBlock, expectedLines); }
public void GetLinesFromBackreferenceBlockTest() { Dictionary<int, string> groupValues = new Dictionary<int,string>(); var input = "\0\0'"; int groupId = 1; var visitor1 = new BuilderRegexVisitor(0, input, groupValues, null); groupValues[groupId] = "ab"; var backreferenceBlock = new BackreferenceBlock(groupId); string[] expectedLines = new string[] { "ab" }; CheckVisitorResult(visitor1, backreferenceBlock, expectedLines); groupValues[groupId] = "abc"; var visitor2 = new BuilderRegexVisitor(0, input, groupValues, null); CheckVisitorResult(visitor2, backreferenceBlock, Enumerable.Empty<string>()); }
public void GetLinesFromAnyCharacterBlockTest() { var input = "\0"; var visitor1 = new BuilderRegexVisitor(0, input, null, null); var block = new AnyCharacterBlock(); var expectedLines = new List<string>(); for (char c = 'a'; c < 'z'; c++) expectedLines.Add(c.ToString()); CheckVisitorResult(visitor1, block, expectedLines); input = "a"; var visitor2 = new BuilderRegexVisitor(0, input, null, null); CheckVisitorResult(visitor2, block, new[] { "a" }); }
public void GetLinesFromExclusiveSetBlockTest() { var input = "\0"; var visitor1 = new BuilderRegexVisitor(0, input, null, null); var characters = "abc"; var exclusiveSetBlock = new ExclusiveSetBlock(characters); List<string> expectedLines = new List<string>(); for (char c = 'a'; c < 'z'; c++) { if (characters.IndexOf(c) == -1) expectedLines.Add(c.ToString()); } CheckVisitorResult(visitor1, exclusiveSetBlock, expectedLines); input = "a"; var visitor2 = new BuilderRegexVisitor(0, input, null, null); CheckVisitorResult(visitor2, exclusiveSetBlock, Enumerable.Empty<string>()); input = "d"; var visitor3 = new BuilderRegexVisitor(0, input, null, null); CheckVisitorResult(visitor3, exclusiveSetBlock, new[] { "d" }); }
private void CheckVisitorResult(BuilderRegexVisitor visitor, RegexBlock block, IEnumerable<string> expectedLines) { visitor.Visit(block); var lines = visitor.Result; CollectionAssert.AreEquivalent(expectedLines.ToList(), lines.ToList()); }
public void GetLinesFromTextBlockTest() { var visitor1 = new BuilderRegexVisitor(0, "\0", null, null); var textBlock = new TextBlock("a"); CheckVisitorResult(visitor1, textBlock, new[] { "a" }); var visitor2 = new BuilderRegexVisitor(1, "\0", null, null); CheckVisitorResult(visitor2, textBlock, Enumerable.Empty<string>()); // Text block longer than symbols that remain unfilled. textBlock = new TextBlock("aa"); var visitor3 = new BuilderRegexVisitor(0, "\0", null, null); CheckVisitorResult(visitor3, textBlock, Enumerable.Empty<string>()); var input = "aa"; var visitor4 = new BuilderRegexVisitor(0, input, null, null); CheckVisitorResult(visitor4, textBlock, new[] { "aa" }); var visitor5 = new BuilderRegexVisitor(0, input, null, null); textBlock = new TextBlock("ab"); CheckVisitorResult(visitor5, textBlock, Enumerable.Empty<string>()); }