@@ -13,6 +13,7 @@ use std::mem;
1313use std:: ptr;
1414
1515use rand:: { Rng , SeedableRng , XorShiftRng } ;
16+ use rand:: distributions:: { Standard , Alphanumeric } ;
1617use test:: { Bencher , black_box} ;
1718
1819#[ bench]
@@ -192,18 +193,20 @@ fn gen_descending(len: usize) -> Vec<u64> {
192193 ( 0 ..len as u64 ) . rev ( ) . collect ( )
193194}
194195
196+ const SEED : [ u8 ; 16 ] = [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ] ;
197+
195198fn 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 ( )
198201}
199202
200203fn 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 ( )
203206}
204207
205208fn 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 ) ;
207210 let mut v = gen_ascending ( len) ;
208211 for _ in ( 0usize ..) . take_while ( |x| x * x <= len) {
209212 let x = rng. gen :: < usize > ( ) % len;
@@ -214,7 +217,7 @@ fn gen_mostly_ascending(len: usize) -> Vec<u64> {
214217}
215218
216219fn 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 ) ;
218221 let mut v = gen_descending ( len) ;
219222 for _ in ( 0usize ..) . take_while ( |x| x * x <= len) {
220223 let x = rng. gen :: < usize > ( ) % len;
@@ -225,18 +228,18 @@ fn gen_mostly_descending(len: usize) -> Vec<u64> {
225228}
226229
227230fn 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 ) ;
229232 let mut v = vec ! [ ] ;
230233 for _ in 0 ..len {
231234 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 ( ) ) ;
233236 }
234237 v
235238}
236239
237240fn 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 ( )
240243}
241244
242245macro_rules! sort {
0 commit comments