From 9a68ff12c3e647a4f8dd935919ae296593770a6b Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sun, 8 Jan 2023 13:40:35 -0600 Subject: GH-100805: Support numpy.array() in random.choice(). (GH-100830) --- Lib/test/test_random.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'Lib/test/test_random.py') diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py index 67de54c7db..50bea7be6d 100644 --- a/Lib/test/test_random.py +++ b/Lib/test/test_random.py @@ -111,6 +111,21 @@ class TestBasicOps: self.assertEqual(choice([50]), 50) self.assertIn(choice([25, 75]), [25, 75]) + def test_choice_with_numpy(self): + # Accommodation for NumPy arrays which have disabled __bool__(). + # See: https://github.com/python/cpython/issues/100805 + choice = self.gen.choice + + class NA(list): + "Simulate numpy.array() behavior" + def __bool__(self): + raise RuntimeError + + with self.assertRaises(IndexError): + choice(NA([])) + self.assertEqual(choice(NA([50])), 50) + self.assertIn(choice(NA([25, 75])), [25, 75]) + def test_sample(self): # For the entire allowable range of 0 <= k <= N, validate that # the sample is of the correct length and contains only unique items -- cgit v1.2.1