public void TextNavigator_PeekString_1()
        {
            const string  text      = "ABC";
            TextNavigator navigator = new TextNavigator(text);

            Assert.AreEqual("AB", navigator.PeekString(2));
            navigator.ReadChar();
            Assert.AreEqual("BC", navigator.PeekString(2));
            navigator.ReadChar();
            Assert.AreEqual("C", navigator.PeekString(2));
            navigator.ReadChar();
            Assert.IsNull(navigator.PeekString(2));
        }
        public void TextNavigator_ReadUntil_3()
        {
            TextNavigator navigator = new TextNavigator("12345<.>");
            string        actual    = navigator.ReadUntil("<.>");

            Assert.AreEqual("12345", actual);
            Assert.AreEqual("<.>", navigator.PeekString(3));
            Assert.AreEqual("<.>", navigator.GetRemainingText());

            navigator = new TextNavigator("12345");
            actual    = navigator.ReadUntil("<.>");
            Assert.IsNull(actual);

            navigator = new TextNavigator("12345<");
            actual    = navigator.ReadUntil("<.>");
            Assert.IsNull(actual);

            navigator = new TextNavigator("12345<.");
            actual    = navigator.ReadUntil("<.>");
            Assert.IsNull(actual);

            navigator = new TextNavigator("12345<.6>");
            actual    = navigator.ReadUntil("<.>");
            Assert.IsNull(actual);

            navigator = new TextNavigator("12345<.>67890");
            actual    = navigator.ReadUntil("<.>");
            Assert.AreEqual("12345", actual);
            Assert.AreEqual("<.>", navigator.PeekString(3));
            Assert.AreEqual("<.>67890", navigator.GetRemainingText());

            navigator = new TextNavigator(string.Empty);
            Assert.IsNull(navigator.ReadUntil("<.>"));
        }