mirror of https://github.com/python/cpython
gh-123968: Fix lower bound for `python -m random --float` (#123971)
This commit is contained in:
parent
8e99495701
commit
a362c41bc9
|
@ -1013,7 +1013,7 @@ def _parse_args(arg_list: list[str] | None):
|
||||||
help="print a random integer between 1 and N inclusive")
|
help="print a random integer between 1 and N inclusive")
|
||||||
group.add_argument(
|
group.add_argument(
|
||||||
"-f", "--float", type=float, metavar="N",
|
"-f", "--float", type=float, metavar="N",
|
||||||
help="print a random floating-point number between 1 and N inclusive")
|
help="print a random floating-point number between 0 and N inclusive")
|
||||||
group.add_argument(
|
group.add_argument(
|
||||||
"--test", type=int, const=10_000, nargs="?",
|
"--test", type=int, const=10_000, nargs="?",
|
||||||
help=argparse.SUPPRESS)
|
help=argparse.SUPPRESS)
|
||||||
|
@ -1038,7 +1038,7 @@ def main(arg_list: list[str] | None = None) -> int | str:
|
||||||
return randint(1, args.integer)
|
return randint(1, args.integer)
|
||||||
|
|
||||||
if args.float is not None:
|
if args.float is not None:
|
||||||
return uniform(1, args.float)
|
return uniform(0, args.float)
|
||||||
|
|
||||||
if args.test:
|
if args.test:
|
||||||
_test(args.test)
|
_test(args.test)
|
||||||
|
@ -1055,7 +1055,7 @@ def main(arg_list: list[str] | None = None) -> int | str:
|
||||||
try:
|
try:
|
||||||
# Is it a float?
|
# Is it a float?
|
||||||
val = float(val)
|
val = float(val)
|
||||||
return uniform(1, val)
|
return uniform(0, val)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
# Split in case of space-separated string: "a b c"
|
# Split in case of space-separated string: "a b c"
|
||||||
return choice(val.split())
|
return choice(val.split())
|
||||||
|
|
|
@ -1433,8 +1433,8 @@ class CommandLineTest(unittest.TestCase):
|
||||||
("'a a' 'b b' 'c c'", "b b"),
|
("'a a' 'b b' 'c c'", "b b"),
|
||||||
("--integer 5", 4),
|
("--integer 5", 4),
|
||||||
("5", 4),
|
("5", 4),
|
||||||
("--float 2.5", 2.266632777287572),
|
("--float 2.5", 2.1110546288126204),
|
||||||
("2.5", 2.266632777287572),
|
("2.5", 2.1110546288126204),
|
||||||
]:
|
]:
|
||||||
random.seed(0)
|
random.seed(0)
|
||||||
self.assertEqual(random.main(shlex.split(command)), expected)
|
self.assertEqual(random.main(shlex.split(command)), expected)
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
Fix the command-line interface for the :mod:`random` module to select floats between 0 and N, not 1 and N.
|
Loading…
Reference in New Issue