Skip to content

Commit

Permalink
refactor: update tests and benchmarks according to current project co…
Browse files Browse the repository at this point in the history
…nventions

Ref: #788
  • Loading branch information
kgryte committed Dec 2, 2023
1 parent 4ec2cd0 commit 067e5d4
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 88 deletions.
39 changes: 9 additions & 30 deletions lib/node_modules/@stdlib/blas/base/gasum/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
```

Expand All @@ -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
```

Expand Down Expand Up @@ -156,27 +147,15 @@ sum = gasum.ndarray( 3, x, -1, x.length-1 );
<!-- eslint no-undef: "error" -->

```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 );
```

</section>
Expand Down
17 changes: 8 additions & 9 deletions lib/node_modules/@stdlib/blas/base/gasum/benchmark/benchmark.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 //

/**
Expand All @@ -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;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 //

/**
Expand All @@ -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;

/**
Expand Down
24 changes: 6 additions & 18 deletions lib/node_modules/@stdlib/blas/base/gasum/examples/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -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 );
22 changes: 9 additions & 13 deletions lib/node_modules/@stdlib/blas/base/gasum/test/test.main.js
Original file line number Diff line number Diff line change
Expand Up @@ -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' );
Expand All @@ -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();
});

Expand All @@ -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();
});

Expand All @@ -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();
});

Expand All @@ -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();
});

Expand All @@ -85,27 +84,24 @@ 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();
});

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 ] );

// 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();
});

Expand All @@ -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++ ) {
Expand All @@ -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();
});
18 changes: 9 additions & 9 deletions lib/node_modules/@stdlib/blas/base/gasum/test/test.ndarray.js
Original file line number Diff line number Diff line change
Expand Up @@ -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();
});

Expand All @@ -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();
});

Expand All @@ -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();
});

Expand All @@ -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();
});

Expand All @@ -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();
});
Expand All @@ -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();
});

Expand All @@ -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++ ) {
Expand All @@ -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();
});

0 comments on commit 067e5d4

Please sign in to comment.