public void TextNavigator_Move_1() { const string text = "ABC"; TextNavigator navigator = new TextNavigator(text); Assert.AreSame(navigator, navigator.Move(2)); Assert.AreEqual(2, navigator.Position); Assert.AreSame(navigator, navigator.Move(-2)); Assert.AreEqual(0, navigator.Position); }
public void TextNavigator_ReadWord_1() { TextNavigator navigator = new TextNavigator("Hello, world!"); Assert.AreEqual("Hello", navigator.ReadWord()); Assert.AreEqual(string.Empty, navigator.ReadWord()); navigator.Move(2); Assert.AreEqual("world", navigator.ReadWord()); Assert.AreEqual(string.Empty, navigator.ReadWord()); navigator.Move(2); Assert.IsNull(navigator.ReadWord()); }
public void TextNavigator_ReadWord_2() { char[] additional = { '<', '>' }; TextNavigator navigator = new TextNavigator("<Hello>, world!"); Assert.AreEqual("<Hello>", navigator.ReadWord(additional)); Assert.AreEqual(string.Empty, navigator.ReadWord(additional)); navigator.Move(2); Assert.AreEqual("world", navigator.ReadWord(additional)); Assert.AreEqual(string.Empty, navigator.ReadWord(additional)); navigator.Move(2); Assert.IsNull(navigator.ReadWord(additional)); }
public void TextNavigator_RecentText_1() { TextNavigator navigator = new TextNavigator("Hello, world!"); Assert.AreEqual(string.Empty, navigator.RecentText(4)); navigator.Move(4); Assert.AreEqual(string.Empty, navigator.RecentText(-1)); Assert.AreEqual("Hell", navigator.RecentText(4)); navigator.Move(9); Assert.AreEqual("rld!", navigator.RecentText(4)); Assert.AreEqual("Hello, world!", navigator.RecentText(20)); navigator.Move(9); Assert.AreEqual(string.Empty, navigator.RecentText(1)); }
public void TextNavigator_SkipWhile_1() { TextNavigator navigator = new TextNavigator("111ABC"); Assert.IsTrue(navigator.SkipWhile('1')); Assert.AreEqual('A', navigator.ReadChar()); navigator.Move(2); Assert.IsFalse(navigator.SkipWhile('1')); }
public void TextNavigator_SkipRange_1() { TextNavigator navigator = new TextNavigator("123ABC"); Assert.IsTrue(navigator.SkipRange('0', '9')); Assert.AreEqual('A', navigator.ReadChar()); navigator.Move(2); Assert.IsFalse(navigator.SkipRange('0', '9')); }
public void TextNavigator_SkipPunctuation_1() { TextNavigator navigator = new TextNavigator(".,ABC"); Assert.IsTrue(navigator.SkipPunctuation()); Assert.AreEqual('A', navigator.ReadChar()); navigator.Move(2); Assert.IsFalse(navigator.SkipPunctuation()); }
public void TextNavigator_SkipControl_1() { TextNavigator navigator = new TextNavigator("\t\tABC"); Assert.IsTrue(navigator.SkipControl()); Assert.AreEqual('A', navigator.ReadChar()); navigator.Move(2); Assert.IsFalse(navigator.SkipControl()); }
public void TextNavigator_ReadWhile_1() { TextNavigator navigator = new TextNavigator("111234"); Assert.AreEqual("111", navigator.ReadWhile('1')); Assert.AreEqual(string.Empty, navigator.ReadWhile('1')); navigator.Move(3); Assert.IsNull(navigator.ReadWhile('1')); }
public void TextNavigator_SkipWhile_2() { char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; TextNavigator navigator = new TextNavigator("314ABC"); Assert.IsTrue(navigator.SkipWhile(digits)); Assert.AreEqual('A', navigator.ReadChar()); navigator.Move(2); Assert.IsFalse(navigator.SkipWhile(digits)); }
public void TextNavigator_ReadWhile_2() { const string text1 = "314abc"; char[] good = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' }; TextNavigator navigator = new TextNavigator(text1); Assert.AreEqual("314", navigator.ReadWhile(good)); Assert.AreEqual(string.Empty, navigator.ReadWhile(good)); navigator.Move(3); Assert.IsNull(navigator.ReadWhile(good)); }
public void TextNavigator_PeekUntil_1() { const string text = "ABC]DEF"; TextNavigator navigator = new TextNavigator(text); Assert.AreEqual("ABC", navigator.PeekUntil(']')); navigator.ReadChar(); Assert.AreEqual("BC", navigator.PeekUntil(']')); navigator.ReadChar(); navigator.ReadChar(); Assert.AreEqual(string.Empty, navigator.PeekUntil(']')); navigator.ReadChar(); Assert.AreEqual("DEF", navigator.PeekUntil(']')); navigator.Move(3); Assert.IsNull(navigator.PeekUntil(']')); }
public void TextNavigator_PeekUntil_2() { const string text = "ABC]DE+F"; char[] stop = { ']', '+' }; TextNavigator navigator = new TextNavigator(text); Assert.AreEqual("ABC", navigator.PeekUntil(stop)); navigator.ReadChar(); Assert.AreEqual("BC", navigator.PeekUntil(stop)); navigator.ReadChar(); navigator.ReadChar(); Assert.AreEqual(string.Empty, navigator.PeekUntil(stop)); navigator.ReadChar(); Assert.AreEqual("DE", navigator.PeekUntil(stop)); navigator.Move(3); Assert.AreEqual("F", navigator.PeekUntil(stop)); navigator.ReadChar(); Assert.IsNull(navigator.PeekUntil(stop)); }