public void BasicTests() { ParsingHelper helper = new ParsingHelper(ShortTest); // Initial state Assert.AreEqual('\0', ParsingHelper.NullChar); Assert.AreEqual(ShortTest, helper.Text); Assert.AreEqual(0, helper.Index); Assert.AreEqual(false, helper.EndOfText); Assert.AreEqual(ShortTest.Length, helper.Remaining); // Peek Assert.AreEqual('F', helper.Peek()); Assert.AreEqual('o', helper.Peek(1)); Assert.AreEqual('u', helper.Peek(2)); Assert.AreEqual('r', helper.Peek(3)); Assert.AreEqual(ParsingHelper.NullChar, helper.Peek(1000)); Assert.AreEqual(ParsingHelper.NullChar, helper.Peek(-1000)); Assert.AreEqual(0, helper.Index); // Get Assert.AreEqual('F', helper.Get()); Assert.AreEqual('o', helper.Get()); Assert.AreEqual('u', helper.Get()); Assert.AreEqual('r', helper.Get()); Assert.AreEqual(4, helper.Index); helper.Index = ShortTest.Length; Assert.AreEqual(ParsingHelper.NullChar, helper.Get()); // Next helper.Reset(); helper.Next(); Assert.AreEqual(1, helper.Index); Assert.AreEqual('o', helper.Peek()); helper.Next(2); Assert.AreEqual(3, helper.Index); Assert.AreEqual('r', helper.Peek()); helper.Next(-2); Assert.AreEqual(1, helper.Index); Assert.AreEqual('o', helper.Peek()); Assert.AreEqual(false, helper.EndOfText); Assert.AreEqual(ShortTest.Length - helper.Index, helper.Remaining); helper.Next(10000); Assert.AreEqual(helper.Text.Length, helper.Index); Assert.AreEqual(true, helper.EndOfText); Assert.AreEqual(0, helper.Remaining); helper.Next(-10000); Assert.AreEqual(0, helper.Index); Assert.AreEqual(false, helper.EndOfText); Assert.AreEqual(ShortTest.Length, helper.Remaining); helper.Index = 10000; Assert.AreEqual(ShortTest.Length, helper.Index); Assert.AreEqual(true, helper.EndOfText); Assert.AreEqual(0, helper.Remaining); helper.Index = -10000; Assert.AreEqual(0, helper.Index); Assert.AreEqual(false, helper.EndOfText); Assert.AreEqual(ShortTest.Length, helper.Remaining); helper.Index = 0; Assert.AreEqual(0, helper.Index); Assert.AreEqual(ShortTest.Length, helper.Remaining); Assert.AreEqual(false, helper.EndOfText); helper.Index = helper.Text.Length; Assert.AreEqual(helper.Text.Length, helper.Index); Assert.AreEqual(0, helper.Remaining); Assert.AreEqual(true, helper.EndOfText); helper.Index = 5; Assert.AreEqual(5, helper.Index); Assert.AreEqual(ShortTest.Length - 5, helper.Remaining); Assert.AreEqual(false, helper.EndOfText); helper.Reset(); Assert.AreEqual(0, helper.Index); Assert.AreEqual(ShortTest, helper.Text); helper.Reset(null); Assert.AreEqual(0, helper.Index); Assert.AreEqual(string.Empty, helper.Text); Assert.AreEqual(true, helper.EndOfText); Assert.AreEqual(0, helper.Remaining); }