From e901418383170aa6278b9f489cc41052aaafa657 Mon Sep 17 00:00:00 2001 From: hrshya Date: Tue, 15 Apr 2025 13:30:11 +0530 Subject: [PATCH] bench: update random value generation --- .../benchmark/benchmark.js | 12 ++++++++---- .../benchmark/benchmark.native.js | 12 ++++++++---- .../benchmark/c/native/benchmark.c | 9 ++++++--- .../assert/is-nonnegative-integer/test/test.js | 14 +++++++------- .../is-nonnegative-integer/test/test.native.js | 14 +++++++------- .../benchmark/benchmark.js | 8 ++++++-- .../benchmark/benchmark.native.js | 8 ++++++-- .../is-nonpositive-finite/benchmark/benchmark.js | 11 ++++++++--- .../benchmark/benchmark.native.js | 11 ++++++++--- .../benchmark/c/native/benchmark.c | 9 ++++++--- .../assert/is-nonpositive-finite/test/test.js | 16 ++++++++-------- .../is-nonpositive-finite/test/test.native.js | 6 +++--- 12 files changed, 81 insertions(+), 49 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/benchmark.js index f03c172ee07e..b5681f8414aa 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/benchmark.js @@ -21,8 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); -var round = require( '@stdlib/math/base/special/round' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive; var pkg = require( './../package.json' ).name; var isNonNegativeInteger = require( './../lib' ); @@ -31,14 +30,19 @@ var isNonNegativeInteger = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var opts; var x; var y; var i; + opts = { + 'dtype': 'float64' + }; + x = discreteUniform( 100, -5.0e6, 5.0e6, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = round( (randu()*1.0e7) - 5.0e6 ); - y = isNonNegativeInteger( x ); + y = isNonNegativeInteger( x[ i%x.length ] ); if ( typeof y !== 'boolean' ) { b.fail( 'should return a boolean' ); } diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/benchmark.native.js index f7c9547d4785..974829c4c274 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/benchmark.native.js @@ -22,8 +22,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); -var round = require( '@stdlib/math/base/special/round' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive; var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -40,14 +39,19 @@ var opts = { // MAIN // bench( pkg+'::native', opts, function benchmark( b ) { + var opts; var x; var y; var i; + opts = { + 'dtype': 'float64' + }; + x = discreteUniform( 100, -5.0e6, 5.0e6, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = round( ( randu() * 1.0e7 ) - 5.0e6 ); - y = isNonNegativeInteger( x ); + y = isNonNegativeInteger( x[ i%x.length ] ); if ( typeof y !== 'boolean' ) { b.fail( 'should return a boolean' ); } diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/c/native/benchmark.c index 17a625797438..0a6a5cf91614 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/benchmark/c/native/benchmark.c @@ -92,15 +92,18 @@ static double rand_double( void ) { */ static double benchmark( void ) { double elapsed; - double x; + double x[ 100 ]; double t; bool b; int i; + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( rand_double() * 1000.0 ) - 500.0; + } + t = tic(); for ( i = 0; i < ITERATIONS; i++ ) { - x = ( rand_double() * 1000.0 ) - 500.0; - b = stdlib_base_is_nonnegative_integer( x ); + b = stdlib_base_is_nonnegative_integer( x[ i%100 ] ); if ( b != true && b != false ) { printf( "should return either true or false\n" ); break; diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/test/test.js b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/test/test.js index fe9651dd2b7a..13813a085551 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/test/test.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/test/test.js @@ -39,7 +39,7 @@ tape( 'main export is a function', function test( t ) { tape( 'the function returns `true` if provided a nonnegative integer', function test( t ) { var i; for ( i = 0; i < 101; i++ ) { - t.equal( isNonNegativeInteger( i ), true, 'returns true when provided '+i ); + t.equal( isNonNegativeInteger( i ), true, 'returns expected value when provided '+i ); } t.end(); }); @@ -47,7 +47,7 @@ tape( 'the function returns `true` if provided a nonnegative integer', function tape( 'the function returns `false` if not provided a nonnegative integer', function test( t ) { var i; for ( i = -1; i > -101; i-- ) { - t.equal( isNonNegativeInteger( i ), false, 'returns false when provided '+i ); + t.equal( isNonNegativeInteger( i ), false, 'returns expected value when provided '+i ); } t.end(); }); @@ -58,28 +58,28 @@ tape( 'the function returns `false` if not provided an integer', function test( for ( i = 0; i < 100; i++ ) { v = ( randu()*100.0 ) - 50.0; if ( trunc(v) !== v ) { - t.equal( isNonNegativeInteger( v ), false, 'returns false when provided '+v ); + t.equal( isNonNegativeInteger( v ), false, 'returns expected value when provided '+v ); } } t.end(); }); tape( 'the function returns `false` if provided `NaN`', function test( t ) { - t.equal( isNonNegativeInteger( NaN ), false, 'returns false' ); + t.equal( isNonNegativeInteger( NaN ), false, 'returns expected value' ); t.end(); }); tape( 'WARNING: the function returns `true` if provided `+infinity`', function test( t ) { - t.equal( isNonNegativeInteger( PINF ), true, 'returns true' ); + t.equal( isNonNegativeInteger( PINF ), true, 'returns expected value' ); t.end(); }); tape( 'the function does not distinguish between positive and negative zero and returns `true` if provided `-0`', function test( t ) { - t.equal( isNonNegativeInteger( -0.0 ), true, 'returns true' ); + t.equal( isNonNegativeInteger( -0.0 ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `false` if provided `-infinity`', function test( t ) { - t.equal( isNonNegativeInteger( NINF ), false, 'returns false' ); + t.equal( isNonNegativeInteger( NINF ), false, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/test/test.native.js b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/test/test.native.js index f963c1542e1d..2b1d0663fc9e 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integer/test/test.native.js @@ -48,7 +48,7 @@ tape( 'main export is a function', opts, function test( t ) { tape( 'the function returns `true` if provided a nonnegative integer', opts, function test( t ) { var i; for ( i = 0; i < 101; i++ ) { - t.equal( isNonNegativeInteger( i ), true, 'returns true when provided '+i ); + t.equal( isNonNegativeInteger( i ), true, 'returns expected value when provided '+i ); } t.end(); }); @@ -56,7 +56,7 @@ tape( 'the function returns `true` if provided a nonnegative integer', opts, fun tape( 'the function returns `false` if not provided a nonnegative integer', opts, function test( t ) { var i; for ( i = -1; i > -101; i-- ) { - t.equal( isNonNegativeInteger( i ), false, 'returns false when provided '+i ); + t.equal( isNonNegativeInteger( i ), false, 'returns expected value when provided '+i ); } t.end(); }); @@ -67,28 +67,28 @@ tape( 'the function returns `false` if not provided an integer', opts, function for ( i = 0; i < 100; i++ ) { v = ( randu() * 100.0 ) - 50.0; if ( trunc(v) !== v ) { - t.equal( isNonNegativeInteger( v ), false, 'returns false when provided '+v ); + t.equal( isNonNegativeInteger( v ), false, 'returns expected value when provided '+v ); } } t.end(); }); tape( 'the function returns `false` if provided `NaN`', opts, function test( t ) { - t.equal( isNonNegativeInteger( NaN ), false, 'returns false' ); + t.equal( isNonNegativeInteger( NaN ), false, 'returns expected value' ); t.end(); }); tape( 'WARNING: the function returns `true` if provided `+infinity`', opts, function test( t ) { - t.equal( isNonNegativeInteger( PINF ), true, 'returns true' ); + t.equal( isNonNegativeInteger( PINF ), true, 'returns expected value' ); t.end(); }); tape( 'the function does not distinguish between positive and negative zero and returns `true` if provided `-0`', opts, function test( t ) { - t.equal( isNonNegativeInteger( -0.0 ), true, 'returns true' ); + t.equal( isNonNegativeInteger( -0.0 ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `false` if provided `-infinity`', opts, function test( t ) { - t.equal( isNonNegativeInteger( NINF ), false, 'returns false' ); + t.equal( isNonNegativeInteger( NINF ), false, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integerf/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integerf/benchmark/benchmark.js index 673f63d18aa8..ce6d724c7284 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integerf/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integerf/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/array/discrete-uniform' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive; var pkg = require( './../package.json' ).name; var isNonNegativeIntegerf = require( './../lib' ); @@ -30,11 +30,15 @@ var isNonNegativeIntegerf = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var opts; var x; var y; var i; - x = randu( 100, -5.0e6, 5.0e6 ); + opts = { + 'dtype': 'float32' + }; + x = discreteUniform( 100, -5.0e6, 5.0e6, opts ); b.tic(); for ( i = 0; i < b.iterations; i++ ) { diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integerf/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integerf/benchmark/benchmark.native.js index 47ce43e820d6..e38fd6956f94 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integerf/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonnegative-integerf/benchmark/benchmark.native.js @@ -22,7 +22,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/array/discrete-uniform' ); +var discreteUniform = require( '@stdlib/random/array/discrete-uniform' ); var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive; var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -39,11 +39,15 @@ var opts = { // MAIN // bench( pkg+'::native', opts, function benchmark( b ) { + var opts; var x; var y; var i; - x = randu( 100, -5.0e6, 5.0e6 ); + opts = { + 'dtype': 'float32' + }; + x = discreteUniform( 100, -5.0e6, 5.0e6, opts ); b.tic(); for ( i = 0; i < b.iterations; i++ ) { diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/benchmark.js index 2110a68dbd75..c3811de14f26 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/benchmark.js @@ -21,7 +21,7 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/array/uniform' ); var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive; var pkg = require( './../package.json' ).name; var isNonPositiveFinite = require( './../lib' ); @@ -30,14 +30,19 @@ var isNonPositiveFinite = require( './../lib' ); // MAIN // bench( pkg, function benchmark( b ) { + var opts; var x; var y; var i; + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, -100.0, 100.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = (randu()*200.0) - 100.0; - y = isNonPositiveFinite( x ); + y = isNonPositiveFinite( x[ i%x.length ] ); if ( typeof y !== 'boolean' ) { b.fail( 'should return a boolean' ); } diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/benchmark.native.js index 2b249e0b0a0f..e176547fb53c 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/benchmark.native.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/benchmark.native.js @@ -22,7 +22,7 @@ var resolve = require( 'path' ).resolve; var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/array/uniform' ); var isBoolean = require( '@stdlib/assert/is-boolean' ).isPrimitive; var tryRequire = require( '@stdlib/utils/try-require' ); var pkg = require( './../package.json' ).name; @@ -39,14 +39,19 @@ var opts = { // MAIN // bench( pkg+'::native', opts, function benchmark( b ) { + var opts; var x; var y; var i; + opts = { + 'dtype': 'float64' + }; + x = uniform( 100, -100.0, 100.0, opts ); + b.tic(); for ( i = 0; i < b.iterations; i++ ) { - x = ( randu()*200.0 ) - 100.0; - y = isNonPositiveFinite( x ); + y = isNonPositiveFinite( x[ i%x.length ] ); if ( typeof y !== 'boolean' ) { b.fail( 'should return a boolean' ); } diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/c/native/benchmark.c index f55802f06659..b0430ab94bf3 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/c/native/benchmark.c +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/benchmark/c/native/benchmark.c @@ -92,15 +92,18 @@ static double rand_double( void ) { */ static double benchmark( void ) { double elapsed; - double x; + double x[ 100 ]; double t; bool b; int i; + for ( i = 0; i < 100; i++ ) { + x[ i ] = ( rand_double() * 200.0 ) - 100.0; + } + t = tic(); for ( i = 0; i < ITERATIONS; i++ ) { - x = ( rand_double() * 200.0 ) - 100.0; - b = stdlib_base_is_nonpositive_finite( x ); + b = stdlib_base_is_nonpositive_finite( x[ i%100 ] ); if ( b != true && b != false ) { printf( "should return either true or false\n" ); break; diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/test/test.js b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/test/test.js index fe78f0bdb6cd..b18e661b5e60 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/test/test.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/test/test.js @@ -35,38 +35,38 @@ tape( 'main export is a function', function test( t ) { }); tape( 'the function returns `true` if provided a nonpositive finite number', function test( t ) { - t.equal( isNonPositiveFinite( -3.14 ), true, 'returns true' ); - t.equal( isNonPositiveFinite( 0.0 ), true, 'returns true' ); - t.equal( isNonPositiveFinite( -0.0 ), true, 'returns true' ); + t.equal( isNonPositiveFinite( -3.14 ), true, 'returns expected value' ); + t.equal( isNonPositiveFinite( 0.0 ), true, 'returns expected value' ); + t.equal( isNonPositiveFinite( -0.0 ), true, 'returns expected value' ); t.end(); }); tape( 'the function returns `false` if provided a positive number', function test( t ) { var bool = isNonPositiveFinite( 3.14 ); - t.equal( bool, false, 'returns false' ); + t.equal( bool, false, 'returns expected value' ); t.end(); }); tape( 'the function returns `false` if provided `NaN`', function test( t ) { var bool = isNonPositiveFinite( NaN ); - t.equal( bool, false, 'returns false' ); + t.equal( bool, false, 'returns expected value' ); t.end(); }); tape( 'the function returns `false` if provided positive infinity', function test( t ) { var bool = isNonPositiveFinite( PINF ); - t.equal( bool, false, 'returns false' ); + t.equal( bool, false, 'returns expected value' ); t.end(); }); tape( 'the function returns `false` if provided negative infinity', function test( t ) { var bool = isNonPositiveFinite( NINF ); - t.equal( bool, false, 'returns false' ); + t.equal( bool, false, 'returns expected value' ); t.end(); }); tape( 'the function returns `false` if provided `NaN`', function test( t ) { var bool = isNonPositiveFinite( NaN ); - t.equal( bool, false, 'returns false' ); + t.equal( bool, false, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/test/test.native.js b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/test/test.native.js index b0d3ce48f08d..385e3df30b2f 100644 --- a/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/assert/is-nonpositive-finite/test/test.native.js @@ -55,7 +55,7 @@ tape( 'the function returns `true` if provided a nonpositive finite number', opt ]; for ( i = 0; i < values.length; i++ ) { - t.equal( isNonPositiveFinite( values[ i ] ), true, 'returns true when provided ' + values[ i ] ); + t.equal( isNonPositiveFinite( values[ i ] ), true, 'returns expected value when provided ' + values[ i ] ); } t.end(); }); @@ -72,12 +72,12 @@ tape( 'the function returns `false` if not provided a nonpositive finite number' ]; for ( i = 0; i < values.length; i++ ) { - t.equal( isNonPositiveFinite( values[ i ] ), false, 'returns false when provided ' + values[ i ] ); + t.equal( isNonPositiveFinite( values[ i ] ), false, 'returns expected value when provided ' + values[ i ] ); } t.end(); }); tape( 'the function returns `false` if provided `NaN`', opts, function test( t ) { - t.equal( isNonPositiveFinite( NaN ), false, 'returns false' ); + t.equal( isNonPositiveFinite( NaN ), false, 'returns expected value' ); t.end(); });