def test_checkpoint_rewind_buffer(self):
     values = [1, 2, 3, 4, 5]
     itr = easyparse.BufferedIterator(values)
     itr.checkpoint()
     self.assertEqual(values[0], next(itr))
     itr.rewind()
     self.assertEqual([x for x in itr], values)
 def test_match_re_rules_with_failures(self):
     rule0 = easyparse.RegularExpressionRule(r'[a-z]')
     rule1 = easyparse.RegularExpressionRule(r'[0-9]')
     buf = easyparse.BufferedIterator('7a')
     buf.checkpoint()
     self.assertEqual(False, rule0.parse(buf)[0])
     buf.rewind()
     self.assertEqual((True, '7'), rule1.parse(buf))
 def test_stop_iteration_then_rewind(self):
     values = [1, 2, 3]
     itr = easyparse.BufferedIterator(values)
     itr.checkpoint()
     for i in range(3):
         self.assertEqual(values[i], next(itr))
     self.assertRaises(StopIteration, lambda: next(itr))
     itr.rewind()
     self.assertEqual([x for x in itr], values)
 def test_commit(self):
     values = [1, 2, 3]
     itr = easyparse.BufferedIterator(values)
     itr.checkpoint()
     next(itr)
     itr.checkpoint()
     next(itr)
     itr.commit()
     self.assertEqual(3, next(itr))
     itr.rewind()
     self.assertEqual([1, 2, 3], [x for x in itr])
 def test_multiple_checkpoint_buffer(self):
     values = [1, 2, 3, 4, 5, 6]
     itr = easyparse.BufferedIterator(values)
     itr.checkpoint()
     for i in range(2):
         self.assertEqual(values[i], next(itr))
     itr.checkpoint()
     for i in range(2):
         self.assertEqual(values[2 + i], next(itr))
     itr.rewind()
     self.assertEqual(values[2], next(itr))
     itr.rewind()
     self.assertEqual([x for x in itr], values)
 def test_play_buffer(self):
     itr = easyparse.BufferedIterator([1, 2, 3])
     act = [x for x in itr]
     exp = [1, 2, 3]
     self.assertEqual(act, exp)
 def test_match_two_re_rules(self):
     rule0 = easyparse.RegularExpressionRule(r'[0-9]')
     rule1 = easyparse.RegularExpressionRule(r'[a-z]')
     buf = easyparse.BufferedIterator('a7')
     self.assertEqual((True, 'a'), rule1.parse(buf))
     self.assertEqual((True, '7'), rule0.parse(buf))