@@ -13,6 +13,7 @@ use std::mem;
13
13
use std:: ptr;
14
14
15
15
use rand:: { Rng , SeedableRng , XorShiftRng } ;
16
+ use rand:: distributions:: { Standard , Alphanumeric } ;
16
17
use test:: { Bencher , black_box} ;
17
18
18
19
#[ bench]
@@ -192,18 +193,20 @@ fn gen_descending(len: usize) -> Vec<u64> {
192
193
( 0 ..len as u64 ) . rev ( ) . collect ( )
193
194
}
194
195
196
+ const SEED : [ u8 ; 16 ] = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] ;
197
+
195
198
fn gen_random ( len : usize ) -> Vec < u64 > {
196
- let mut rng = XorShiftRng :: from_seed ( [ 0 , 1 , 2 , 3 ] ) ;
197
- rng. gen_iter :: < u64 > ( ) . take ( len) . collect ( )
199
+ let mut rng = XorShiftRng :: from_seed ( SEED ) ;
200
+ rng. sample_iter ( & Standard ) . take ( len) . collect ( )
198
201
}
199
202
200
203
fn gen_random_bytes ( len : usize ) -> Vec < u8 > {
201
- let mut rng = XorShiftRng :: from_seed ( [ 0 , 1 , 2 , 3 ] ) ;
202
- rng. gen_iter :: < u8 > ( ) . take ( len) . collect ( )
204
+ let mut rng = XorShiftRng :: from_seed ( SEED ) ;
205
+ rng. sample_iter ( & Standard ) . take ( len) . collect ( )
203
206
}
204
207
205
208
fn gen_mostly_ascending ( len : usize ) -> Vec < u64 > {
206
- let mut rng = XorShiftRng :: from_seed ( [ 0 , 1 , 2 , 3 ] ) ;
209
+ let mut rng = XorShiftRng :: from_seed ( SEED ) ;
207
210
let mut v = gen_ascending ( len) ;
208
211
for _ in ( 0usize ..) . take_while ( |x| x * x <= len) {
209
212
let x = rng. gen :: < usize > ( ) % len;
@@ -214,7 +217,7 @@ fn gen_mostly_ascending(len: usize) -> Vec<u64> {
214
217
}
215
218
216
219
fn gen_mostly_descending ( len : usize ) -> Vec < u64 > {
217
- let mut rng = XorShiftRng :: from_seed ( [ 0 , 1 , 2 , 3 ] ) ;
220
+ let mut rng = XorShiftRng :: from_seed ( SEED ) ;
218
221
let mut v = gen_descending ( len) ;
219
222
for _ in ( 0usize ..) . take_while ( |x| x * x <= len) {
220
223
let x = rng. gen :: < usize > ( ) % len;
@@ -225,18 +228,18 @@ fn gen_mostly_descending(len: usize) -> Vec<u64> {
225
228
}
226
229
227
230
fn gen_strings ( len : usize ) -> Vec < String > {
228
- let mut rng = XorShiftRng :: from_seed ( [ 0 , 1 , 2 , 3 ] ) ;
231
+ let mut rng = XorShiftRng :: from_seed ( SEED ) ;
229
232
let mut v = vec ! [ ] ;
230
233
for _ in 0 ..len {
231
234
let n = rng. gen :: < usize > ( ) % 20 + 1 ;
232
- v. push ( rng. gen_ascii_chars ( ) . take ( n) . collect ( ) ) ;
235
+ v. push ( rng. sample_iter ( & Alphanumeric ) . take ( n) . collect ( ) ) ;
233
236
}
234
237
v
235
238
}
236
239
237
240
fn gen_big_random ( len : usize ) -> Vec < [ u64 ; 16 ] > {
238
- let mut rng = XorShiftRng :: from_seed ( [ 0 , 1 , 2 , 3 ] ) ;
239
- rng. gen_iter ( ) . map ( |x| [ x; 16 ] ) . take ( len) . collect ( )
241
+ let mut rng = XorShiftRng :: from_seed ( SEED ) ;
242
+ rng. sample_iter ( & Standard ) . map ( |x| [ x; 16 ] ) . take ( len) . collect ( )
240
243
}
241
244
242
245
macro_rules! sort {
0 commit comments