Skip to content

Commit b0aa91e

Browse files
committed
Fix random_product() as well
1 parent 073d234 commit b0aa91e

2 files changed

Lines changed: 9 additions & 1 deletion

File tree

more_itertools/recipes.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ def random_product(*iterables, repeat=1):
580580
``itertools.product(*args, repeat=repeat)``.
581581
582582
"""
583-
pools = tuple(map(tuple, iterables * repeat))
583+
pools = tuple(map(tuple, iterables)) * repeat
584584
return tuple(map(choice, pools))
585585

586586

tests/test_recipes.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,6 +568,14 @@ def test_list_with_repeat(self):
568568
self.assertEqual(len(n), len(nums))
569569
self.assertEqual(len(m), len(lets))
570570

571+
r = list(mi.random_product(iter(nums), iter(lets), repeat=100))
572+
self.assertEqual(2 * 100, len(r))
573+
n, m = set(r[::2]), set(r[1::2])
574+
self.assertEqual(n, set(nums))
575+
self.assertEqual(m, set(lets))
576+
self.assertEqual(len(n), len(nums))
577+
self.assertEqual(len(m), len(lets))
578+
571579

572580
class RandomPermutationTests(TestCase):
573581
"""Tests for ``random_permutation()``"""

0 commit comments

Comments
 (0)