diff options
Diffstat (limited to 'Lib/test/test_itertools.py')
-rw-r--r-- | Lib/test/test_itertools.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/Lib/test/test_itertools.py b/Lib/test/test_itertools.py index 98cceb7..82e1ee4 100644 --- a/Lib/test/test_itertools.py +++ b/Lib/test/test_itertools.py @@ -1285,6 +1285,21 @@ Samuele ... if s: ... yield d +>>> def combinations_with_replacement(iterable, r): +... "combinations_with_replacement('ABC', 3) --> AA AB AC BB BC CC" +... pool = tuple(iterable) +... n = len(pool) +... indices = [0] * r +... yield tuple(pool[i] for i in indices) +... while 1: +... for i in reversed(range(r)): +... if indices[i] != n - 1: +... break +... else: +... return +... indices[i:] = [indices[i] + 1] * (r - i) +... yield tuple(pool[i] for i in indices) + This is not part of the examples but it tests to make sure the definitions perform as purported. @@ -1362,6 +1377,9 @@ False >>> list(compress('abcdef', [1,0,1,0,1,1])) ['a', 'c', 'e', 'f'] +>>> list(combinations_with_replacement('abc', 2)) +[('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'b'), ('b', 'c'), ('c', 'c')] + """ __test__ = {'libreftest' : libreftest} |