From 067e5d4f360935b1961b1fbd92c1ca23e9a0a2b9 Mon Sep 17 00:00:00 2001 From: Athan Reines Date: Fri, 1 Dec 2023 19:11:03 -0800 Subject: [PATCH] refactor: update tests and benchmarks according to current project conventions Ref: https://github.com/stdlib-js/stdlib/issues/788 --- .../@stdlib/blas/base/gasum/README.md | 39 +++++-------------- .../blas/base/gasum/benchmark/benchmark.js | 17 ++++---- .../base/gasum/benchmark/benchmark.ndarray.js | 17 ++++---- .../@stdlib/blas/base/gasum/examples/index.js | 24 +++--------- .../@stdlib/blas/base/gasum/test/test.main.js | 22 +++++------ .../blas/base/gasum/test/test.ndarray.js | 18 ++++----- 6 files changed, 49 insertions(+), 88 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/gasum/README.md b/lib/node_modules/@stdlib/blas/base/gasum/README.md index ee08b27dec3..9f26249746c 100644 --- a/lib/node_modules/@stdlib/blas/base/gasum/README.md +++ b/lib/node_modules/@stdlib/blas/base/gasum/README.md @@ -71,14 +71,9 @@ The function has the following parameters: The `N` and `stride` parameters determine which elements in `x` are used to compute the sum. For example, to sum every other value, ```javascript -var floor = require( '@stdlib/math/base/special/floor' ); - var x = [ -2.0, 1.0, 3.0, -5.0, 4.0, 0.0, -1.0, -3.0 ]; -var N = floor( x.length / 2 ); -var stride = 2; - -var sum = gasum( N, x, stride ); +var sum = gasum( 4, x, 2 ); // returns 10.0 ``` @@ -87,18 +82,14 @@ Note that indexing is relative to the first index. To introduce an offset, use [ ```javascript var Float64Array = require( '@stdlib/array/float64' ); -var floor = require( '@stdlib/math/base/special/floor' ); - // Initial array... var x0 = new Float64Array( [ 1.0, -2.0, 3.0, -4.0, 5.0, -6.0 ] ); // Create an offset view... var x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element -var N = floor( x0.length / 2 ); - // Sum every other value... -var sum = gasum( N, x1, 2 ); +var sum = gasum( 3, x1, 2 ); // returns 12.0 ``` @@ -156,27 +147,15 @@ sum = gasum.ndarray( 3, x, -1, x.length-1 ); ```javascript -var round = require( '@stdlib/math/base/special/round' ); -var randu = require( '@stdlib/random/base/randu' ); +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var gasum = require( '@stdlib/blas/base/gasum' ); -var rand; -var sign; -var x; -var i; - -x = []; -for ( i = 0; i < 100; i++ ) { - rand = round( randu()*100.0 ); - sign = randu(); - if ( sign < 0.5 ) { - sign = -1.0; - } else { - sign = 1.0; - } - x.push( sign*rand ); -} -console.log( gasum( x.length, x, 1 ) ); +var x = filledarrayBy( 10, 'generic', discreteUniform( -100, 100 ) ); +console.log( x ); + +var y = gasum( x.length, x, 1 ); +console.log( y ); ``` diff --git a/lib/node_modules/@stdlib/blas/base/gasum/benchmark/benchmark.js b/lib/node_modules/@stdlib/blas/base/gasum/benchmark/benchmark.js index 8cc3208e77f..03c6a6d2fac 100644 --- a/lib/node_modules/@stdlib/blas/base/gasum/benchmark/benchmark.js +++ b/lib/node_modules/@stdlib/blas/base/gasum/benchmark/benchmark.js @@ -21,14 +21,19 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); -var Float64Array = require( '@stdlib/array/float64' ); var pkg = require( './../package.json' ).name; var gasum = require( './../lib' ); +// VARIABLES // + +var rand = uniform( -100.0, 100.0 ); + + // FUNCTIONS // /** @@ -39,13 +44,7 @@ var gasum = require( './../lib' ); * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x; - var i; - - x = new Float64Array( len ); - for ( i = 0; i < x.length; i++ ) { - x[ i ] = ( randu()*20000.0 ) - 10000.0; - } + var x = filledarrayBy( len, 'float64', rand ); return benchmark; /** diff --git a/lib/node_modules/@stdlib/blas/base/gasum/benchmark/benchmark.ndarray.js b/lib/node_modules/@stdlib/blas/base/gasum/benchmark/benchmark.ndarray.js index 223b9645271..6b1e850c5de 100644 --- a/lib/node_modules/@stdlib/blas/base/gasum/benchmark/benchmark.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/gasum/benchmark/benchmark.ndarray.js @@ -21,14 +21,19 @@ // MODULES // var bench = require( '@stdlib/bench' ); -var randu = require( '@stdlib/random/base/randu' ); +var uniform = require( '@stdlib/random/base/uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var pow = require( '@stdlib/math/base/special/pow' ); -var Float64Array = require( '@stdlib/array/float64' ); var pkg = require( './../package.json' ).name; var gasum = require( './../lib' ).ndarray; +// VARIABLES // + +var rand = uniform( -100.0, 100.0 ); + + // FUNCTIONS // /** @@ -39,13 +44,7 @@ var gasum = require( './../lib' ).ndarray; * @returns {Function} benchmark function */ function createBenchmark( len ) { - var x; - var i; - - x = new Float64Array( len ); - for ( i = 0; i < x.length; i++ ) { - x[ i ] = ( randu()*20000.0 ) - 10000.0; - } + var x = filledarrayBy( len, 'float64', rand ); return benchmark; /** diff --git a/lib/node_modules/@stdlib/blas/base/gasum/examples/index.js b/lib/node_modules/@stdlib/blas/base/gasum/examples/index.js index b6f3f33e291..9c4c3096364 100644 --- a/lib/node_modules/@stdlib/blas/base/gasum/examples/index.js +++ b/lib/node_modules/@stdlib/blas/base/gasum/examples/index.js @@ -18,24 +18,12 @@ 'use strict'; -var round = require( '@stdlib/math/base/special/round' ); -var randu = require( '@stdlib/random/base/randu' ); +var discreteUniform = require( '@stdlib/random/base/discrete-uniform' ).factory; +var filledarrayBy = require( '@stdlib/array/filled-by' ); var gasum = require( './../lib' ); -var rand; -var sign; -var x; -var i; +var x = filledarrayBy( 10, 'generic', discreteUniform( -100, 100 ) ); +console.log( x ); -x = []; -for ( i = 0; i < 100; i++ ) { - rand = round( randu()*100.0 ); - sign = randu(); - if ( sign < 0.5 ) { - sign = -1.0; - } else { - sign = 1.0; - } - x.push( sign*rand ); -} -console.log( gasum( x.length, x, 1 ) ); +var y = gasum( x.length, x, 1 ); +console.log( y ); diff --git a/lib/node_modules/@stdlib/blas/base/gasum/test/test.main.js b/lib/node_modules/@stdlib/blas/base/gasum/test/test.main.js index 593eacd7663..1da7d9bf84e 100644 --- a/lib/node_modules/@stdlib/blas/base/gasum/test/test.main.js +++ b/lib/node_modules/@stdlib/blas/base/gasum/test/test.main.js @@ -21,7 +21,6 @@ // MODULES // var tape = require( 'tape' ); -var floor = require( '@stdlib/math/base/special/floor' ); var randu = require( '@stdlib/random/base/randu' ); var Float64Array = require( '@stdlib/array/float64' ); var asum = require( './../lib/main.js' ); @@ -36,7 +35,7 @@ tape( 'main export is a function', function test( t ) { }); tape( 'the function has an arity of 3', function test( t ) { - t.strictEqual( asum.length, 3, 'arity of 3' ); + t.strictEqual( asum.length, 3, 'returns expected value' ); t.end(); }); @@ -47,7 +46,7 @@ tape( 'the function computes the sum of absolute values', function test( t ) { x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ]; y = asum( x.length, x, 1 ); - t.strictEqual( y, 15.0, 'returns 15' ); + t.strictEqual( y, 15.0, 'returns expected value' ); t.end(); }); @@ -61,7 +60,7 @@ tape( 'the function supports an `x` stride', function test( t ) { y = asum( N, x, 2 ); - t.strictEqual( y, 9.0, 'returns 9' ); + t.strictEqual( y, 9.0, 'returns expected value' ); t.end(); }); @@ -73,7 +72,7 @@ tape( 'if provided an `N` parameter less than or equal to `0`, the function retu y = asum( 0, x, 1 ); - t.strictEqual( y, 0.0, 'returns 0' ); + t.strictEqual( y, 0.0, 'returns expected value' ); t.end(); }); @@ -85,7 +84,7 @@ tape( 'if provided a `stride` parameter less than or equal to `0`, the function y = asum( x.length, x, -1 ); - t.strictEqual( y, 0.0, 'returns 0' ); + t.strictEqual( y, 0.0, 'returns expected value' ); t.end(); }); @@ -93,7 +92,6 @@ tape( 'the function supports view offsets', function test( t ) { var x0; var x1; var y; - var N; // Initial array... x0 = new Float64Array( [ 1.0, -2.0, 3.0, -4.0, 5.0, -6.0 ] ); @@ -101,11 +99,9 @@ tape( 'the function supports view offsets', function test( t ) { // Create an offset view... x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // begin at 2nd element - N = floor( x0.length / 2 ); - - y = asum( N, x1, 2 ); + y = asum( 3, x1, 2 ); - t.strictEqual( y, 12.0, 'returns 12' ); + t.strictEqual( y, 12.0, 'returns expected value' ); t.end(); }); @@ -129,7 +125,7 @@ tape( 'if the stride equals `1`, the function efficiently sums the absolute valu y = asum( x.length, x, 1 ); // Compare to closed-form formula: - t.strictEqual( y, x.length*(x.length+1)/2, 'returns expected sum' ); + t.strictEqual( y, x.length*(x.length+1)/2, 'returns expected value' ); x = new Array( 240 ); for ( i = 0; i < x.length; i++ ) { @@ -145,7 +141,7 @@ tape( 'if the stride equals `1`, the function efficiently sums the absolute valu y = asum( x.length, x, 1 ); // Compare to closed-form formula: - t.strictEqual( y, x.length*(x.length+1)/2, 'returns expected sum' ); + t.strictEqual( y, x.length*(x.length+1)/2, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/gasum/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/gasum/test/test.ndarray.js index 2f6da6be88c..b400b965f03 100644 --- a/lib/node_modules/@stdlib/blas/base/gasum/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/gasum/test/test.ndarray.js @@ -34,7 +34,7 @@ tape( 'main export is a function', function test( t ) { }); tape( 'the function has an arity of 4', function test( t ) { - t.strictEqual( asum.length, 4, 'arity of 4' ); + t.strictEqual( asum.length, 4, 'returns expected value' ); t.end(); }); @@ -46,7 +46,7 @@ tape( 'the function computes the sum of absolute values', function test( t ) { y = asum( x.length, x, 1, 0 ); - t.strictEqual( y, 15.0, 'returns 15' ); + t.strictEqual( y, 15.0, 'returns expected value' ); t.end(); }); @@ -60,7 +60,7 @@ tape( 'the function supports an `x` stride', function test( t ) { y = asum( N, x, 2, 0 ); - t.strictEqual( y, 9.0, 'returns 9' ); + t.strictEqual( y, 9.0, 'returns expected value' ); t.end(); }); @@ -74,7 +74,7 @@ tape( 'the function supports an `x` offset', function test( t ) { y = asum( N, x, 1, 2 ); - t.strictEqual( y, 12.0, 'returns 12' ); + t.strictEqual( y, 12.0, 'returns expected value' ); t.end(); }); @@ -85,10 +85,10 @@ tape( 'if provided an `N` parameter less than or equal to `0`, the function retu x = [ 1.0, -2.0, 3.0, -4.0, 5.0 ]; y = asum( -1, x, 1, 0 ); - t.strictEqual( y, 0.0, 'returns 0' ); + t.strictEqual( y, 0.0, 'returns expected value' ); y = asum( 0, x, 1, 0 ); - t.strictEqual( y, 0.0, 'returns 0' ); + t.strictEqual( y, 0.0, 'returns expected value' ); t.end(); }); @@ -103,7 +103,7 @@ tape( 'the function supports negative strides', function test( t ) { y = asum( N, x, -2, x.length-2 ); - t.strictEqual( y, 6.0, 'returns 6' ); + t.strictEqual( y, 6.0, 'returns expected value' ); t.end(); }); @@ -128,7 +128,7 @@ tape( 'if the stride equals `1`, the function efficiently sums the absolute valu y = asum( x.length, x, 1, 0 ); // Compare to closed-form formula: - t.strictEqual( y, x.length*(x.length+1)/2, 'returns expected sum' ); + t.strictEqual( y, x.length*(x.length+1)/2, 'returns expected value' ); x = new Array( 240 ); for ( i = 0; i < x.length; i++ ) { @@ -145,7 +145,7 @@ tape( 'if the stride equals `1`, the function efficiently sums the absolute valu y = asum( N, x, 1, 6 ); // Compare to closed-form formula: - t.strictEqual( y, N*(N+1)/2, 'returns expected sum' ); + t.strictEqual( y, N*(N+1)/2, 'returns expected value' ); t.end(); });