예제 #1
0
        public void CanReadName_AutomaticlyMakesAnInitialReadOnStart()
        {
            var input = new StringReader("so-me_na:me other text");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.AreEqual("so-me_na:me", reader.ReadName());
            Assert.AreEqual(11, reader.Index);
        }
예제 #2
0
        public void CanReadName()
        {
            var input = new StringReader("so-me_na:me other text");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.True(reader.Read());

            Assert.AreEqual("so-me_na:me", reader.ReadName());
            Assert.AreEqual(11,reader.Index);
        }
예제 #3
0
        public void CanReadLineWithIndent()
        {
            var input = new StringReader("  ab");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.True(reader.Read());
            Assert.AreEqual('a', reader.CurrentChar);
            Assert.AreEqual(0, reader.LineNumber);
            Assert.AreEqual(2, reader.Index);
            Assert.True(reader.Read());
            Assert.AreEqual('b', reader.CurrentChar);
            Assert.AreEqual(0, reader.LineNumber);
            Assert.AreEqual(3, reader.Index);
            Assert.False(reader.Read());
        }
예제 #4
0
        public void CanReadNextLineAndReadIfEndOfStream()
        {
            var input = new StringReader("a\n  bc\nd");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.True(reader.Read());
            Assert.AreEqual('a', reader.CurrentChar);
            Assert.False(reader.Read());
            Assert.True(reader.ReadNextLineAndReadIfEndOfStream());
            Assert.AreEqual('b', reader.CurrentChar);
            Assert.True(reader.Read());
            Assert.AreEqual('c', reader.CurrentChar);
            Assert.False(reader.Read());
            Assert.False(reader.Read());
            Assert.True(reader.ReadNextLineAndReadIfEndOfStream());
            Assert.AreEqual('d', reader.CurrentChar);
            Assert.False(reader.Read());
            Assert.False(reader.ReadNextLineAndReadIfEndOfStream());
            Assert.False(reader.Read());
        }
예제 #5
0
        public void CanReadToEnd()
        {
            var input = new StringReader("abc\nxyz");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.True(reader.Read());
            Assert.True(reader.Read()); // skip first char
            Assert.AreEqual("bc", reader.ReadToEnd());
            Assert.AreEqual(0,reader.LineNumber);
            Assert.AreEqual(3,reader.Index);
        }
예제 #6
0
        public void CanReadOnlyOneChar()
        {
            var input = new StringReader("a");
            var reader = new InputReader(input);

            Assert.True(reader.ReadNextLine());
            Assert.True(reader.Read());
            Assert.AreEqual('a',reader.CurrentChar);
            Assert.False(reader.Read());
        }
예제 #7
0
        public void EmptyStringReturnReadFalse()
        {
            var input = new StringReader("");
            var reader = new InputReader(input);
            reader.ReadNextLine();

            Assert.False(reader.Read());
        }
예제 #8
0
        public void CanReadWithSkiplist_AutomaticlyMakesAnInitialReadOnStart()
        {
            var input = new StringReader("abcdef");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.True(reader.Skip("ab"));
            Assert.AreEqual('c', reader.CurrentChar);
            Assert.AreEqual(2, reader.Index);
        }
예제 #9
0
        public void CanReadWithSkiplist()
        {
            var input = new StringReader("abcdef");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());
            Assert.True(reader.Read());

            Assert.True(reader.Read());
            Assert.True(reader.Skip("bc"));
            Assert.AreEqual('d', reader.CurrentChar);
            Assert.AreEqual(3, reader.Index);
        }
예제 #10
0
        public void CanReadWhiteSpaces_AutomaticlyMakesAnInitialReadOnStart()
        {
            var input = new StringReader("  abc");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            reader.SkipWhiteSpaces();
            Assert.AreEqual('a', reader.CurrentChar);
            Assert.AreEqual(2, reader.Index);
        }
예제 #11
0
        public void CanReadWhiteSpaces()
        {
            var input = new StringReader("a  bc");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.True(reader.Read());
            Assert.True(reader.Read());
            reader.SkipWhiteSpaces();
            Assert.AreEqual('b',reader.CurrentChar);
            Assert.AreEqual(3,reader.Index);
        }
예제 #12
0
        public void CanReadWhile_AutomaticlyMakesAnInitialReadOnStart()
        {
            var input = new StringReader("123bcdef");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.AreEqual("123", reader.ReadWhile(Char.IsNumber));
            Assert.AreEqual(3, reader.Index);
        }
예제 #13
0
        public void CanReadWhile()
        {
            var input = new StringReader("a123bcdef");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.True(reader.Read());
            Assert.True(reader.Read());
            Assert.AreEqual("123",reader.ReadWhile(Char.IsNumber));
            Assert.AreEqual(4,reader.Index);
        }
예제 #14
0
        public void CanReadTwoLines()
        {
            var input = new StringReader("abc\nxyz");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.True(reader.Read());
            Assert.AreEqual('a', reader.CurrentChar);
            Assert.AreEqual(0, reader.LineNumber);
            Assert.AreEqual(0, reader.Index);
            Assert.True(reader.Read());
            Assert.AreEqual('b', reader.CurrentChar);
            Assert.AreEqual(0, reader.LineNumber);
            Assert.AreEqual(1, reader.Index);
            Assert.True(reader.Read());
            Assert.AreEqual('c', reader.CurrentChar);
            Assert.AreEqual(0, reader.LineNumber);
            Assert.AreEqual(2, reader.Index);
            Assert.False(reader.Read());
            Assert.False(reader.Read());

            Assert.True(reader.ReadNextLine());
            Assert.True(reader.Read());
            Assert.AreEqual('x', reader.CurrentChar);
            Assert.AreEqual(1, reader.LineNumber);
            Assert.AreEqual(0, reader.Index);
            Assert.True(reader.Read());
            Assert.AreEqual('y', reader.CurrentChar);
            Assert.AreEqual(1, reader.LineNumber);
            Assert.AreEqual(1, reader.Index);
            Assert.True(reader.Read());
            Assert.AreEqual('z', reader.CurrentChar);
            Assert.AreEqual(1, reader.LineNumber);
            Assert.AreEqual(2, reader.Index);
            Assert.False(reader.Read());
        }
예제 #15
0
        public void CanReadToEnd_AutomaticlyMakesAnInitialReadOnStart()
        {
            var input = new StringReader("abc\nxyz");
            var reader = new InputReader(input);
            Assert.True(reader.ReadNextLine());

            Assert.AreEqual("abc", reader.ReadToEnd());
            Assert.AreEqual(0, reader.LineNumber);
            Assert.AreEqual(3, reader.Index);
        }