private void AssertDoesNotMatch(ILineMatcher matcher, IReader reader, params int[] args) { foreach (int i in args) { int lines; Assert.That(matcher.Matches(reader, i, out lines), Is.False, "{0} offset {1}: read {2} lines", reader, i, lines); } }
private void AssertMatches(ILineMatcher matcher, params string[] args) { foreach (string line in args) { Reader reader = Reader.CreateStringReader(line); int lines; Assert.That(matcher.Matches(reader, 0, out lines), Is.True, "Line: '{0}'", line); } }
private void AssertDoesNotMatch(ILineMatcher matcher, params string[] args) { foreach (string line in args) { Reader reader = Reader.CreateStringReader(line); int lines; Assert.That(matcher.Matches(reader, 0, out lines), Is.False, line); } }
public void RepeatLines() { ILineMatcher repeat = Line.Repeat(Line.Any()).Until(Line.Contains("Stop")); Reader reader = Reader.CreateStringReader("One\nTwo\nThree\nStop\nFour"); int linesRead; Assert.That(repeat.Matches(reader, 0, out linesRead), Is.True); Assert.That(linesRead, Is.EqualTo(3)); }
public void ImmediateStop() { ILineMatcher repeat = Line.Repeat(Line.Any()).Until(Line.Contains("Stop")); Reader reader = Reader.CreateStringReader("Stop\nOne\nTwo"); int linesRead; Assert.That(repeat.Matches(reader, 0, out linesRead), Is.False); Assert.That(linesRead, Is.EqualTo(0)); }
public void TwoLines() { ILineMatcher multiple = Line.Multiple(Line.IsEqual("One"), Line.IsEqual("Two")); Reader reader = Reader.CreateStringReader("One\nTwo\nThree\nStop\nFour"); int linesRead; Assert.That(multiple.Matches(reader, 0, out linesRead), Is.True); Assert.That(linesRead, Is.EqualTo(2)); }
public void OptionalMissingFollowing() { ILineMatcher repeat = Line.Multiple(Line.Optional(Line.Contains("Stop")), Line.IsEqual("One")); Reader reader = Reader.CreateStringReader("One\nTwo"); int linesRead; Assert.That(repeat.Matches(reader, 0, out linesRead), Is.True); Assert.That(linesRead, Is.EqualTo(1)); }
public void NoStop() { ILineMatcher repeat = Line.Multiple(Line.Repeat(Line.Any()).Until(Line.Contains("Stop"))); Reader reader = Reader.CreateStringReader("One\nTwo"); int linesRead; Assert.That(repeat.Matches(reader, 0, out linesRead), Is.True); Assert.That(linesRead, Is.EqualTo(2)); }
public void RepeatUntilWithLines() { ILineMatcher multiple = Line.Multiple(Line.Repeat(Line.Any()).Until(Line.Contains("Stop")), Line.Contains("Stop")); Reader reader = Reader.CreateStringReader("One\nTwo\nStop\nThree"); int linesRead; Assert.That(multiple.Matches(reader, 0, out linesRead), Is.True); Assert.That(linesRead, Is.EqualTo(3)); }
public void DoesNotMatchWithLateFollowing() { ILineMatcher followedBy = Line.FollowedBy(Line.Contains("Marker"), Line.Contains("Follow")); Reader reader = Reader.CreateStringReader("Marker\nMore\nFollow"); int linesRead; Assert.That(followedBy.Matches(reader, 0, out linesRead), Is.False); Assert.That(linesRead, Is.EqualTo(0)); }
public void MatchingWithFollowingLine() { ILineMatcher followedBy = Line.FollowedBy(Line.Contains("Marker"), Line.Contains("Follow")); Reader reader = Reader.CreateStringReader("Marker\nFollow\nMore"); int linesRead; Assert.That(followedBy.Matches(reader, 0, out linesRead), Is.True); Assert.That(linesRead, Is.EqualTo(1)); }
public bool Matches(IReader reader, int offset, out int linesRead) { int optionalLines; if (lineMatcher.Matches(reader, offset, out optionalLines)) { linesRead = optionalLines; return(true); } linesRead = 0; return(true); }
public bool Matches(IReader reader, int offset, out int linesRead) { int primarylines; int secondarylines; if (primary.Matches(reader, offset, out primarylines) && secondary.Matches(reader, offset, out secondarylines)) { linesRead = Math.Max(primarylines, secondarylines); return(true); } linesRead = 0; return(false); }
public bool Matches(IReader reader, int offset, out int linesRead) { int lines; if (line.Matches(reader, offset, out lines)) { int followLines; if (followedBy.Matches(reader, offset + lines, out followLines)) { linesRead = lines; return(true); } } linesRead = 0; return(false); }
public bool Matches(IReader reader, int offset, out int linesRead) { int totalLinesRead = 0; int currentLinesRead; int currentOffset = offset; bool nextLine = true; while (nextLine & (until == null || !until.Matches(reader, currentOffset, out currentLinesRead))) { nextLine = lineMatcher.Matches(reader, currentOffset, out currentLinesRead); if (nextLine) { totalLinesRead += currentLinesRead; currentOffset += currentLinesRead; } } linesRead = totalLinesRead; return(linesRead > 0); }
public bool Matches(IReader reader) { int lines; return(lineMatcher.Matches(reader, 0, out lines)); }
public bool Matches(IReader reader, int offset, out int linesRead) { return(lineMatcher.Matches(reader, 0, out linesRead)); }