diff --git a/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.main.js b/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.main.js index 1211b3f1c60f..c9ca37d0db9c 100644 --- a/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.main.js +++ b/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.main.js @@ -23,8 +23,7 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); var Complex64Array = require( '@stdlib/array/complex64' ); -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 csrot = require( './../lib' ); @@ -37,22 +36,14 @@ var csrot = require( './../lib' ); * @param {Object} t - test object * @param {Collection} actual - actual values * @param {Collection} expected - expected values -* @param {number} rtol - relative tolerance +* @param {NonNegativeInteger} ulp - maximum allowed ULP difference */ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; +function isApprox( t, actual, expected, ulp ) { 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+'.' ); - } + t.strictEqual( isAlmostSameValuef( actual[ i ], expected[ i ], ulp ), true, 'returns expected value' ); } } @@ -125,8 +116,8 @@ tape( 'the `main` method applies a plane rotation', function test( t ) { ]); out = csrot.main( cx.length, cx, 1, cy, 1, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -186,8 +177,8 @@ tape( 'the `main` method supports an `x` stride', function test( t ) { ]); out = csrot.main( 2, cx, 2, cy, 1, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -247,8 +238,8 @@ tape( 'the `main` method supports a `y` stride', function test( t ) { ]); out = csrot.main( 2, cx, 1, cy, 2, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -350,8 +341,8 @@ tape( 'the `main` method supports negative strides', function test( t ) { ]); out = csrot.main( 2, cx, -1, cy, -2, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -411,8 +402,8 @@ tape( 'the `main` method supports complex access patterns', function test( t ) { ]); out = csrot.main( 2, cx, 2, cy, -1, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -479,8 +470,8 @@ tape( 'the `main` method supports view offsets', function test( t ) { ]); out = csrot.main( 2, cx1, -2, cy1, 1, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy1, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.module.main.js b/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.module.main.js index 803802015408..bdcca81e8591 100644 --- a/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.module.main.js +++ b/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.module.main.js @@ -26,8 +26,7 @@ var tape = require( 'tape' ); var Memory = require( '@stdlib/wasm/memory' ); var Float32Array = require( '@stdlib/array/float32' ); var Complex64Array = require( '@stdlib/array/complex64' ); -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 Module = require( './../lib' ).Module; @@ -40,22 +39,14 @@ var Module = require( './../lib' ).Module; * @param {Object} t - test object * @param {Collection} actual - actual values * @param {Collection} expected - expected values -* @param {number} rtol - relative tolerance +* @param {NonNegativeInteger} ulp - maximum allowed ULP difference */ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; +function isApprox( t, actual, expected, ulp ) { 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+'.' ); - } + t.strictEqual( isAlmostSameValuef( actual[ i ], expected[ i ], ulp ), true, 'returns expected value' ); } } @@ -112,12 +103,12 @@ tape( 'a module instance has a `main` method which applies a plane rotation', fu actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -199,12 +190,12 @@ tape( 'a module instance has a `main` method which supports an `x` stride', func actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -286,12 +277,12 @@ tape( 'a module instance has a `main` method which supports a `y` stride', funct actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -448,12 +439,12 @@ tape( 'a module instance has a `main` method which supports negative strides', f actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -535,12 +526,12 @@ tape( 'a module instance has a `main` method which supports complex access patte actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.module.ndarray.js b/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.module.ndarray.js index 28d796268d9f..caf5de1b245e 100644 --- a/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.module.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.module.ndarray.js @@ -26,8 +26,7 @@ var tape = require( 'tape' ); var Memory = require( '@stdlib/wasm/memory' ); var Float32Array = require( '@stdlib/array/float32' ); var Complex64Array = require( '@stdlib/array/complex64' ); -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 Module = require( './../lib' ).Module; @@ -40,22 +39,14 @@ var Module = require( './../lib' ).Module; * @param {Object} t - test object * @param {Collection} actual - actual values * @param {Collection} expected - expected values -* @param {number} rtol - relative tolerance +* @param {NonNegativeInteger} ulp - maximum allowed ULP difference */ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; +function isApprox( t, actual, expected, ulp ) { 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+'.' ); - } + t.strictEqual( isAlmostSameValuef( actual[ i ], expected[ i ], ulp ), true, 'returns expected value' ); } } @@ -112,12 +103,12 @@ tape( 'a module instance has an `ndarray` method which applies a plane rotation' actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -199,12 +190,12 @@ tape( 'a module instance has an `ndarray` method which supports an `x` stride', actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -286,12 +277,12 @@ tape( 'a module instance has an `ndarray` method which supports an `x` offset', actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -373,12 +364,12 @@ tape( 'a module instance has an `ndarray` method which supports a `y` stride', f actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -460,12 +451,12 @@ tape( 'a module instance has an `ndarray` method which supports a `y` offset', f actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -622,12 +613,12 @@ tape( 'a module instance has an `ndarray` method which supports negative strides actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); @@ -709,12 +700,12 @@ tape( 'a module instance has an `ndarray` method which supports complex access p actualX = new Complex64Array( 4 ); mod.read( cxp, actualX ); viewX = new Float32Array( actualX.buffer ); - isApprox( t, viewX, cxe, 2.0 ); + isApprox( t, viewX, cxe, 0 ); actualY = new Complex64Array( 4 ); mod.read( cyp, actualY ); viewY = new Float32Array( actualY.buffer ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewY, cye, 1 ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.ndarray.js index e618288bcee4..bfc8c6cc4da5 100644 --- a/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/wasm/csrot/test/test.ndarray.js @@ -23,8 +23,7 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); var Complex64Array = require( '@stdlib/array/complex64' ); -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 csrot = require( './../lib' ); @@ -37,22 +36,14 @@ var csrot = require( './../lib' ); * @param {Object} t - test object * @param {Collection} actual - actual values * @param {Collection} expected - expected values -* @param {number} rtol - relative tolerance +* @param {NonNegativeInteger} ulp - maximum allowed ULP difference */ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; +function isApprox( t, actual, expected, ulp ) { 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+'.' ); - } + t.strictEqual( isAlmostSameValuef( actual[ i ], expected[ i ], ulp ), true, 'returns expected value' ); } } @@ -125,8 +116,8 @@ tape( 'the `ndarray` method applies a plane rotation', function test( t ) { ]); out = csrot.ndarray( cx.length, cx, 1, 0, cy, 1, 0, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -186,8 +177,8 @@ tape( 'the `ndarray` method supports an `x` stride', function test( t ) { ]); out = csrot.ndarray( 2, cx, 2, 0, cy, 1, 0, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -247,8 +238,8 @@ tape( 'the `ndarray` method supports an `x` offset', function test( t ) { ]); out = csrot.ndarray( 3, cx, 1, 1, cy, 1, 0, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -308,8 +299,8 @@ tape( 'the `ndarray` method supports a `y` stride', function test( t ) { ]); out = csrot.ndarray( 2, cx, 1, 0, cy, 2, 0, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -369,8 +360,8 @@ tape( 'the `ndarray` method supports a `y` offset', function test( t ) { ]); out = csrot.ndarray( 2, cx, 2, 0, cy, -1, 1, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -472,8 +463,8 @@ tape( 'the `ndarray` method supports negative strides', function test( t ) { ]); out = csrot.ndarray( 2, cx, -1, 1, cy, -2, 2, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); }); @@ -533,8 +524,8 @@ tape( 'the `ndarray` method supports complex access patterns', function test( t ]); out = csrot.ndarray( 2, cx, 2, 1, cy, 1, 2, 0.8, 0.6 ); - isApprox( t, viewX, cxe, 2.0 ); - isApprox( t, viewY, cye, 2.0 ); + isApprox( t, viewX, cxe, 0 ); + isApprox( t, viewY, cye, 1 ); t.strictEqual( out, cy, 'returns expected value' ); t.end(); });