diff --git a/lib/node_modules/@stdlib/blas/base/dgemv/test/test.dgemv.js b/lib/node_modules/@stdlib/blas/base/dgemv/test/test.dgemv.js index 8c7ddd50521..37f5a2ec0b8 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemv/test/test.dgemv.js +++ b/lib/node_modules/@stdlib/blas/base/dgemv/test/test.dgemv.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dgemv = require( './../lib/dgemv.js' ); @@ -46,35 +44,6 @@ var rxnyp = require( './fixtures/row_major_xnyp.json' ); var rxpyp = require( './fixtures/row_major_xpyp.json' ); -// 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 ) { @@ -253,8 +222,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -275,8 +245,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -297,8 +268,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -319,8 +291,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -339,6 +312,7 @@ tape( 'the function returns a reference to the second input vector (row-major)', out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); t.strictEqual( out, y, 'returns expected value' ); + t.end(); }); @@ -357,6 +331,7 @@ tape( 'the function returns a reference to the second input vector (column-major out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); t.strictEqual( out, y, 'returns expected value' ); + t.end(); }); @@ -523,8 +498,9 @@ tape( 'the function supports specifying `x` and `y` strides (row-major)', functi expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -545,8 +521,9 @@ tape( 'the function supports specifying `x` and `y` strides (column-major)', fun expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -567,8 +544,9 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -589,8 +567,9 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -611,8 +590,9 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -633,8 +613,9 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -655,8 +636,9 @@ tape( 'the function supports complex access patterns (row-major)', function test expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -677,7 +659,8 @@ tape( 'the function supports complex access patterns (column-major)', function t expected = new Float64Array( data.y_out ); out = dgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/dgemv/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dgemv/test/test.ndarray.js index 5b41a67fbd0..1b2be0b26f6 100644 --- a/lib/node_modules/@stdlib/blas/base/dgemv/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dgemv/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dgemv = require( './../lib/ndarray.js' ); @@ -58,35 +56,6 @@ var rxnyp = require( './fixtures/row_major_xnyp.json' ); var rxpyp = require( './fixtures/row_major_xpyp.json' ); -// 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 ) { @@ -239,8 +208,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -261,8 +231,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -283,8 +254,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -305,8 +277,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -325,6 +298,7 @@ tape( 'the function returns a reference to the second input vector (row-major)', out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); t.strictEqual( out, y, 'returns expected value' ); + t.end(); }); @@ -343,6 +317,7 @@ tape( 'the function returns a reference to the second input vector (column-major out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); t.strictEqual( out, y, 'returns expected value' ); + t.end(); }); @@ -509,8 +484,9 @@ tape( 'the function supports specifying the strides of the first and second dime expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -531,8 +507,9 @@ tape( 'the function supports specifying the strides of the first and second dime expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -553,8 +530,9 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -575,8 +553,9 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -597,8 +576,9 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -619,8 +599,9 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -641,8 +622,9 @@ tape( 'the function supports negative strides for `A` (row-major)', function tes expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -663,8 +645,9 @@ tape( 'the function supports negative strides for `A` (column-major)', function expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -685,8 +668,9 @@ tape( 'the function supports specifying an offset parameter for `A` (row-major)' expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -707,8 +691,9 @@ tape( 'the function supports specifying an offset parameter for `A` (column-majo expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -729,8 +714,9 @@ tape( 'the function supports specifying `x` and `y` strides (row-major)', functi expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -751,8 +737,9 @@ tape( 'the function supports specifying `x` and `y` strides (column-major)', fun expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -773,8 +760,9 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -795,8 +783,9 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -817,8 +806,9 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -839,8 +829,9 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -861,8 +852,9 @@ tape( 'the function supports specifying negative strides for `x` and `y` (row-ma expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -883,8 +875,9 @@ tape( 'the function supports specifying negative strides for `x` and `y` (column expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -905,8 +898,9 @@ tape( 'the function supports complex access patterns (row-major)', function test expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -927,7 +921,8 @@ tape( 'the function supports complex access patterns (column-major)', function t expected = new Float64Array( data.y_out ); out = dgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/dsyr/test/test.dsyr.js b/lib/node_modules/@stdlib/blas/base/dsyr/test/test.dsyr.js index 4affab6c33f..537ce4812ec 100644 --- a/lib/node_modules/@stdlib/blas/base/dsyr/test/test.dsyr.js +++ b/lib/node_modules/@stdlib/blas/base/dsyr/test/test.dsyr.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dsyr = require( './../lib/dsyr.js' ); @@ -42,35 +40,6 @@ var cxp = require( './fixtures/column_major_xp.json' ); var cxn = require( './fixtures/column_major_xn.json' ); -// 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 ) { @@ -228,7 +197,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = dsyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -249,7 +218,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = dsyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -270,7 +239,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = dsyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -291,7 +260,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = dsyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -379,7 +348,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = dsyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -400,7 +369,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = dsyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -421,7 +390,7 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func out = dsyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -442,7 +411,7 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f out = dsyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/dsyr/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dsyr/test/test.ndarray.js index b63cc69100f..81213d71812 100644 --- a/lib/node_modules/@stdlib/blas/base/dsyr/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dsyr/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dsyr = require( './../lib/ndarray.js' ); @@ -54,35 +52,6 @@ var csa1nsa2n = require( './fixtures/column_major_sa1n_sa2n.json' ); var ccap = require( './fixtures/column_major_complex_access_pattern.json' ); -// 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 ) { @@ -186,7 +155,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -207,7 +176,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -228,7 +197,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -249,7 +218,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -337,7 +306,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -358,7 +327,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -379,7 +348,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -400,7 +369,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -421,7 +390,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -442,7 +411,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -463,7 +432,7 @@ tape( 'the function supports negative strides for both dimensions of `A` (row-ma out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -484,7 +453,7 @@ tape( 'the function supports negative strides for both dimensions of `A` (column out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -505,7 +474,7 @@ tape( 'the function supports specifying an `A` offset (row-major)', function tes out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -526,7 +495,7 @@ tape( 'the function supports specifying an `A` offset (column-major)', function out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -547,7 +516,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -568,7 +537,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -589,7 +558,7 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -610,7 +579,7 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -631,7 +600,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -652,7 +621,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = dsyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.dsyr2.js b/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.dsyr2.js index ba06c5ee275..6a155a5889d 100644 --- a/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.dsyr2.js +++ b/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.dsyr2.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dsyr2 = require( './../lib/dsyr2.js' ); @@ -46,35 +44,6 @@ var cxpyn = require( './fixtures/column_major_xpyn.json' ); var cxnyn = require( './fixtures/column_major_xnyn.json' ); -// 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 ) { @@ -257,7 +226,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -280,7 +249,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -303,7 +272,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -326,7 +295,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -422,7 +391,7 @@ tape( 'the function supports specifying strides (row-major)', function test( t ) out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -445,7 +414,7 @@ tape( 'the function supports specifying strides (column-major)', function test( out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -468,7 +437,7 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -491,7 +460,7 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -514,7 +483,7 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -537,7 +506,7 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -560,7 +529,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -583,7 +552,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = dsyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.ndarray.js index 273d5bf8760..76002766416 100644 --- a/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dsyr2/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dsyr2 = require( './../lib/ndarray.js' ); @@ -58,35 +56,6 @@ var csa1nsa2n = require( './fixtures/column_major_sa1n_sa2n.json' ); var ccap = require( './fixtures/column_major_complex_access_pattern.json' ); -// 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 ) { @@ -215,7 +184,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -238,7 +207,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -261,7 +230,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -284,7 +253,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -380,7 +349,7 @@ tape( 'the function supports specifying the strides for the first and the second out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -403,7 +372,7 @@ tape( 'the function supports specifying the strides for the first and the second out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -426,7 +395,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -449,7 +418,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -472,7 +441,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -495,7 +464,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -518,7 +487,7 @@ tape( 'the function supports negative strides for `A` (row-major)', function tes out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -541,7 +510,7 @@ tape( 'the function supports negative strides for `A` (column-major)', function out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -564,7 +533,7 @@ tape( 'the function supports specifying an `A` offset (row-major)', function tes out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -587,7 +556,7 @@ tape( 'the function supports specifying an `A` offset (column-major)', function out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -610,7 +579,7 @@ tape( 'the function supports specifying `x` and `y` strides (row-major)', functi out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -633,7 +602,7 @@ tape( 'the function supports specifying `x` and `y` strides (column-major)', fun out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -656,7 +625,7 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -679,7 +648,7 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -702,7 +671,7 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -725,7 +694,7 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -748,7 +717,7 @@ tape( 'the function supports specifying negative strides for `x` and `y` (row-ma out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -771,7 +740,7 @@ tape( 'the function supports specifying negative strides for `x` and `y` (column out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -794,7 +763,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -817,7 +786,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = dsyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.dtrmv.js b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.dtrmv.js index 7f8351f0f02..3382311f0c8 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.dtrmv.js +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.dtrmv.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dtrmv = require( './../lib/dtrmv.js' ); @@ -54,35 +52,6 @@ var cxt = require( './fixtures/column_major_xt.json' ); var cxn = require( './fixtures/column_major_xn.json' ); -// 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 ) { @@ -292,7 +261,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -313,7 +282,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -334,7 +303,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -355,7 +324,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -376,7 +345,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -397,7 +366,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -418,7 +387,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -439,7 +408,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -460,7 +429,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -481,7 +450,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -502,7 +471,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -523,7 +492,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -544,7 +513,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -565,7 +534,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -586,7 +555,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -607,7 +576,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -628,7 +597,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -649,7 +618,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -729,7 +698,7 @@ tape( 'the function supports a negative `x` stride (row-major)', function test( out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -750,7 +719,7 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes out = dtrmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js index 34c08cbbb68..2e1f922b0ce 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dtrmv = require( './../lib/ndarray.js' ); @@ -66,35 +64,6 @@ var csa1nsa2n = require( './fixtures/column_major_sa1_sa2n.json' ); var ccap = require( './fixtures/column_major_complex_access_pattern.json' ); -// 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 ) { @@ -250,7 +219,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -271,7 +240,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -292,7 +261,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -313,7 +282,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -334,7 +303,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -355,7 +324,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -376,7 +345,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -397,7 +366,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -418,7 +387,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -439,7 +408,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -460,7 +429,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -481,7 +450,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -502,7 +471,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -523,7 +492,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -544,7 +513,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -565,7 +534,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -586,7 +555,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -607,7 +576,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -687,7 +656,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -708,7 +677,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -729,7 +698,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -750,7 +719,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -771,7 +740,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -792,7 +761,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -813,7 +782,7 @@ tape( 'the function supports negative strides for both dimensions of `A` (row-ma out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -834,7 +803,7 @@ tape( 'the function supports negative strides for both dimensions of `A` (column out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -855,7 +824,7 @@ tape( 'the function supports an `A` offset (row-major)', function test( t ) { out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -876,7 +845,7 @@ tape( 'the function supports an `A` offset (column-major)', function test( t ) { out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -897,7 +866,7 @@ tape( 'the function supports a negative `x` stride (row-major)', function test( out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -918,7 +887,7 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -939,7 +908,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -960,7 +929,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/dtrsv/test/test.dtrsv.js b/lib/node_modules/@stdlib/blas/base/dtrsv/test/test.dtrsv.js index 2ce9236c470..1154e3f9033 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrsv/test/test.dtrsv.js +++ b/lib/node_modules/@stdlib/blas/base/dtrsv/test/test.dtrsv.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dtrsv = require( './../lib/dtrsv.js' ); @@ -54,35 +52,6 @@ var cxt = require( './fixtures/column_major_xt.json' ); var cxn = require( './fixtures/column_major_xn.json' ); -// 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 ) { @@ -292,7 +261,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 50.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -313,7 +282,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -334,7 +303,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -355,7 +324,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -376,7 +345,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -397,7 +366,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -418,7 +387,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -439,7 +408,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -460,7 +429,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -481,7 +450,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -502,7 +471,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -523,7 +492,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -544,7 +513,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -565,7 +534,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -586,7 +555,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -607,7 +576,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -628,7 +597,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -649,7 +618,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -729,7 +698,7 @@ tape( 'the function supports a negative `x` stride (row-major)', function test( out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -750,7 +719,7 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes out = dtrsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/dtrsv/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/dtrsv/test/test.ndarray.js index da2d3fca2bb..d9bf45e70ad 100644 --- a/lib/node_modules/@stdlib/blas/base/dtrsv/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/dtrsv/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var dtrsv = require( './../lib/ndarray.js' ); @@ -66,35 +64,6 @@ var csa1nsa2n = require( './fixtures/column_major_sa1_sa2n.json' ); var ccap = require( './fixtures/column_major_complex_access_pattern.json' ); -// 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 ) { @@ -250,7 +219,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -271,7 +240,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -292,7 +261,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -313,7 +282,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -334,7 +303,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -355,7 +324,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -376,7 +345,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -397,7 +366,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -418,7 +387,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -439,7 +408,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -460,7 +429,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -481,7 +450,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -502,7 +471,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -523,7 +492,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -544,7 +513,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -565,7 +534,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -586,7 +555,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -607,7 +576,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -687,7 +656,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -708,7 +677,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -729,7 +698,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -750,7 +719,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -771,7 +740,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -792,7 +761,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -813,7 +782,7 @@ tape( 'the function supports negative strides for `A` (row-major)', function tes out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -834,7 +803,7 @@ tape( 'the function supports negative strides for `A` (column-major)', function out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -855,7 +824,7 @@ tape( 'the function supports an `A` offset (row-major)', function test( t ) { out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -876,7 +845,7 @@ tape( 'the function supports an `A` offset (column-major)', function test( t ) { out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -897,7 +866,7 @@ tape( 'the function supports a negative `x` stride (row-major)', function test( out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -918,7 +887,7 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -939,7 +908,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -960,7 +929,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = dtrsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/sgemv/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/sgemv/test/test.ndarray.js index 60604769a12..92cb019805b 100644 --- a/lib/node_modules/@stdlib/blas/base/sgemv/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/sgemv/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var sgemv = require( './../lib/ndarray.js' ); @@ -58,35 +56,6 @@ var rxnyp = require( './fixtures/row_major_xnyp.json' ); var rxpyp = require( './fixtures/row_major_xpyp.json' ); -// 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 ) { @@ -239,8 +208,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -261,8 +231,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -283,8 +254,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -305,8 +277,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -325,6 +298,7 @@ tape( 'the function returns a reference to the second input vector (row-major)', out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); t.strictEqual( out, y, 'returns expected value' ); + t.end(); }); @@ -343,6 +317,7 @@ tape( 'the function returns a reference to the second input vector (column-major out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); t.strictEqual( out, y, 'returns expected value' ); + t.end(); }); @@ -509,8 +484,9 @@ tape( 'the function supports specifying the strides of the first and second dime expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -531,8 +507,9 @@ tape( 'the function supports specifying the strides of the first and second dime expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -553,8 +530,9 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -575,8 +553,9 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -597,8 +576,9 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -619,8 +599,9 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -641,8 +622,9 @@ tape( 'the function supports negative strides for `A` (row-major)', function tes expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -663,8 +645,9 @@ tape( 'the function supports negative strides for `A` (column-major)', function expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -685,8 +668,9 @@ tape( 'the function supports specifying an offset parameter for `A` (row-major)' expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -707,8 +691,9 @@ tape( 'the function supports specifying an offset parameter for `A` (column-majo expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -729,8 +714,9 @@ tape( 'the function supports specifying `x` and `y` strides (row-major)', functi expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -751,8 +737,9 @@ tape( 'the function supports specifying `x` and `y` strides (column-major)', fun expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -773,8 +760,9 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -795,8 +783,9 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -817,8 +806,9 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -839,8 +829,9 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -861,8 +852,9 @@ tape( 'the function supports specifying negative strides for `x` and `y` (row-ma expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -883,8 +875,9 @@ tape( 'the function supports specifying negative strides for `x` and `y` (column expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -905,8 +898,9 @@ tape( 'the function supports complex access patterns (row-major)', function test expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -927,7 +921,8 @@ tape( 'the function supports complex access patterns (column-major)', function t expected = new Float32Array( data.y_out ); out = sgemv( data.trans, data.M, data.N, data.alpha, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX, data.beta, y, data.strideY, data.offsetY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/sgemv/test/test.sgemv.js b/lib/node_modules/@stdlib/blas/base/sgemv/test/test.sgemv.js index c5d29d4ea8c..c7f363f1b43 100644 --- a/lib/node_modules/@stdlib/blas/base/sgemv/test/test.sgemv.js +++ b/lib/node_modules/@stdlib/blas/base/sgemv/test/test.sgemv.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var sgemv = require( './../lib/sgemv.js' ); @@ -46,35 +44,6 @@ var rxnyp = require( './fixtures/row_major_xnyp.json' ); var rxpyp = require( './fixtures/row_major_xpyp.json' ); -// 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 ) { @@ -253,8 +222,8 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -275,8 +244,8 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -297,8 +266,8 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -319,8 +288,8 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x + expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -523,8 +492,9 @@ tape( 'the function supports specifying `x` and `y` strides (row-major)', functi expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -545,8 +515,9 @@ tape( 'the function supports specifying `x` and `y` strides (column-major)', fun expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -567,8 +538,9 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -589,8 +561,9 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -611,8 +584,9 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -633,8 +607,9 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -655,8 +630,9 @@ tape( 'the function supports complex access patterns (row-major)', function test expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); @@ -677,7 +653,8 @@ tape( 'the function supports complex access patterns (column-major)', function t expected = new Float32Array( data.y_out ); out = sgemv( data.order, data.trans, data.M, data.N, data.alpha, a, data.lda, x, data.strideX, data.beta, y, data.strideY ); - isApprox( t, y, expected, 2.0 ); t.strictEqual( out, y, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/ssyr/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/ssyr/test/test.ndarray.js index cd477edfbf0..c0041585d73 100644 --- a/lib/node_modules/@stdlib/blas/base/ssyr/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/ssyr/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var ssyr = require( './../lib/ndarray.js' ); @@ -54,35 +52,6 @@ var csa1nsa2n = require( './fixtures/column_major_sa1n_sa2n.json' ); var ccap = require( './fixtures/column_major_complex_access_pattern.json' ); -// 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 ) { @@ -186,7 +155,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -207,7 +176,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -228,7 +197,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -249,7 +218,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -337,7 +306,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -358,7 +327,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -379,7 +348,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -400,7 +369,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -421,7 +390,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -442,7 +411,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -463,7 +432,7 @@ tape( 'the function supports negative strides for both dimensions of `A` (row-ma out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -484,7 +453,7 @@ tape( 'the function supports negative strides for both dimensions of `A` (column out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -505,7 +474,7 @@ tape( 'the function supports specifying an `A` offset (row-major)', function tes out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -526,7 +495,7 @@ tape( 'the function supports specifying an `A` offset (column-major)', function out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -547,7 +516,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -568,7 +537,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -589,7 +558,7 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -610,7 +579,7 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -631,7 +600,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -652,7 +621,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = ssyr( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/ssyr/test/test.ssyr.js b/lib/node_modules/@stdlib/blas/base/ssyr/test/test.ssyr.js index 98a35665140..0c321561d1e 100644 --- a/lib/node_modules/@stdlib/blas/base/ssyr/test/test.ssyr.js +++ b/lib/node_modules/@stdlib/blas/base/ssyr/test/test.ssyr.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var ssyr = require( './../lib/ssyr.js' ); @@ -42,35 +40,6 @@ var cxp = require( './fixtures/column_major_xp.json' ); var cxn = require( './fixtures/column_major_xn.json' ); -// 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 ) { @@ -228,7 +197,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = ssyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -249,7 +218,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = ssyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -270,7 +239,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = ssyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -291,7 +260,7 @@ tape( 'the function performs the symmetric rank 1 operation `A = α*x*x^T + A` ( out = ssyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -379,7 +348,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = ssyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -400,7 +369,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = ssyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -421,7 +390,7 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func out = ssyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -442,7 +411,7 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f out = ssyr( data.order, data.uplo, data.N, data.alpha, x, data.strideX, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/ssyr2/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/ssyr2/test/test.ndarray.js index 8bb9e87e537..b31a8540331 100644 --- a/lib/node_modules/@stdlib/blas/base/ssyr2/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/ssyr2/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var ssyr2 = require( './../lib/ndarray.js' ); @@ -58,35 +56,6 @@ var csa1nsa2n = require( './fixtures/column_major_sa1n_sa2n.json' ); var ccap = require( './fixtures/column_major_complex_access_pattern.json' ); -// 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 ) { @@ -215,7 +184,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -238,7 +207,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -261,7 +230,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -284,7 +253,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -380,7 +349,7 @@ tape( 'the function supports specifying the strides for the first and the second out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -403,7 +372,7 @@ tape( 'the function supports specifying the strides for the first and the second out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -426,7 +395,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -449,7 +418,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -472,7 +441,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -495,7 +464,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -518,7 +487,7 @@ tape( 'the function supports negative strides for `A` (row-major)', function tes out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -541,7 +510,7 @@ tape( 'the function supports negative strides for `A` (column-major)', function out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -564,7 +533,7 @@ tape( 'the function supports specifying an `A` offset (row-major)', function tes out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -587,7 +556,7 @@ tape( 'the function supports specifying an `A` offset (column-major)', function out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -610,7 +579,7 @@ tape( 'the function supports specifying `x` and `y` strides (row-major)', functi out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -633,7 +602,7 @@ tape( 'the function supports specifying `x` and `y` strides (column-major)', fun out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -656,7 +625,7 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -679,7 +648,7 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -702,7 +671,7 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -725,7 +694,7 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -748,7 +717,7 @@ tape( 'the function supports specifying negative strides for `x` and `y` (row-ma out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -771,7 +740,7 @@ tape( 'the function supports specifying negative strides for `x` and `y` (column out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -794,7 +763,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -817,7 +786,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = ssyr2( data.uplo, data.N, data.alpha, x, data.strideX, data.offsetX, y, data.strideY, data.offsetY, a, data.strideA1, data.strideA2, data.offsetA ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/ssyr2/test/test.ssyr2.js b/lib/node_modules/@stdlib/blas/base/ssyr2/test/test.ssyr2.js index 9c5bbe8e65d..2eb07d0e302 100644 --- a/lib/node_modules/@stdlib/blas/base/ssyr2/test/test.ssyr2.js +++ b/lib/node_modules/@stdlib/blas/base/ssyr2/test/test.ssyr2.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var ssyr2 = require( './../lib/ssyr2.js' ); @@ -46,35 +44,6 @@ var cxpyn = require( './fixtures/column_major_xpyn.json' ); var cxnyn = require( './fixtures/column_major_xnyn.json' ); -// 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 ) { @@ -257,7 +226,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -280,7 +249,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -303,7 +272,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -326,7 +295,7 @@ tape( 'the function performs the symmetric rank 2 operation `A = α*x*y^T + α*y out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -422,7 +391,7 @@ tape( 'the function supports specifying strides (row-major)', function test( t ) out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -445,7 +414,7 @@ tape( 'the function supports specifying strides (column-major)', function test( out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -468,7 +437,7 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -491,7 +460,7 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -514,7 +483,7 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -537,7 +506,7 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -560,7 +529,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -583,7 +552,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = ssyr2( data.order, data.uplo, data.N, data.alpha, x, data.strideX, y, data.strideY, a, data.lda ); t.strictEqual( out, a, 'returns expected value' ); - isApprox( t, a, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/strmv/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/strmv/test/test.ndarray.js index 5a1db452f5c..d1df4fe1952 100644 --- a/lib/node_modules/@stdlib/blas/base/strmv/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strmv/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var strmv = require( './../lib/ndarray.js' ); @@ -66,35 +64,6 @@ var csa1nsa2n = require( './fixtures/column_major_sa1_sa2n.json' ); var ccap = require( './fixtures/column_major_complex_access_pattern.json' ); -// 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 ) { @@ -250,7 +219,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -271,7 +240,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -292,7 +261,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -313,7 +282,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -334,7 +303,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -355,7 +324,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -376,7 +345,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -397,7 +366,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -418,7 +387,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -439,7 +408,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -460,7 +429,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -481,7 +450,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -502,7 +471,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -523,7 +492,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -544,7 +513,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -565,7 +534,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -586,7 +555,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -607,7 +576,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -687,7 +656,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -708,7 +677,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -729,7 +698,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -750,7 +719,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -771,7 +740,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -792,7 +761,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -813,7 +782,7 @@ tape( 'the function supports negative strides for `A` (row-major)', function tes out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -834,7 +803,7 @@ tape( 'the function supports negative strides for `A` (column-major)', function out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -855,7 +824,7 @@ tape( 'the function supports an `A` offset (row-major)', function test( t ) { out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -876,7 +845,7 @@ tape( 'the function supports an `A` offset (column-major)', function test( t ) { out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -897,7 +866,7 @@ tape( 'the function supports a negative `x` stride (row-major)', function test( out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -918,7 +887,7 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -939,7 +908,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -960,7 +929,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/strmv/test/test.strmv.js b/lib/node_modules/@stdlib/blas/base/strmv/test/test.strmv.js index f497804304f..e54d9b33ece 100644 --- a/lib/node_modules/@stdlib/blas/base/strmv/test/test.strmv.js +++ b/lib/node_modules/@stdlib/blas/base/strmv/test/test.strmv.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var strmv = require( './../lib/strmv.js' ); @@ -54,35 +52,6 @@ var cxt = require( './fixtures/column_major_xt.json' ); var cxn = require( './fixtures/column_major_xn.json' ); -// 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 ) { @@ -292,7 +261,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -313,7 +282,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -334,7 +303,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -355,7 +324,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -376,7 +345,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -397,7 +366,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -418,7 +387,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -439,7 +408,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -460,7 +429,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -481,7 +450,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -502,7 +471,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -523,7 +492,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -544,7 +513,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -565,7 +534,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -586,7 +555,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -607,7 +576,7 @@ tape( 'the function performs one of the matrix-vector operations `x = A*x` or `x out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -628,7 +597,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -649,7 +618,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -729,7 +698,7 @@ tape( 'the function supports a negative `x` stride (row-major)', function test( out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -750,7 +719,7 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes out = strmv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/strsv/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/strsv/test/test.ndarray.js index 1f3766629b6..22437c1b5f1 100644 --- a/lib/node_modules/@stdlib/blas/base/strsv/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strsv/test/test.ndarray.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var strsv = require( './../lib/ndarray.js' ); @@ -66,35 +64,6 @@ var csa1nsa2n = require( './fixtures/column_major_sa1_sa2n.json' ); var ccap = require( './fixtures/column_major_complex_access_pattern.json' ); -// 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 ) { @@ -250,7 +219,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -271,7 +240,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -292,7 +261,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -313,7 +282,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -334,7 +303,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -355,7 +324,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -376,7 +345,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -397,7 +366,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -418,7 +387,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -439,7 +408,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -460,7 +429,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -481,7 +450,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -502,7 +471,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -523,7 +492,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -544,7 +513,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -565,7 +534,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -586,7 +555,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -607,7 +576,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -687,7 +656,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -708,7 +677,7 @@ tape( 'the function supports specifying the strides of the first and second dime out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -729,7 +698,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -750,7 +719,7 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -771,7 +740,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -792,7 +761,7 @@ tape( 'the function supports a negative stride for the second dimension of `A` ( out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -813,7 +782,7 @@ tape( 'the function supports negative strides for `A` (row-major)', function tes out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -834,7 +803,7 @@ tape( 'the function supports negative strides for `A` (column-major)', function out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -855,7 +824,7 @@ tape( 'the function supports an `A` offset (row-major)', function test( t ) { out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -876,7 +845,7 @@ tape( 'the function supports an `A` offset (column-major)', function test( t ) { out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -897,7 +866,7 @@ tape( 'the function supports a negative `x` stride (row-major)', function test( out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -918,7 +887,7 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -939,7 +908,7 @@ tape( 'the function supports complex access patterns (row-major)', function test out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -960,7 +929,7 @@ tape( 'the function supports complex access patterns (column-major)', function t out = strsv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/strsv/test/test.strsv.js b/lib/node_modules/@stdlib/blas/base/strsv/test/test.strsv.js index 30612b033eb..3ec79835abb 100644 --- a/lib/node_modules/@stdlib/blas/base/strsv/test/test.strsv.js +++ b/lib/node_modules/@stdlib/blas/base/strsv/test/test.strsv.js @@ -24,8 +24,6 @@ var tape = require( 'tape' ); var Float32Array = require( '@stdlib/array/float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); var strsv = require( './../lib/strsv.js' ); @@ -54,35 +52,6 @@ var cxt = require( './fixtures/column_major_xt.json' ); var cxn = require( './fixtures/column_major_xn.json' ); -// 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 ) { @@ -292,7 +261,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 50.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -313,7 +282,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -334,7 +303,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -355,7 +324,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -376,7 +345,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -397,7 +366,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -418,7 +387,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -439,7 +408,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -460,7 +429,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -481,7 +450,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -502,7 +471,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -523,7 +492,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -544,7 +513,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -565,7 +534,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -586,7 +555,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -607,7 +576,7 @@ tape( 'the function solves one of the systems of equations `A*x = b` or `A^T*x = out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -628,7 +597,7 @@ tape( 'the function supports specifying an `x` stride (row-major)', function tes out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -649,7 +618,7 @@ tape( 'the function supports specifying an `x` stride (column-major)', function out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -729,7 +698,7 @@ tape( 'the function supports a negative `x` stride (row-major)', function test( out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); }); @@ -750,7 +719,7 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes out = strsv( data.order, data.uplo, data.trans, data.diag, data.N, a, data.LDA, x, data.strideX ); t.strictEqual( out, x, 'returns expected value' ); - isApprox( t, x, expected, 2.0 ); + t.deepEqual( out, expected, 'returns expected value' ); t.end(); });