Browse Source

Issue 28475: Improve error message for random.sample() with k < 0. (Contributed by Francisco Couzo).

pull/9921/head
Raymond Hettinger 10 years ago
parent
commit
bf87126a63
  1. 2
      Lib/random.py
  2. 1
      Lib/test/test_random.py

2
Lib/random.py

@ -314,7 +314,7 @@ class Random(_random.Random):
randbelow = self._randbelow
n = len(population)
if not 0 <= k <= n:
raise ValueError("Sample larger than population")
raise ValueError("Sample larger than population or is negative")
result = [None] * k
setsize = 21 # size of a small set minus size of an empty list
if k > 5:

1
Lib/test/test_random.py

@ -110,6 +110,7 @@ class TestBasicOps:
self.assertEqual(self.gen.sample([], 0), []) # test edge case N==k==0
# Exception raised if size of sample exceeds that of population
self.assertRaises(ValueError, self.gen.sample, population, N+1)
self.assertRaises(ValueError, self.gen.sample, [], -1)
def test_sample_distribution(self):
# For the entire allowable range of 0 <= k <= N, validate that

Loading…
Cancel
Save