'use strict'; // MODULES // var bench = require( '@stdlib/bench' ); var pow = require( '@stdlib/math/base/special/pow' ); var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive; var pkg = require( './../package.json' ).name; var isArrayArray = require( './../lib' ); // FUNCTIONS // /** * Creates a benchmark function. * * @private * @param {PositiveInteger} len - array length * @returns {Function} benchmark function */ function createBenchmark( len ) { var x; var i; x = []; for ( i = 0; i < len; i++ ) { x.push( [ i ] ); } return benchmark; /** * Benchmark function. * * @private * @param {Benchmark} b - benchmark instance */ function benchmark( b ) { var bool; var i; b.tic(); for ( i = 0; i < b.iterations; i++ ) { // Note: we are testing the worst case scenario where a function must scan the entire array before finding a failing value. x[ len-1 ] = i; bool = isArrayArray( x ); if ( !isBoolean( bool ) ) { b.fail( 'should return a boolean' ); } } b.toc(); if ( isBoolean( bool ) ) { b.pass( 'benchmark finished' ); } else { b.fail( 'should return a boolean' ); } b.end(); } // end FUNCTION benchmark() } // end FUNCTION createBenchmark() // MAIN // /** * Main execution sequence. * * @private */ function main() { var len; var min; var max; var f; var i; min = 1; // 10^min max = 6; // 10^max for ( i = min; i <= max; i++ ) { len = pow( 10, i ); f = createBenchmark( len ); bench( pkg+':len='+len, f ); } } // end FUNCTION main() main();