public void match_methods_must_set_an_error()
        {
            var m = new VirtualStringMatcher(new FakeVirtualString("A"));

            CheckMatchError(m, () => m.MatchChar('B'));
            CheckMatchError(m, () => m.MatchInt32(out int i));
            CheckMatchError(m, () => m.MatchText("PP"));
            CheckMatchError(m, () => m.MatchText("B"));
            CheckMatchError(m, () => m.MatchWhiteSpaces());
        }
        public void matching_texts_and_whitespaces()
        {
            FakeVirtualString v = new FakeVirtualString(" AB  \t\r C");
            var    m            = new VirtualStringMatcher(v);
            Action a;

            m.MatchText("A").Should().BeFalse();
            m.StartIndex.Should().Be(0);
            m.MatchWhiteSpaces().Should().BeTrue();
            m.StartIndex.Should().Be(1);
            m.MatchText("A").Should().BeTrue();
            m.MatchText("B").Should().BeTrue();
            m.StartIndex.Should().Be(3);
            m.MatchWhiteSpaces(6).Should().BeFalse();
            m.MatchWhiteSpaces(5).Should().BeTrue();
            m.StartIndex.Should().Be(8);
            m.MatchWhiteSpaces().Should().BeFalse();
            m.StartIndex.Should().Be(8);
            m.MatchText("c").Should().BeTrue();
            m.StartIndex.Should().Be(v.Length);
            m.IsEnd.Should().BeTrue();

            a = () => m.MatchText("c"); a.ShouldNotThrow();
            a = () => m.MatchWhiteSpaces(); a.ShouldNotThrow();
            m.MatchText("A").Should().BeFalse();
            m.MatchWhiteSpaces().Should().BeFalse();
        }