Skip to content

Commit 1f6fc8b

Browse files
bench: update benchmarks to measure affirmative/negative test values
PR-URL: #1428 Ref: #1148 --------- Signed-off-by: Soumajit Chatterjee <[email protected]> Co-authored-by: Philipp Burckhardt <[email protected]> Reviewed-by: Philipp Burckhardt <[email protected]>
1 parent 3c5fc0d commit 1f6fc8b

File tree

1 file changed

+161
-49
lines changed
  • lib/node_modules/@stdlib/assert/is-cube-number/benchmark

1 file changed

+161
-49
lines changed

lib/node_modules/@stdlib/assert/is-cube-number/benchmark/benchmark.js

Lines changed: 161 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* limitations under the License.
1717
*/
1818

19-
/* eslint-disable no-new-wrappers, no-empty-function */
19+
/* eslint-disable no-empty-function */
2020

2121
'use strict';
2222

@@ -31,26 +31,51 @@ var isCubeNumber = require( './../lib' );
3131

3232
// MAIN //
3333

34-
bench( pkg+'::primitives', function benchmark( b ) {
34+
bench( pkg+'::primitives,true', function benchmark( b ) {
35+
var values;
36+
var bool;
37+
var i;
38+
39+
values = [
40+
8,
41+
64,
42+
1,
43+
-27,
44+
-8,
45+
125,
46+
-1000,
47+
27
48+
];
49+
50+
b.tic();
51+
for ( i = 0; i < b.iterations; i++ ) {
52+
bool = isCubeNumber( values[ i % values.length ] );
53+
if ( typeof bool !== 'boolean' ) {
54+
b.fail( 'should return a boolean' );
55+
}
56+
}
57+
b.toc();
58+
if ( !isBoolean( bool ) ) {
59+
b.fail( 'should return a boolean' );
60+
}
61+
b.pass( 'benchmark finished' );
62+
b.end();
63+
});
64+
65+
bench( pkg+'::primitives,false', function benchmark( b ) {
3566
var values;
3667
var bool;
3768
var i;
3869

3970
values = [
4071
'5',
41-
5,
42-
4,
43-
0.5,
44-
1.0,
45-
0.0,
46-
3.14,
47-
-5,
48-
-4,
4972
NaN,
5073
true,
5174
false,
5275
null,
53-
void 0
76+
void 0,
77+
-6,
78+
7.25
5479
];
5580

5681
b.tic();
@@ -68,19 +93,51 @@ bench( pkg+'::primitives', function benchmark( b ) {
6893
b.end();
6994
});
7095

71-
bench( pkg+'::objects', function benchmark( b ) {
96+
bench( pkg+'::objects,true', function benchmark( b ) {
7297
var values;
7398
var bool;
7499
var i;
75100

76101
values = [
102+
new Number( 8 ),
103+
new Number( 64 ),
104+
new Number( 1 ),
105+
new Number( -27 ),
106+
new Number( -8 ),
107+
new Number( 125 ),
108+
new Number( -1000 ),
109+
new Number( 27 )
110+
];
111+
112+
b.tic();
113+
for ( i = 0; i < b.iterations; i++ ) {
114+
bool = isCubeNumber( values[ i % values.length ] );
115+
if ( typeof bool !== 'boolean' ) {
116+
b.fail( 'should return a boolean' );
117+
}
118+
}
119+
b.toc();
120+
if ( !isBoolean( bool ) ) {
121+
b.fail( 'should return a boolean' );
122+
}
123+
b.pass( 'benchmark finished' );
124+
b.end();
125+
});
126+
127+
bench( pkg+'::objects,false', function benchmark( b ) {
128+
var values;
129+
var bool;
130+
var i;
131+
132+
values = [
133+
new Number( 5 ),
134+
new Number( NaN ),
135+
new Number( 3.14 ),
136+
new Number( -6 ),
137+
new Number( 7.25 ),
77138
[],
78139
{},
79-
function noop() {},
80-
new Number( 8.0 ),
81-
new Number( 0.5 ),
82-
new Number( NaN ),
83-
new Number( 3.14 )
140+
function noop() {}
84141
];
85142

86143
b.tic();
@@ -98,26 +155,51 @@ bench( pkg+'::objects', function benchmark( b ) {
98155
b.end();
99156
});
100157

101-
bench( pkg+'::primitives:isPrimitive', function benchmark( b ) {
158+
bench( pkg+'::primitives:isPrimitive,true', function benchmark( b ) {
159+
var values;
160+
var bool;
161+
var i;
162+
163+
values = [
164+
8,
165+
64,
166+
1,
167+
-27,
168+
-8,
169+
125,
170+
-1000,
171+
27
172+
];
173+
174+
b.tic();
175+
for ( i = 0; i < b.iterations; i++ ) {
176+
bool = isCubeNumber.isPrimitive( values[ i % values.length ] );
177+
if ( typeof bool !== 'boolean' ) {
178+
b.fail( 'should return a boolean' );
179+
}
180+
}
181+
b.toc();
182+
if ( !isBoolean( bool ) ) {
183+
b.fail( 'should return a boolean' );
184+
}
185+
b.pass( 'benchmark finished' );
186+
b.end();
187+
});
188+
189+
bench( pkg+'::primitives:isPrimitive,false', function benchmark( b ) {
102190
var values;
103191
var bool;
104192
var i;
105193

106194
values = [
107195
'5',
108-
5,
109-
4,
110-
3.14,
111-
0.5,
112-
1.0,
113-
0.0,
114-
-5,
115-
-4,
116196
NaN,
117197
true,
118198
false,
119199
null,
120-
void 0
200+
void 0,
201+
-6,
202+
7.25
121203
];
122204

123205
b.tic();
@@ -135,19 +217,23 @@ bench( pkg+'::primitives:isPrimitive', function benchmark( b ) {
135217
b.end();
136218
});
137219

138-
bench( pkg+'::objects:isPrimitive', function benchmark( b ) {
220+
bench( pkg+'::objects:isPrimitive,false', function benchmark( b ) {
139221
var values;
140222
var bool;
141223
var i;
142224

143225
values = [
226+
new Number( 8 ),
227+
new Number( 64 ),
228+
new Number( 1 ),
229+
new Number( -27 ),
230+
new Number( -8 ),
231+
new Number( 125 ),
232+
new Number( -1000 ),
233+
new Number( 27 ),
144234
[],
145235
{},
146-
function noop() {},
147-
new Number( 8.0 ),
148-
new Number( 0.5 ),
149-
new Number( NaN ),
150-
new Number( 3.14 )
236+
function noop() {}
151237
];
152238

153239
b.tic();
@@ -165,26 +251,51 @@ bench( pkg+'::objects:isPrimitive', function benchmark( b ) {
165251
b.end();
166252
});
167253

168-
bench( pkg+'::primitives:isObject', function benchmark( b ) {
254+
bench( pkg+'::primitives:isObject,false', function benchmark( b ) {
169255
var values;
170256
var bool;
171257
var i;
172258

173259
values = [
174260
'5',
175-
5,
176-
4,
177-
3.14,
178-
0.5,
179-
1.0,
180-
0.0,
181-
-5,
182-
-4,
183261
NaN,
184262
true,
185263
false,
186264
null,
187-
void 0
265+
void 0,
266+
-6,
267+
7.25
268+
];
269+
270+
b.tic();
271+
for ( i = 0; i < b.iterations; i++ ) {
272+
bool = isCubeNumber.isObject( values[ i % values.length ] );
273+
if ( typeof bool !== 'boolean' ) {
274+
b.fail( 'should return a boolean' );
275+
}
276+
}
277+
b.toc();
278+
if ( !isBoolean( bool ) ) {
279+
b.fail( 'should return a boolean' );
280+
}
281+
b.pass( 'benchmark finished' );
282+
b.end();
283+
});
284+
285+
bench( pkg+'::objects:isObject,true', function benchmark( b ) {
286+
var values;
287+
var bool;
288+
var i;
289+
290+
values = [
291+
new Number( 8 ),
292+
new Number( 64 ),
293+
new Number( 1 ),
294+
new Number( -27 ),
295+
new Number( -8 ),
296+
new Number( 125 ),
297+
new Number( -1000 ),
298+
new Number( 27 )
188299
];
189300

190301
b.tic();
@@ -202,19 +313,20 @@ bench( pkg+'::primitives:isObject', function benchmark( b ) {
202313
b.end();
203314
});
204315

205-
bench( pkg+'::objects:isObject', function benchmark( b ) {
316+
bench( pkg+'::objects:isObject,false', function benchmark( b ) {
206317
var values;
207318
var bool;
208319
var i;
209320

210321
values = [
322+
new Number( 5 ),
323+
new Number( NaN ),
324+
new Number( 3.14 ),
325+
new Number( -6 ),
326+
new Number( 7.25 ),
211327
[],
212328
{},
213-
function noop() {},
214-
new Number( 8.0 ),
215-
new Number( 0.5 ),
216-
new Number( NaN ),
217-
new Number( 3.14 )
329+
function noop() {}
218330
];
219331

220332
b.tic();

0 commit comments

Comments
 (0)