From d75e8e5056ead46b1377c2e95f36a61c699aa55f Mon Sep 17 00:00:00 2001 From: SiriusStarr <2049163+SiriusStarr@users.noreply.github.com> Date: Sun, 5 Dec 2021 11:55:26 -0800 Subject: [PATCH] Sanitize input to `float` to avoid invalid values --- src/Random.elm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Random.elm b/src/Random.elm index 5c68ccb..2b262f6 100644 --- a/src/Random.elm +++ b/src/Random.elm @@ -156,6 +156,13 @@ float : Float -> Float -> Generator Float float a b = Generator (\seed0 -> let + -- Sanitize the input range + ( minRange, maxRange ) = + if a < b then + ( a, b ) + else + ( b, a ) + -- Get 64 bits of randomness seed1 = next seed0 @@ -179,10 +186,10 @@ float a b = -- Scale it into our range range = - abs (b - a) + abs (maxRange - minRange) scaled = - val * range + a + val * range + minRange in ( scaled, next seed1 ) )