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);
     }
 }
Example #4
0
        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));
        }
Example #5
0
        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));
        }
Example #6
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));
        }
Example #7
0
        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));
        }
Example #8
0
        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));
        }
Example #9
0
        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));
        }
Example #10
0
        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));
        }
Example #11
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);
        }
Example #13
0
        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);
        }
Example #14
0
        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);
        }
 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);
     }
 }
Example #18
0
        public bool Matches(IReader reader)
        {
            int lines;

            return(lineMatcher.Matches(reader, 0, out lines));
        }
 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);
     }
 }
Example #20
0
 public bool Matches(IReader reader, int offset, out int linesRead)
 {
     return(lineMatcher.Matches(reader, 0, out linesRead));
 }