mirror of
https://github.com/python/cpython.git
synced 2025-08-29 05:05:03 +00:00
Issue #13355: Raise ValueError on random.triangular call with invalid params.
Initial patch by Yuriy Senko.
This commit is contained in:
parent
7b2c8bb833
commit
a2dfc35a13
4 changed files with 45 additions and 1 deletions
|
@ -341,6 +341,16 @@ class Random(_random.Random):
|
|||
http://en.wikipedia.org/wiki/Triangular_distribution
|
||||
|
||||
"""
|
||||
# Sanity check. According to the doc low must be less or equal to
|
||||
# high. And mode should be somewhere between these bounds.
|
||||
if low > high:
|
||||
raise ValueError('high cannot be less then low.')
|
||||
if mode is not None and (mode < low or mode > high):
|
||||
raise ValueError('mode must be between low and high.')
|
||||
|
||||
if high == low:
|
||||
return low
|
||||
|
||||
u = self.random()
|
||||
c = 0.5 if mode is None else (mode - low) / (high - low)
|
||||
if u > c:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue