| #[cfg(all(target_family = "wasm", not(target_os = "wasi")))] |
| use wasm_bindgen_test::wasm_bindgen_test as test; |
| |
| #[cfg(all(target_family = "wasm", not(target_os = "wasi")))] |
| wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser); |
| |
| #[test] |
| fn bool() { |
| for x in &[false, true] { |
| while fastrand::bool() != *x {} |
| } |
| } |
| |
| #[test] |
| fn u8() { |
| for x in 0..10 { |
| while fastrand::u8(..10) != x {} |
| } |
| |
| for x in 200..=u8::MAX { |
| while fastrand::u8(200..) != x {} |
| } |
| } |
| |
| #[test] |
| fn i8() { |
| for x in -128..-120 { |
| while fastrand::i8(..-120) != x {} |
| } |
| |
| for x in 120..=127 { |
| while fastrand::i8(120..) != x {} |
| } |
| } |
| |
| #[test] |
| fn u32() { |
| for n in 1u32..10_000 { |
| let n = n.wrapping_mul(n); |
| let n = n.wrapping_mul(n); |
| if n != 0 { |
| for _ in 0..1000 { |
| assert!(fastrand::u32(..n) < n); |
| } |
| } |
| } |
| } |
| |
| #[test] |
| fn u64() { |
| for n in 1u64..10_000 { |
| let n = n.wrapping_mul(n); |
| let n = n.wrapping_mul(n); |
| let n = n.wrapping_mul(n); |
| if n != 0 { |
| for _ in 0..1000 { |
| assert!(fastrand::u64(..n) < n); |
| } |
| } |
| } |
| } |
| |
| #[test] |
| fn u128() { |
| for n in 1u128..10_000 { |
| let n = n.wrapping_mul(n); |
| let n = n.wrapping_mul(n); |
| let n = n.wrapping_mul(n); |
| let n = n.wrapping_mul(n); |
| if n != 0 { |
| for _ in 0..1000 { |
| assert!(fastrand::u128(..n) < n); |
| } |
| } |
| } |
| } |
| |
| #[test] |
| fn fill() { |
| let r = fastrand::Rng::new(); |
| let mut a = [0u8; 64]; |
| let mut b = [0u8; 64]; |
| |
| r.fill(&mut a); |
| r.fill(&mut b); |
| |
| assert_ne!(a, b); |
| } |
| |
| #[test] |
| fn rng() { |
| let r = fastrand::Rng::new(); |
| |
| assert_ne!(r.u64(..), r.u64(..)); |
| |
| r.seed(7); |
| let a = r.u64(..); |
| r.seed(7); |
| let b = r.u64(..); |
| assert_eq!(a, b); |
| } |
| |
| #[test] |
| fn rng_init() { |
| let a = fastrand::Rng::new(); |
| let b = fastrand::Rng::new(); |
| assert_ne!(a.u64(..), b.u64(..)); |
| |
| a.seed(7); |
| b.seed(7); |
| assert_eq!(a.u64(..), b.u64(..)); |
| } |
| |
| #[test] |
| fn with_seed() { |
| let a = fastrand::Rng::with_seed(7); |
| let b = fastrand::Rng::new(); |
| b.seed(7); |
| assert_eq!(a.u64(..), b.u64(..)); |
| } |