def test_skip_to_peek(self): ps = ParserStream("abcd") ps.peek() ps.peek() ps.skip_to_peek() self.assertEqual('c', ps.current()) self.assertEqual('c', ps.current_peek()) self.assertEqual(2, ps.get_peek_index()) self.assertEqual(2, ps.get_index()) ps.peek() self.assertEqual('c', ps.current()) self.assertEqual('d', ps.current_peek()) self.assertEqual(3, ps.get_peek_index()) self.assertEqual(2, ps.get_index()) ps.next() self.assertEqual('d', ps.current()) self.assertEqual('d', ps.current_peek()) self.assertEqual(3, ps.get_peek_index()) self.assertEqual(3, ps.get_index())
def test_skip_to_peek(self): ps = ParserStream("abcd") ps.peek() ps.peek() ps.skip_to_peek() self.assertEqual('c', ps.current_char) self.assertEqual('c', ps.current_peek) self.assertEqual(0, ps.peek_offset) self.assertEqual(2, ps.index) ps.peek() self.assertEqual('c', ps.current_char) self.assertEqual('d', ps.current_peek) self.assertEqual(1, ps.peek_offset) self.assertEqual(2, ps.index) ps.next() self.assertEqual('d', ps.current_char) self.assertEqual('d', ps.current_peek) self.assertEqual(0, ps.peek_offset) self.assertEqual(3, ps.index)
def test_reset_peek(self): ps = ParserStream("abcd") ps.next() ps.peek() self.assertEqual(ps.peek_char_is('d'), True) self.assertEqual('b', ps.current()) self.assertEqual('c', ps.current_peek()) ps.skip_to_peek() self.assertEqual('c', ps.current())