diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2013-02-10 14:16:10 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2013-02-10 14:16:10 (GMT) |
commit | be5f91957f3d553a7cbbfdc43f66a3b30bb97aec (patch) | |
tree | 0f6473d649766c9b0dfe61e7d828d8730e0bc46a /Lib/test | |
parent | 497cee456c29202918739275fcc3d1bd0183ae06 (diff) | |
download | cpython-be5f91957f3d553a7cbbfdc43f66a3b30bb97aec.zip cpython-be5f91957f3d553a7cbbfdc43f66a3b30bb97aec.tar.gz cpython-be5f91957f3d553a7cbbfdc43f66a3b30bb97aec.tar.bz2 |
Issue #17149: Fix random.vonmisesvariate to always return results in [0, 2*math.pi].
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_random.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py index 776d0c4..073bed4 100644 --- a/Lib/test/test_random.py +++ b/Lib/test/test_random.py @@ -475,6 +475,20 @@ class TestDistributions(unittest.TestCase): self.assertAlmostEqual(s1/N, mu, places=2) self.assertAlmostEqual(s2/(N-1), sigmasqrd, places=2) + def test_von_mises_range(self): + # Issue 17149: von mises variates were not consistently in the + # range [0, 2*PI]. + g = random.Random() + N = 100 + for mu in 0.0, 0.1, 3.1, 6.2: + for kappa in 0.0, 2.3, 500.0: + for _ in range(N): + sample = g.vonmisesvariate(mu, kappa) + self.assertTrue( + 0 <= sample <= random.TWOPI, + msg=("vonmisesvariate({}, {}) produced a result {} out" + " of range [0, 2*pi]").format(mu, kappa, sample)) + class TestModule(unittest.TestCase): def testMagicConstants(self): self.assertAlmostEqual(random.NV_MAGICCONST, 1.71552776992141) |