diff --git a/src/rng.rs b/src/rng.rs index 1ff8e57deb..cd1091bdc1 100644 --- a/src/rng.rs +++ b/src/rng.rs @@ -152,7 +152,7 @@ pub trait Rng: RngCore { /// // Exclusive range /// let n: u32 = rng.gen_range(0..10); /// println!("{}", n); - /// let m: f64 = rng.gen_range(-40.0f64..1.3e5f64); + /// let m: f64 = rng.gen_range(-40.0..1.3e5); /// println!("{}", m); /// /// // Inclusive range @@ -517,7 +517,7 @@ mod test { } #[test] - fn test_gen_range() { + fn test_gen_range_int() { let mut r = rng(101); for _ in 0..1000 { let a = r.gen_range(-4711..17); @@ -528,8 +528,8 @@ mod test { assert!(a >= 10u16 && a < 99u16); let a = r.gen_range(-100i32..2000); assert!(a >= -100i32 && a < 2000i32); - let a: u32 = r.gen_range(12..24); - assert!(a >= 12u32 && a < 24u32); + let a: u32 = r.gen_range(12..=24); + assert!(a >= 12u32 && a <= 24u32); assert_eq!(r.gen_range(0u32..1), 0u32); assert_eq!(r.gen_range(-12i64..-11), -12i64); @@ -537,6 +537,21 @@ mod test { } } + #[test] + fn test_gen_range_float() { + let mut r = rng(101); + for _ in 0..1000 { + let a = r.gen_range(-4.5..1.7); + assert!(a >= -4.5 && a < 1.7); + let a = r.gen_range(-1.1..=-0.3); + assert!(a >= -1.1 && a <= -0.3); + + assert_eq!(r.gen_range(0.0f32..=0.0), 0.); + assert_eq!(r.gen_range(-11.0..=-11.0), -11.); + assert_eq!(r.gen_range(3_000_000.0..=3_000_000.0), 3_000_000.); + } + } + #[test] #[should_panic] fn test_gen_range_panic_int() {