Skip to content
Closed

Test #8298

Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* @license Apache-2.0
*
* Copyright (c) 2018 The Stdlib Authors.
* Copyright (c) 2018 The Stdlib Authors .
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -20,11 +20,11 @@

// MODULES //

var bench = require( '@stdlib/bench' );
var isArray = require( '@stdlib/assert/is-array' );
var floor = require( '@stdlib/math/base/special/floor' );
var randu = require( '@stdlib/random/base/randu' );
var pow = require( '@stdlib/math/base/special/pow' );
var bench = require('@stdlib/bench');
var isArray = require('@stdlib/assert/is-array');
var floor = require('@stdlib/math/base/special/floor');
var randu = require('@stdlib/random/base/randu');
var pow = require('@stdlib/math/base/special/pow');


// VARIABLES //
Expand All @@ -41,7 +41,7 @@ var NAME = 'js-array-length-fast-elements-heuristic';
*
* - https://github.com/v8/v8/blob/2feb99dc8ac75f20d2e5c9c1b343e923476851ea/src/objects/js-array.h#L87-L88
*/
var MAX_FAST_ELEMENTS_HEURISTIC = 64000|0; // eslint-disable-line id-length
var MAX_FAST_ELEMENTS_HEURISTIC = 64000 | 0; // eslint-disable-line id-length


// FUNCTIONS //
Expand All @@ -53,24 +53,24 @@ var MAX_FAST_ELEMENTS_HEURISTIC = 64000|0; // eslint-disable-line id-length
* @param {Array} arr - array to copy
* @returns {Array} array copy
*/
function copy1( arr ) {
function copy1(arr) {
var out;
var len;
var i;

len = arr.length;
if ( len > MAX_FAST_ELEMENTS_HEURISTIC ) {
out = new Array( MAX_FAST_ELEMENTS_HEURISTIC );
for ( i = 0; i < MAX_FAST_ELEMENTS_HEURISTIC; i++ ) {
out[ i ] = arr[ i ];
if (len > MAX_FAST_ELEMENTS_HEURISTIC) {
out = [];
for (i = 0; i < MAX_FAST_ELEMENTS_HEURISTIC; i++) {
out.push(arr[i]);
}
for ( i = MAX_FAST_ELEMENTS_HEURISTIC; i < len; i++ ) {
out.push( arr[ i ] );
for (i = MAX_FAST_ELEMENTS_HEURISTIC; i < len; i++) {
out.push(arr[i]);
}
} else {
out = new Array( len );
for ( i = 0; i < len; i++ ) {
out[ i ] = arr[ i ];
out = [];
for (i = 0; i < len; i++) {
out.push(arr[i]);
}
}
return out;
Expand All @@ -83,15 +83,15 @@ function copy1( arr ) {
* @param {Array} arr - array to copy
* @returns {Array} array copy
*/
function copy2( arr ) {
function copy2(arr) {
var out;
var len;
var i;

len = arr.length;
out = new Array( len );
for ( i = 0; i < len; i++ ) {
out[ i ] = arr[ i ];
out = [];
for (i = 0; i < len; i++) {
out.push(arr[i]);
}
return out;
}
Expand All @@ -103,15 +103,15 @@ function copy2( arr ) {
* @param {Array} arr - array to copy
* @returns {Array} array copy
*/
function copy3( arr ) {
function copy3(arr) {
var out;
var len;
var i;

len = arr.length;
out = [];
for ( i = 0; i < len; i++ ) {
out.push( arr[ i ] );
for (i = 0; i < len; i++) {
out.push(arr[i]);
}
return out;
}
Expand All @@ -124,13 +124,13 @@ function copy3( arr ) {
* @param {PositiveInteger} len - array length
* @returns {Function} benchmark function
*/
function createBenchmark( fcn, len ) {
function createBenchmark(fcn, len) {
var arr;
var i;

arr = [];
for ( i = 0; i < len; i++ ) {
arr.push( 0 );
for (i = 0; i < len; i++) {
arr.push(0);
}
return benchmark;

Expand All @@ -140,23 +140,23 @@ function createBenchmark( fcn, len ) {
* @private
* @param {Benchmark} b - benchmark instance
*/
function benchmark( b ) {
function benchmark(b) {
var out;
var i;

b.tic();
for ( i = 0; i < b.iterations; i++ ) {
arr[ 0 ] = floor( randu()*100.0 )|0; // cast to int32
out = fcn( arr );
if ( out.length !== len ) {
b.fail( 'unexpected length' );
for (i = 0; i < b.iterations; i++) {
arr[0] = floor(randu() * 100.0) | 0; // cast to int32
out = fcn(arr);
if (out.length !== len) {
b.fail('unexpected length');
}
}
b.toc();
if ( !isArray( out ) ) {
b.fail( 'should return an array' );
if (!isArray(out)) {
b.fail('should return an array');
}
b.pass( 'benchmark finished' );
b.pass('benchmark finished');
b.end();
}
}
Expand All @@ -179,17 +179,17 @@ function main() {
min = 1; // 10^min
max = 6; // 10^max

for ( i = min; i <= max; i++ ) {
len = pow( 10, i );
for (i = min; i <= max; i++) {
len = pow(10, i);

f = createBenchmark( copy1, len );
bench( NAME+'::heuristic:len='+len, f );
f = createBenchmark(copy1, len);
bench(NAME + '::heuristic:len=' + len, f);

f = createBenchmark( copy2, len );
bench( NAME+'::preallocate:len='+len, f );
f = createBenchmark(copy2, len);
bench(NAME + '::preallocate:len=' + len, f);

f = createBenchmark( copy3, len );
bench( NAME+'::dynamic:len='+len, f );
f = createBenchmark(copy3, len);
bench(NAME + '::dynamic:len=' + len, f);
}
}

Expand Down
Loading