Example #1
0
        void Position_points_at_0_0_when_begin()
        {
            var reader = new SourceStringReader("   \t  \r  \n  \r  ");

            Assert.Equal(0, reader.Position.Line);
            Assert.Equal(0, reader.Position.Column);
        }
Example #2
0
        void NextSecond_return_second()
        {
            var reader = new SourceStringReader("abc");

            reader.Advance();

            Assert.Equal('b', reader.CurrentChar());
        }
Example #3
0
        void PeekAtStart_return_first()
        {
            var reader = new SourceStringReader("abc");

            var c = reader.CurrentChar();

            Assert.Equal('a', c);
        }
Example #4
0
        void PeekAfterOneNext_return_second()
        {
            var reader = new SourceStringReader("abc");

            reader.Advance();
            var c = reader.CurrentChar();

            Assert.Equal('b', c);
        }
Example #5
0
        void PrevioutPositionTest()
        {
            var reader = new SourceStringReader("io");

            reader.Advance();

            Assert.Equal(0, reader.PreviousPosition.Column);
            Assert.Equal(0, reader.PreviousPosition.Line);
        }
Example #6
0
        void Position_column_increases_when_next()
        {
            var reader = new SourceStringReader("abc");

            reader.Advance();

            Assert.Equal(0, reader.Position.Line);
            Assert.Equal(1, reader.Position.Column);
        }
Example #7
0
        void NextNonWhiteChar_at_start()
        {
            var reader = new SourceStringReader(" \t \r abc");

            var success = reader.AdvanceUntilNonWhite();

            Assert.True(success);

            Assert.Equal('a', reader.CurrentChar());
        }
Example #8
0
        void NextAtEnd_throws()
        {
            var reader = new SourceStringReader("abc");

            reader.Advance();
            reader.Advance();
            reader.Advance();

            Assert.Throws <InvalidOperationException>(() => reader.Advance());
        }
Example #9
0
        void PeekAtTheEOF_throws()
        {
            var reader = new SourceStringReader("abc");

            reader.Advance();
            reader.Advance();
            reader.Advance();

            Assert.Throws <InvalidOperationException>(() => reader.CurrentChar());
        }
Example #10
0
        void Position_column_set_0_and_line_incr_1()
        {
            var source = "ab\nasd";
            var reader = new SourceStringReader(source);

            reader.Advance(); // a
            reader.Advance(); // b
            reader.Advance(); // This reads \n

            Assert.Equal(0, reader.Position.Column);
            Assert.Equal(1, reader.Position.Line);
        }
Example #11
0
        void NextNonWhiteChar_returns_false_when_no_more_nonwhite()
        {
            var reader = new SourceStringReader("   \t  \r  \n  \r  ");

            Assert.False(reader.AdvanceUntilNonWhite());
        }
Example #12
0
        void NextAtStart_return_first()
        {
            var reader = new SourceStringReader("abc");

            Assert.Equal('a', reader.CurrentChar());
        }