blob: ff3cea66db3b7fb9b3471259b08e55ebeb12ce12 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
#[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(..));
}
|