changeset: 104485:d4e715e725ef branch: 3.6 parent: 104482:beed43d7dc46 user: Raymond Hettinger date: Fri Oct 14 01:19:38 2016 -0400 files: Lib/test/test_random.py description: Issue #18844: Add more tests diff -r beed43d7dc46 -r d4e715e725ef Lib/test/test_random.py --- a/Lib/test/test_random.py Thu Oct 13 14:32:33 2016 -0700 +++ b/Lib/test/test_random.py Fri Oct 14 01:19:38 2016 -0400 @@ -205,6 +205,20 @@ ]: self.assertTrue(set(choices(data, cum_weights=weights, k=5)) <= set(data)) + # Test weight focused on a single element of the population + self.assertEqual(choices('abcd', [1, 0, 0, 0]), ['a']) + self.assertEqual(choices('abcd', [0, 1, 0, 0]), ['b']) + self.assertEqual(choices('abcd', [0, 0, 1, 0]), ['c']) + self.assertEqual(choices('abcd', [0, 0, 0, 1]), ['d']) + + # Test consistency with random.choice() for empty population + with self.assertRaises(IndexError): + choices([], k=1) + with self.assertRaises(IndexError): + choices([], weights=[], k=1) + with self.assertRaises(IndexError): + choices([], cum_weights=[], k=5) + def test_gauss(self): # Ensure that the seed() method initializes all the hidden state. In # particular, through 2.2.1 it failed to reset a piece of state used