From a316da227645c0cf0b205cafeb3d984fd60e7c16 Mon Sep 17 00:00:00 2001 From: Athan Reines Date: Thu, 17 Sep 2026 14:15:28 +0000 Subject: [PATCH] test: migrate `stats/strided/sstdevwd` to ULP-based assertions Migrate the tests for `stats/strided/sstdevwd` from relative tolerance testing to ULP difference testing, replacing the `delta`/`tol` comparisons with `isAlmostSameValuef` assertions using the minimum required ULP bound of `1`. Ref: https://github.com/stdlib-js/stdlib/issues/11352 Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01QMgxvv2enPsho3aBY8NYSV --- .../@stdlib/stats/strided/sstdevwd/test/test.ndarray.js | 9 ++------- .../stats/strided/sstdevwd/test/test.ndarray.native.js | 9 ++------- .../@stdlib/stats/strided/sstdevwd/test/test.sstdevwd.js | 9 ++------- .../stats/strided/sstdevwd/test/test.sstdevwd.native.js | 9 ++------- 4 files changed, 8 insertions(+), 28 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.ndarray.js b/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.ndarray.js index 2aa75b903ff6..1999778e1510 100644 --- a/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.ndarray.js @@ -22,11 +22,10 @@ var tape = require( 'tape' ); var sqrt = require( '@stdlib/math/base/special/sqrt' ); -var abs = require( '@stdlib/math/base/special/abs' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); var Float32Array = require( '@stdlib/array/float32' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var sstdevwd = require( './../lib/ndarray.js' ); @@ -45,8 +44,6 @@ tape( 'the function has an arity of 5', function test( t ) { tape( 'the function calculates the population standard deviation of a strided array', function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -54,9 +51,7 @@ tape( 'the function calculates the population standard deviation of a strided ar v = sstdevwd( x.length, 0, x, 1, 0 ); expected = float64ToFloat32( sqrt( 53.5/x.length ) ); - delta = abs( v - expected ); - tol = 1.0 * EPS * abs( expected ); - t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. Δ: '+delta+'.' ); + t.strictEqual( isAlmostSameValuef( v, expected, 1 ), true, 'returns expected value' ); x = new Float32Array( [ -4.0, -4.0 ] ); v = sstdevwd( x.length, 0, x, 1, 0 ); diff --git a/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.ndarray.native.js b/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.ndarray.native.js index 4df4abc39745..9b808f8f42b8 100644 --- a/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.ndarray.native.js @@ -23,11 +23,10 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); var sqrt = require( '@stdlib/math/base/special/sqrt' ); -var abs = require( '@stdlib/math/base/special/abs' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); var Float32Array = require( '@stdlib/array/float32' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -54,8 +53,6 @@ tape( 'the function has an arity of 5', opts, function test( t ) { tape( 'the function calculates the population standard deviation of a strided array', opts, function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -63,9 +60,7 @@ tape( 'the function calculates the population standard deviation of a strided ar v = sstdevwd( x.length, 0, x, 1, 0 ); expected = float64ToFloat32( sqrt( 53.5/x.length ) ); - delta = abs( v - expected ); - tol = 1.0 * EPS * abs( expected ); - t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. Δ: '+delta+'.' ); + t.strictEqual( isAlmostSameValuef( v, expected, 1 ), true, 'returns expected value' ); x = new Float32Array( [ -4.0, -4.0 ] ); v = sstdevwd( x.length, 0, x, 1, 0 ); diff --git a/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.sstdevwd.js b/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.sstdevwd.js index 4af8b3e144d3..7f9c56308788 100644 --- a/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.sstdevwd.js +++ b/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.sstdevwd.js @@ -22,11 +22,10 @@ var tape = require( 'tape' ); var sqrt = require( '@stdlib/math/base/special/sqrt' ); -var abs = require( '@stdlib/math/base/special/abs' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); var Float32Array = require( '@stdlib/array/float32' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var sstdevwd = require( './../lib/sstdevwd.js' ); @@ -45,8 +44,6 @@ tape( 'the function has an arity of 4', function test( t ) { tape( 'the function calculates the population standard deviation of a strided array', function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -54,9 +51,7 @@ tape( 'the function calculates the population standard deviation of a strided ar v = sstdevwd( x.length, 0, x, 1 ); expected = float64ToFloat32( sqrt( 53.5/x.length ) ); - delta = abs( v - expected ); - tol = 1.0 * EPS * abs( expected ); - t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. Δ: '+delta+'.' ); + t.strictEqual( isAlmostSameValuef( v, expected, 1 ), true, 'returns expected value' ); x = new Float32Array( [ -4.0, -4.0 ] ); v = sstdevwd( x.length, 0, x, 1 ); diff --git a/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.sstdevwd.native.js b/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.sstdevwd.native.js index 5ce28e7d40ea..b726c369985a 100644 --- a/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.sstdevwd.native.js +++ b/lib/node_modules/@stdlib/stats/strided/sstdevwd/test/test.sstdevwd.native.js @@ -23,11 +23,10 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); var sqrt = require( '@stdlib/math/base/special/sqrt' ); -var abs = require( '@stdlib/math/base/special/abs' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' ); -var EPS = require( '@stdlib/constants/float32/eps' ); var Float32Array = require( '@stdlib/array/float32' ); +var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -54,8 +53,6 @@ tape( 'the function has an arity of 4', opts, function test( t ) { tape( 'the function calculates the population standard deviation of a strided array', opts, function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -63,9 +60,7 @@ tape( 'the function calculates the population standard deviation of a strided ar v = sstdevwd( x.length, 0, x, 1 ); expected = float64ToFloat32( sqrt( 53.5/x.length ) ); - delta = abs( v - expected ); - tol = 1.0 * EPS * abs( expected ); - t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. Δ: '+delta+'.' ); + t.strictEqual( isAlmostSameValuef( v, expected, 1 ), true, 'returns expected value' ); x = new Float32Array( [ -4.0, -4.0 ] ); v = sstdevwd( x.length, 0, x, 1 );