2121// MODULES //
2222
2323var bench = require ( '@stdlib/bench' ) ;
24- var randu = require ( '@stdlib/random/base/randu' ) ;
25- var floor = require ( '@stdlib/math/base/special/floor' ) ;
24+ var discreteUniform = require ( '@stdlib/random/array/discrete-uniform' ) ;
2625var isArray = require ( '@stdlib/assert/is-array' ) ;
2726var format = require ( '@stdlib/string/format' ) ;
2827var pkg = require ( './../package.json' ) . name ;
@@ -37,24 +36,19 @@ bench( pkg, function benchmark( b ) {
3736 var len ;
3837 var o ;
3938 var i ;
40- var j ;
4139
4240 function predicate ( v ) {
4341 return v [ 0 ] === 'b' ;
4442 }
4543
4644 vals = [ 'beep' , 'boop' , 'foo' , 'bar' , 'woot' ] ;
4745
48- arr = new Array ( 100 ) ;
49- len = arr . length ;
50- for ( i = 0 ; i < len ; i ++ ) {
51- j = floor ( randu ( ) * vals . length ) ;
52- arr [ i ] = vals [ j ] ;
53- }
46+ arr = discreteUniform ( 100 , 0 , vals . length - 1 , {
47+ 'dtype' : 'generic'
48+ } ) ;
5449 b . tic ( ) ;
5550 for ( i = 0 ; i < b . iterations ; i ++ ) {
56- j = floor ( randu ( ) * vals . length ) ;
57- arr [ 0 ] = vals [ j ] ;
51+ arr [ 0 ] = vals [ i % vals . length ] ;
5852 o = bifurcateBy ( arr , predicate ) ;
5953 if ( typeof o !== 'object' ) {
6054 b . fail ( 'should return an array' ) ;
@@ -75,7 +69,6 @@ bench( format( '%s::values', pkg ), function benchmark( b ) {
7569 var len ;
7670 var o ;
7771 var i ;
78- var j ;
7972
8073 function predicate ( v ) {
8174 return v [ 0 ] === 'b' ;
@@ -86,16 +79,12 @@ bench( format( '%s::values', pkg ), function benchmark( b ) {
8679 opts = {
8780 'returns' : 'values'
8881 } ;
89- arr = new Array ( 100 ) ;
90- len = arr . length ;
91- for ( i = 0 ; i < len ; i ++ ) {
92- j = floor ( randu ( ) * vals . length ) ;
93- arr [ i ] = vals [ j ] ;
94- }
82+ arr = discreteUniform ( 100 , 0 , vals . length - 1 , {
83+ 'dtype' : 'generic'
84+ } ) ;
9585 b . tic ( ) ;
9686 for ( i = 0 ; i < b . iterations ; i ++ ) {
97- j = floor ( randu ( ) * vals . length ) ;
98- arr [ 0 ] = vals [ j ] ;
87+ arr [ 0 ] = vals [ i % vals . length ] ;
9988 o = bifurcateBy ( arr , opts , predicate ) ;
10089 if ( typeof o !== 'object' ) {
10190 b . fail ( 'should return an array' ) ;
@@ -116,7 +105,6 @@ bench( format( '%s::indices', pkg ), function benchmark( b ) {
116105 var len ;
117106 var o ;
118107 var i ;
119- var j ;
120108
121109 function predicate ( v ) {
122110 return v [ 0 ] === 'b' ;
@@ -127,16 +115,12 @@ bench( format( '%s::indices', pkg ), function benchmark( b ) {
127115 opts = {
128116 'returns' : 'indices'
129117 } ;
130- arr = new Array ( 100 ) ;
131- len = arr . length ;
132- for ( i = 0 ; i < len ; i ++ ) {
133- j = floor ( randu ( ) * vals . length ) ;
134- arr [ i ] = vals [ j ] ;
135- }
118+ arr = discreteUniform ( 100 , 0 , vals . length - 1 , {
119+ 'dtype' : 'generic'
120+ } ) ;
136121 b . tic ( ) ;
137122 for ( i = 0 ; i < b . iterations ; i ++ ) {
138- j = floor ( randu ( ) * vals . length ) ;
139- arr [ 0 ] = vals [ j ] ;
123+ arr [ 0 ] = vals [ i % vals . length ] ;
140124 o = bifurcateBy ( arr , opts , predicate ) ;
141125 if ( typeof o !== 'object' ) {
142126 b . fail ( 'should return an array' ) ;
@@ -157,7 +141,6 @@ bench( format( '%s::pairs', pkg ), function benchmark( b ) {
157141 var len ;
158142 var o ;
159143 var i ;
160- var j ;
161144
162145 function predicate ( v ) {
163146 return v [ 0 ] === 'b' ;
@@ -168,16 +151,12 @@ bench( format( '%s::pairs', pkg ), function benchmark( b ) {
168151 opts = {
169152 'returns' : '*'
170153 } ;
171- arr = new Array ( 100 ) ;
172- len = arr . length ;
173- for ( i = 0 ; i < len ; i ++ ) {
174- j = floor ( randu ( ) * vals . length ) ;
175- arr [ i ] = vals [ j ] ;
176- }
154+ arr = discreteUniform ( 100 , 0 , vals . length - 1 , {
155+ 'dtype' : 'generic'
156+ } ) ;
177157 b . tic ( ) ;
178158 for ( i = 0 ; i < b . iterations ; i ++ ) {
179- j = floor ( randu ( ) * vals . length ) ;
180- arr [ 0 ] = vals [ j ] ;
159+ arr [ 0 ] = vals [ i % vals . length ] ;
181160 o = bifurcateBy ( arr , opts , predicate ) ;
182161 if ( typeof o !== 'object' ) {
183162 b . fail ( 'should return an array' ) ;
@@ -198,7 +177,6 @@ bench( format( '%s::this_context', pkg ), function benchmark( b ) {
198177 var len ;
199178 var o ;
200179 var i ;
201- var j ;
202180
203181 function predicate ( v ) {
204182 return v [ 0 ] === 'b' ;
@@ -209,16 +187,12 @@ bench( format( '%s::this_context', pkg ), function benchmark( b ) {
209187 opts = {
210188 'thisArg' : { }
211189 } ;
212- arr = new Array ( 100 ) ;
213- len = arr . length ;
214- for ( i = 0 ; i < len ; i ++ ) {
215- j = floor ( randu ( ) * vals . length ) ;
216- arr [ i ] = vals [ j ] ;
217- }
190+ arr = discreteUniform ( 100 , 0 , vals . length - 1 , {
191+ 'dtype' : 'generic'
192+ } ) ;
218193 b . tic ( ) ;
219194 for ( i = 0 ; i < b . iterations ; i ++ ) {
220- j = floor ( randu ( ) * vals . length ) ;
221- arr [ 0 ] = vals [ j ] ;
195+ arr [ 0 ] = vals [ i % vals . length ] ;
222196 o = bifurcateBy ( arr , opts , predicate ) ;
223197 if ( typeof o !== 'object' ) {
224198 b . fail ( 'should return an array' ) ;
0 commit comments