Ejemplo n.º 1
0
    def test_reset_peek(self):
        ps = ParserStream("abcd")

        ps.next()
        ps.peek()
        ps.peek()
        ps.reset_peek()

        self.assertEqual('b', ps.current())
        self.assertEqual('b', ps.current_peek())
        self.assertEqual(1, ps.get_peek_index())
        self.assertEqual(1, ps.get_index())

        ps.peek()

        self.assertEqual('b', ps.current())
        self.assertEqual('c', ps.current_peek())
        self.assertEqual(2, ps.get_peek_index())
        self.assertEqual(1, ps.get_index())

        ps.peek()
        ps.peek()
        ps.peek()
        ps.reset_peek()

        self.assertEqual('b', ps.current())
        self.assertEqual('b', ps.current_peek())
        self.assertEqual(1, ps.get_peek_index())
        self.assertEqual(1, ps.get_index())

        self.assertEqual('c', ps.peek())
        self.assertEqual('b', ps.current())
        self.assertEqual('c', ps.current_peek())
        self.assertEqual(2, ps.get_peek_index())
        self.assertEqual(1, ps.get_index())

        self.assertEqual('d', ps.peek())
        self.assertEqual(None, ps.peek())
Ejemplo n.º 2
0
    def test_reset_peek(self):
        ps = ParserStream("abcd")

        ps.next()
        ps.peek()
        ps.peek()
        ps.reset_peek()

        self.assertEqual('b', ps.current_char)
        self.assertEqual('b', ps.current_peek)
        self.assertEqual(0, ps.peek_offset)
        self.assertEqual(1, ps.index)

        ps.peek()

        self.assertEqual('b', ps.current_char)
        self.assertEqual('c', ps.current_peek)
        self.assertEqual(1, ps.peek_offset)
        self.assertEqual(1, ps.index)

        ps.peek()
        ps.peek()
        ps.peek()
        ps.reset_peek()

        self.assertEqual('b', ps.current_char)
        self.assertEqual('b', ps.current_peek)
        self.assertEqual(0, ps.peek_offset)
        self.assertEqual(1, ps.index)

        self.assertEqual('c', ps.peek())
        self.assertEqual('b', ps.current_char)
        self.assertEqual('c', ps.current_peek)
        self.assertEqual(1, ps.peek_offset)
        self.assertEqual(1, ps.index)

        self.assertEqual('d', ps.peek())
        self.assertEqual(None, ps.peek())