From 7e3c51548d234ca4323a29d20d821750e9ff459f Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 27 Oct 2026 09:22:56 +0000 Subject: [PATCH] test: migrate `blas/base/scasum` to ULP-based assertions Ref: https://github.com/stdlib-js/stdlib/issues/11352 Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_017wWD7Atvdz918auatthNRx --- .../blas/base/scasum/test/test.ndarray.js | 38 +++---------------- .../base/scasum/test/test.ndarray.native.js | 38 +++---------------- .../blas/base/scasum/test/test.scasum.js | 36 +++--------------- .../base/scasum/test/test.scasum.native.js | 36 +++--------------- 4 files changed, 22 insertions(+), 126 deletions(-) diff --git a/lib/node_modules/@stdlib/blas/base/scasum/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/scasum/test/test.ndarray.js index 6f34f4c3fce4..c3f70045b03b 100644 --- a/lib/node_modules/@stdlib/blas/base/scasum/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/scasum/test/test.ndarray.js @@ -22,36 +22,10 @@ var tape = require( 'tape' ); var Complex64Array = require( '@stdlib/array/complex64' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var scasum = require( './../lib/ndarray.js' ); -// FUNCTIONS // - -/** -* Tests for element-wise approximate equality. -* -* @private -* @param {Object} t - test object -* @param {number} actual - actual value -* @param {number} expected - expected value -* @param {number} rtol - relative tolerance -*/ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; - - if ( actual === expected ) { - t.strictEqual( actual, expected, 'returns expected value' ); - } else { - delta = abs( actual - expected ); - tol = rtol * EPS * abs( expected ); - t.ok( delta <= tol, 'within tolerance. actual: '+actual+'. expected: '+expected+'. delta: '+delta+'. tol: '+tol+'.' ); - } -} - - // TESTS // tape( 'main export is a function', function test( t ) { @@ -85,7 +59,7 @@ tape( 'the function computes the sum of the absolute values of the real and imag expected = 1.6; actual = scasum( 4, x, 1, 0 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); x = new Complex64Array([ 0.1, // 1 @@ -100,7 +74,7 @@ tape( 'the function computes the sum of the absolute values of the real and imag expected = 1.3; actual = scasum( 3, x, 1, 0 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -160,7 +134,7 @@ tape( 'the function supports specifying a stride', function test( t ) { expected = 1.6; actual = scasum( 4, x, 2, 0 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -190,7 +164,7 @@ tape( 'the function supports specifying a negative stride', function test( t ) { expected = 28.9; actual = scasum( 4, x, -1, 3 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -244,6 +218,6 @@ tape( 'the function supports specifying complex access patterns', function test( expected = 1.6; actual = scasum( 4, x, -2, 6 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/scasum/test/test.ndarray.native.js b/lib/node_modules/@stdlib/blas/base/scasum/test/test.ndarray.native.js index 1196f4be567d..b1d03d510676 100644 --- a/lib/node_modules/@stdlib/blas/base/scasum/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/blas/base/scasum/test/test.ndarray.native.js @@ -23,8 +23,7 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); var Complex64Array = require( '@stdlib/array/complex64' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -36,31 +35,6 @@ var opts = { }; -// FUNCTIONS // - -/** -* Tests for element-wise approximate equality. -* -* @private -* @param {Object} t - test object -* @param {number} actual - actual value -* @param {number} expected - expected value -* @param {number} rtol - relative tolerance -*/ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; - - if ( actual === expected ) { - t.strictEqual( actual, expected, 'returns expected value' ); - } else { - delta = abs( actual - expected ); - tol = rtol * EPS * abs( expected ); - t.ok( delta <= tol, 'within tolerance. actual: '+actual+'. expected: '+expected+'. delta: '+delta+'. tol: '+tol+'.' ); - } -} - - // TESTS // tape( 'main export is a function', opts, function test( t ) { @@ -94,7 +68,7 @@ tape( 'the function computes the sum of the absolute values of the real and imag expected = 1.6; actual = scasum( 4, x, 1, 0 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); x = new Complex64Array([ 0.1, // 1 @@ -109,7 +83,7 @@ tape( 'the function computes the sum of the absolute values of the real and imag expected = 1.3; actual = scasum( 3, x, 1, 0 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -169,7 +143,7 @@ tape( 'the function supports specifying a stride', opts, function test( t ) { expected = 1.6; actual = scasum( 4, x, 2, 0 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -199,7 +173,7 @@ tape( 'the function supports specifying a negative stride', opts, function test( expected = 28.9; actual = scasum( 4, x, -1, 3 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -253,6 +227,6 @@ tape( 'the function supports specifying complex access patterns', opts, function expected = 1.6; actual = scasum( 4, x, -2, 6 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/scasum/test/test.scasum.js b/lib/node_modules/@stdlib/blas/base/scasum/test/test.scasum.js index 4a534573d18e..a320e63c2818 100644 --- a/lib/node_modules/@stdlib/blas/base/scasum/test/test.scasum.js +++ b/lib/node_modules/@stdlib/blas/base/scasum/test/test.scasum.js @@ -22,36 +22,10 @@ var tape = require( 'tape' ); var Complex64Array = require( '@stdlib/array/complex64' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var scasum = require( './../lib/scasum.js' ); -// FUNCTIONS // - -/** -* Tests for element-wise approximate equality. -* -* @private -* @param {Object} t - test object -* @param {number} actual - actual value -* @param {number} expected - expected value -* @param {number} rtol - relative tolerance -*/ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; - - if ( actual === expected ) { - t.strictEqual( actual, expected, 'returns expected value' ); - } else { - delta = abs( actual - expected ); - tol = rtol * EPS * abs( expected ); - t.ok( delta <= tol, 'within tolerance. actual: '+actual+'. expected: '+expected+'. delta: '+delta+'. tol: '+tol+'.' ); - } -} - - // TESTS // tape( 'main export is a function', function test( t ) { @@ -85,7 +59,7 @@ tape( 'the function computes the sum of the absolute values of the real and imag expected = 1.6; actual = scasum( 4, x, 1 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); x = new Complex64Array([ 0.1, // 1 @@ -100,7 +74,7 @@ tape( 'the function computes the sum of the absolute values of the real and imag expected = 1.3; actual = scasum( 3, x, 1 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -160,7 +134,7 @@ tape( 'the function supports specifying a stride', function test( t ) { expected = 1.6; actual = scasum( 4, x, 2 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -182,7 +156,7 @@ tape( 'the function supports specifying a negative stride', function test( t ) { expected = 28.9; actual = scasum( 4, x, -1 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/blas/base/scasum/test/test.scasum.native.js b/lib/node_modules/@stdlib/blas/base/scasum/test/test.scasum.native.js index 4185bfb1b6ee..3a4435fc932d 100644 --- a/lib/node_modules/@stdlib/blas/base/scasum/test/test.scasum.native.js +++ b/lib/node_modules/@stdlib/blas/base/scasum/test/test.scasum.native.js @@ -23,8 +23,7 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); var Complex64Array = require( '@stdlib/array/complex64' ); -var EPS = require( '@stdlib/constants/float32/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -36,31 +35,6 @@ var opts = { }; -// FUNCTIONS // - -/** -* Tests for element-wise approximate equality. -* -* @private -* @param {Object} t - test object -* @param {number} actual - actual value -* @param {number} expected - expected value -* @param {number} rtol - relative tolerance -*/ -function isApprox( t, actual, expected, rtol ) { - var delta; - var tol; - - if ( actual === expected ) { - t.strictEqual( actual, expected, 'returns expected value' ); - } else { - delta = abs( actual - expected ); - tol = rtol * EPS * abs( expected ); - t.ok( delta <= tol, 'within tolerance. actual: '+actual+'. expected: '+expected+'. delta: '+delta+'. tol: '+tol+'.' ); - } -} - - // TESTS // tape( 'main export is a function', opts, function test( t ) { @@ -94,7 +68,7 @@ tape( 'the function computes the sum of the absolute values of the real and imag expected = 1.6; actual = scasum( 4, x, 1 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); x = new Complex64Array([ 0.1, // 1 @@ -109,7 +83,7 @@ tape( 'the function computes the sum of the absolute values of the real and imag expected = 1.3; actual = scasum( 3, x, 1 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -169,7 +143,7 @@ tape( 'the function supports specifying a stride', opts, function test( t ) { expected = 1.6; actual = scasum( 4, x, 2 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); }); @@ -191,7 +165,7 @@ tape( 'the function supports specifying a negative stride', opts, function test( expected = 28.9; actual = scasum( 4, x, -1 ); - isApprox( t, actual, expected, 2.0 ); + t.strictEqual( isAlmostSameValuef( actual, expected, 1 ), true, 'returns expected value' ); t.end(); });