mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
[3.13] gh-130285: Fix handling of zero or empty counts in random.sample() (gh-130291) (gh-130416)
This commit is contained in:
parent
3d88c18303
commit
8ef89474b9
3 changed files with 21 additions and 5 deletions
|
@ -225,8 +225,6 @@ class TestBasicOps:
|
|||
sample(['red', 'green', 'blue'], counts=10, k=10) # counts not iterable
|
||||
with self.assertRaises(ValueError):
|
||||
sample(['red', 'green', 'blue'], counts=[-3, -7, -8], k=2) # counts are negative
|
||||
with self.assertRaises(ValueError):
|
||||
sample(['red', 'green', 'blue'], counts=[0, 0, 0], k=2) # counts are zero
|
||||
with self.assertRaises(ValueError):
|
||||
sample(['red', 'green'], counts=[10, 10], k=21) # population too small
|
||||
with self.assertRaises(ValueError):
|
||||
|
@ -234,6 +232,20 @@ class TestBasicOps:
|
|||
with self.assertRaises(ValueError):
|
||||
sample(['red', 'green', 'blue'], counts=[1, 2, 3, 4], k=2) # too many counts
|
||||
|
||||
# Cases with zero counts match equivalents without counts (see gh-130285)
|
||||
self.assertEqual(
|
||||
sample('abc', k=0, counts=[0, 0, 0]),
|
||||
sample([], k=0),
|
||||
)
|
||||
self.assertEqual(
|
||||
sample([], 0, counts=[]),
|
||||
sample([], 0),
|
||||
)
|
||||
with self.assertRaises(ValueError):
|
||||
sample([], 1, counts=[])
|
||||
with self.assertRaises(ValueError):
|
||||
sample('x', 1, counts=[0])
|
||||
|
||||
def test_choices(self):
|
||||
choices = self.gen.choices
|
||||
data = ['red', 'green', 'blue', 'yellow']
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue