From 6aeec34df02adde598a6b86d4342c6b587b6b38b Mon Sep 17 00:00:00 2001 From: Marcin Pajkowski Date: Wed, 24 Jul 2019 01:07:08 +0200 Subject: [PATCH] Add tests for str.__iter__ and str.__next__ --- tests/snippets/strings.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/snippets/strings.py b/tests/snippets/strings.py index e07354409..ed5bfb972 100644 --- a/tests/snippets/strings.py +++ b/tests/snippets/strings.py @@ -263,3 +263,33 @@ assert "\u0041" == "A" assert "\u00BE" == "¾" assert "\u9487" == "钇" assert "\U0001F609" == "😉" + +# test str iter +iterable_str = "123456789" +str_iter = iter(iterable_str) + +assert next(str_iter) == "1" +assert next(str_iter) == "2" +assert next(str_iter) == "3" +assert next(str_iter) == "4" +assert next(str_iter) == "5" +assert next(str_iter) == "6" +assert next(str_iter) == "7" +assert next(str_iter) == "8" +assert next(str_iter) == "9" +assert next(str_iter, None) == None +assert_raises(StopIteration, lambda: next(str_iter)) + +str_iter_reversed = reversed(iterable_str) + +assert next(str_iter_reversed) == "9" +assert next(str_iter_reversed) == "8" +assert next(str_iter_reversed) == "7" +assert next(str_iter_reversed) == "6" +assert next(str_iter_reversed) == "5" +assert next(str_iter_reversed) == "4" +assert next(str_iter_reversed) == "3" +assert next(str_iter_reversed) == "2" +assert next(str_iter_reversed) == "1" +assert next(str_iter_reversed, None) == None +assert_raises(StopIteration, lambda: next(str_iter_reversed))