diff --git a/lib/node_modules/@stdlib/blas/base/snrm2/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/snrm2/test/test.ndarray.js index 24b8e864e89b..06cead9af53f 100644 --- a/lib/node_modules/@stdlib/blas/base/snrm2/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/snrm2/test/test.ndarray.js @@ -23,40 +23,10 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); var isnan = require( '@stdlib/assert/is-nan' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var snrm2 = require( './../lib/ndarray.js' ); -// FUNCTIONS // - -/** -* Tests for element-wise approximate equality. -* -* @private -* @param {Object} t - test object -* @param {Collection} actual - actual values -* @param {Collection} expected - expected values -* @param {number} rtol - relative tolerance -*/ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; - var i; - - t.strictEqual( actual.length, expected.length, 'returns expected value' ); - for ( i = 0; i < expected.length; i++ ) { - if ( actual[ i ] === expected[ i ] ) { - t.strictEqual( actual[ i ], expected[ i ], 'returns expected value' ); - } else { - delta = abs( actual[ i ] - expected[ i ] ); - tol = rtol * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. actual: '+actual[ i ]+'. expected: '+expected[ i ]+'. delta: '+delta+'. tol: '+tol+'.' ); - } - } -} - - // TESTS // tape( 'main export is a function', function test( t ) { @@ -77,22 +47,22 @@ tape( 'the function calculates the L2-norm of a vector', function test( t ) { x = new Float32Array( [ 1.0, -2.0, -4.0, 5.0, 0.0, 3.0 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 7.4, 2.0 ); + t.strictEqual( isAlmostSameValuef( z, 7.416198253631592, 0 ), true, 'returns expected value' ); x = new Float32Array( [ -4.0 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 4.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 4.0, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 9.0e-20, 9.0e-20, 1.2e-19 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 1.7492856287692852e-19, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 1.7492856287692852e-19, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 1.0e-20, 1.0e-20, 1.0e-20, 1.0e-20 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 1.999999936531045e-20, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 1.999999936531045e-20, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 1.0e20, 1.0e5, 1.0e20, 1.0e5 ] ); @@ -107,7 +77,7 @@ tape( 'the function calculates the L2-norm of a vector', function test( t ) { x = new Float32Array( [ 1.4e-19, 1.5e-19, 1.4e-19, 0.0 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 2.4839484162537295e-19, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 2.4839484162537295e-19, 0 ), true, 'returns expected value' ); t.end(); }); @@ -163,7 +133,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) { N = 4; z = snrm2( N, x, 2, 0 ); - isApprox( t, z, 5.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 5.0, 0 ), true, 'returns expected value' ); t.end(); }); @@ -186,7 +156,7 @@ tape( 'the function supports a negative `stride` parameter', function test( t ) N = 4; z = snrm2( N, x, -2, x.length-2 ); - isApprox( t, z, 5.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 5.0, 0 ), true, 'returns expected value' ); t.end(); }); @@ -208,7 +178,7 @@ tape( 'the function supports an `offset` parameter', function test( t ) { N = 4; z = snrm2( N, x, 2, 1 ); - isApprox( t, z, 5.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 5.0, 0 ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/snrm2/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/base/snrm2/test/test.ndarray.native.js index 2da97e775d63..4e16ee05f85a 100644 --- a/lib/node_modules/@stdlib/blas/base/snrm2/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/base/snrm2/test/test.ndarray.native.js @@ -24,8 +24,7 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); var isnan = require( '@stdlib/assert/is-nan' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -37,35 +36,6 @@ var opts = { }; -// FUNCTIONS // - -/** -* Tests for element-wise approximate equality. -* -* @private -* @param {Object} t - test object -* @param {Collection} actual - actual values -* @param {Collection} expected - expected values -* @param {number} rtol - relative tolerance -*/ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; - var i; - - t.strictEqual( actual.length, expected.length, 'returns expected value' ); - for ( i = 0; i < expected.length; i++ ) { - if ( actual[ i ] === expected[ i ] ) { - t.strictEqual( actual[ i ], expected[ i ], 'returns expected value' ); - } else { - delta = abs( actual[ i ] - expected[ i ] ); - tol = rtol * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. actual: '+actual[ i ]+'. expected: '+expected[ i ]+'. delta: '+delta+'. tol: '+tol+'.' ); - } - } -} - - // TESTS // tape( 'main export is a function', opts, function test( t ) { @@ -86,22 +56,22 @@ tape( 'the function calculates the L2-norm of a vector', opts, function test( t x = new Float32Array( [ 1.0, -2.0, -4.0, 5.0, 0.0, 3.0 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 7.4, 2.0 ); + t.strictEqual( isAlmostSameValuef( z, 7.416198253631592, 0 ), true, 'returns expected value' ); x = new Float32Array( [ -4.0 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 4.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 4.0, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 9.0e-20, 9.0e-20, 1.2e-19 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 1.7492856287692852e-19, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 1.7492856287692852e-19, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 1.0e-20, 1.0e-20, 1.0e-20, 1.0e-20 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 1.999999936531045e-20, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 1.999999936531045e-20, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 1.0e20, 1.0e5, 1.0e20, 1.0e5 ] ); @@ -116,7 +86,7 @@ tape( 'the function calculates the L2-norm of a vector', opts, function test( t x = new Float32Array( [ 1.4e-19, 1.5e-19, 1.4e-19, 0.0 ] ); z = snrm2( x.length, x, 1, 0 ); - isApprox( t, z, 2.4839484162537295e-19, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 2.4839484162537295e-19, 0 ), true, 'returns expected value' ); t.end(); }); @@ -172,7 +142,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { N = 4; z = snrm2( N, x, 2, 0 ); - isApprox( t, z, 5.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 5.0, 0 ), true, 'returns expected value' ); t.end(); }); @@ -195,7 +165,7 @@ tape( 'the function supports a negative `stride` parameter', opts, function test N = 4; z = snrm2( N, x, -2, x.length-2 ); - isApprox( t, z, 5.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 5.0, 0 ), true, 'returns expected value' ); t.end(); }); @@ -217,7 +187,7 @@ tape( 'the function supports an `offset` parameter', opts, function test( t ) { N = 4; z = snrm2( N, x, 2, 1 ); - isApprox( t, z, 5.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 5.0, 0 ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/snrm2/test/test.snrm2.js b/lib/node_modules/@stdlib/blas/base/snrm2/test/test.snrm2.js index e9e0fe763f38..f72b3212467b 100644 --- a/lib/node_modules/@stdlib/blas/base/snrm2/test/test.snrm2.js +++ b/lib/node_modules/@stdlib/blas/base/snrm2/test/test.snrm2.js @@ -23,40 +23,10 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); var isnan = require( '@stdlib/assert/is-nan' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var snrm2 = require( './../lib/snrm2.js' ); -// FUNCTIONS // - -/** -* Tests for element-wise approximate equality. -* -* @private -* @param {Object} t - test object -* @param {Collection} actual - actual values -* @param {Collection} expected - expected values -* @param {number} rtol - relative tolerance -*/ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; - var i; - - t.strictEqual( actual.length, expected.length, 'returns expected value' ); - for ( i = 0; i < expected.length; i++ ) { - if ( actual[ i ] === expected[ i ] ) { - t.strictEqual( actual[ i ], expected[ i ], 'returns expected value' ); - } else { - delta = abs( actual[ i ] - expected[ i ] ); - tol = rtol * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. actual: '+actual[ i ]+'. expected: '+expected[ i ]+'. delta: '+delta+'. tol: '+tol+'.' ); - } - } -} - - // TESTS // tape( 'main export is a function', function test( t ) { @@ -77,22 +47,22 @@ tape( 'the function calculates the L2-norm of a vector', function test( t ) { x = new Float32Array( [ 2.0, -4.0, -5.0, 6.0, 0.0, 5.0 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 10.3, 2.0 ); + t.strictEqual( isAlmostSameValuef( z, 10.29563045501709, 0 ), true, 'returns expected value' ); x = new Float32Array( [ -4.0 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 4.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 4.0, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 9.0e-20, 9.0e-20, 1.2e-19 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 1.7492856287692852e-19, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 1.7492856287692852e-19, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 1.0e-20, 1.0e-20, 1.0e-20, 1.0e-20 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 1.999999936531045e-20, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 1.999999936531045e-20, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 1.0e20, 1.0e5, 1.0e20, 1.0e5 ] ); @@ -107,7 +77,7 @@ tape( 'the function calculates the L2-norm of a vector', function test( t ) { x = new Float32Array( [ 1.4e-19, 1.5e-19, 1.4e-19, 0.0 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 2.4839484162537295e-19, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 2.4839484162537295e-19, 0 ), true, 'returns expected value' ); t.end(); }); @@ -163,7 +133,7 @@ tape( 'the function supports a `stride` parameter', function test( t ) { N = 4; z = snrm2( N, x, 2 ); - isApprox( t, z, 5.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 5.0, 0 ), true, 'returns expected value' ); t.end(); }); @@ -182,10 +152,10 @@ tape( 'the function supports specifying a negative stride', function test( t ) { 0.4, // 0 9.0 ]); - expected = 0.81; + expected = 0.8124038577079773; actual = snrm2( 4, x, -2 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/snrm2/test/test.snrm2.native.js b/lib/node_modules/@stdlib/blas/base/snrm2/test/test.snrm2.native.js index f143ec2d0557..32ed1c8bbdc2 100644 --- a/lib/node_modules/@stdlib/blas/base/snrm2/test/test.snrm2.native.js +++ b/lib/node_modules/@stdlib/blas/base/snrm2/test/test.snrm2.native.js @@ -24,8 +24,7 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); var isnan = require( '@stdlib/assert/is-nan' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -37,35 +36,6 @@ var opts = { }; -// FUNCTIONS // - -/** -* Tests for element-wise approximate equality. -* -* @private -* @param {Object} t - test object -* @param {Collection} actual - actual values -* @param {Collection} expected - expected values -* @param {number} rtol - relative tolerance -*/ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; - var i; - - t.strictEqual( actual.length, expected.length, 'returns expected value' ); - for ( i = 0; i < expected.length; i++ ) { - if ( actual[ i ] === expected[ i ] ) { - t.strictEqual( actual[ i ], expected[ i ], 'returns expected value' ); - } else { - delta = abs( actual[ i ] - expected[ i ] ); - tol = rtol * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. actual: '+actual[ i ]+'. expected: '+expected[ i ]+'. delta: '+delta+'. tol: '+tol+'.' ); - } - } -} - - // TESTS // tape( 'main export is a function', opts, function test( t ) { @@ -86,22 +56,22 @@ tape( 'the function calculates the L2-norm of a vector', opts, function test( t x = new Float32Array( [ 1.0, -2.0, -4.0, 5.0, 0.0, 3.0 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 7.4, 2.0 ); + t.strictEqual( isAlmostSameValuef( z, 7.416198253631592, 0 ), true, 'returns expected value' ); x = new Float32Array( [ -4.0 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 4.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 4.0, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 9.0e-20, 9.0e-20, 1.2e-19 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 1.7492856287692852e-19, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 1.7492856287692852e-19, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 1.0e-20, 1.0e-20, 1.0e-20, 1.0e-20 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 1.999999936531045e-20, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 1.999999936531045e-20, 0 ), true, 'returns expected value' ); x = new Float32Array( [ 1.0e20, 1.0e5, 1.0e20, 1.0e5 ] ); @@ -116,7 +86,7 @@ tape( 'the function calculates the L2-norm of a vector', opts, function test( t x = new Float32Array( [ 1.4e-19, 1.5e-19, 1.4e-19, 0.0 ] ); z = snrm2( x.length, x, 1 ); - isApprox( t, z, 2.4839484162537295e-19, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 2.4839484162537295e-19, 0 ), true, 'returns expected value' ); t.end(); }); @@ -172,7 +142,7 @@ tape( 'the function supports a `stride` parameter', opts, function test( t ) { N = 4; z = snrm2( N, x, 2 ); - isApprox( t, z, 5.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 5.0, 0 ), true, 'returns expected value' ); t.end(); }); @@ -191,10 +161,10 @@ tape( 'the function supports specifying a negative stride', opts, function test( 0.4, // 0 9.0 ]); - expected = 0.81; + expected = 0.8124038577079773; actual = snrm2( 4, x, -2 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -220,7 +190,7 @@ tape( 'the function supports view offsets', opts, function test( t ) { N = 4; z = snrm2( N, x1, 2 ); - isApprox( t, z, 5.0, 1.0 ); + t.strictEqual( isAlmostSameValuef( z, 5.0, 0 ), true, 'returns expected value' ); t.end(); });