From 9fbeee000e3da6422f69cfd3698397d6d2c4b531 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 28 Sep 2026 09:19:18 +0000 Subject: [PATCH] test: migrate `stats/strided/dsemtk` to ULP-based assertions Replaces the relative-tolerance (EPS-based) floating-point comparisons in the test suite with `isAlmostSameValue` ULP-difference checks, per the migration described in stdlib-js/stdlib#11352. The minimum ULP tolerance was determined empirically (starting at a high value and lowering until failures occurred): ULP=0 fails, ULP=1 passes deterministically across repeated runs, so ULP=1 is used. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01GfhKkXU78VTa7ZEDFn21v7 --- .../stats/strided/dsemtk/test/test.dsemtk.js | 15 +++------------ .../strided/dsemtk/test/test.dsemtk.native.js | 15 +++------------ .../stats/strided/dsemtk/test/test.ndarray.js | 15 +++------------ .../strided/dsemtk/test/test.ndarray.native.js | 15 +++------------ 4 files changed, 12 insertions(+), 48 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.dsemtk.js b/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.dsemtk.js index a7f9fddbb025..69efa18364c1 100644 --- a/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.dsemtk.js +++ b/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.dsemtk.js @@ -22,10 +22,9 @@ var tape = require( 'tape' ); var sqrt = require( '@stdlib/math/base/special/sqrt' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); var dsemtk = require( './../lib/dsemtk.js' ); @@ -44,8 +43,6 @@ tape( 'the function has an arity of 4', function test( t ) { tape( 'the function calculates the standard error of the mean for a strided array (population)', function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -53,9 +50,7 @@ tape( 'the function calculates the standard error of the mean for a strided arra v = dsemtk( x.length, 0, x, 1 ); expected = sqrt( 53.5/x.length ) / sqrt( 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( isAlmostSameValue( v, expected, 1 ), true, 'returns expected value' ); x = new Float64Array( [ -4.0, -4.0 ] ); v = dsemtk( x.length, 0, x, 1 ); @@ -70,8 +65,6 @@ tape( 'the function calculates the standard error of the mean for a strided arra tape( 'the function calculates the standard error of the mean for a strided array (sample)', function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -79,9 +72,7 @@ tape( 'the function calculates the standard error of the mean for a strided arra v = dsemtk( x.length, 1, x, 1 ); expected = sqrt( 53.5/(x.length-1) ) / sqrt( 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( isAlmostSameValue( v, expected, 1 ), true, 'returns expected value' ); x = new Float64Array( [ -4.0, -4.0 ] ); v = dsemtk( x.length, 1, x, 1 ); diff --git a/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.dsemtk.native.js b/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.dsemtk.native.js index 94b899510f5d..a0f251318ac1 100644 --- a/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.dsemtk.native.js +++ b/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.dsemtk.native.js @@ -23,10 +23,9 @@ 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 isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -53,8 +52,6 @@ tape( 'the function has an arity of 4', opts, function test( t ) { tape( 'the function calculates the standard error of the mean for a strided array (population)', opts, function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -62,9 +59,7 @@ tape( 'the function calculates the standard error of the mean for a strided arra v = dsemtk( x.length, 0, x, 1 ); expected = sqrt( 53.5/x.length ) / sqrt( 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( isAlmostSameValue( v, expected, 1 ), true, 'returns expected value' ); x = new Float64Array( [ -4.0, -4.0 ] ); v = dsemtk( x.length, 0, x, 1 ); @@ -79,8 +74,6 @@ tape( 'the function calculates the standard error of the mean for a strided arra tape( 'the function calculates the standard error of the mean for a strided array (sample)', opts, function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -88,9 +81,7 @@ tape( 'the function calculates the standard error of the mean for a strided arra v = dsemtk( x.length, 1, x, 1 ); expected = sqrt( 53.5/(x.length-1) ) / sqrt( 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( isAlmostSameValue( v, expected, 1 ), true, 'returns expected value' ); x = new Float64Array( [ -4.0, -4.0 ] ); v = dsemtk( x.length, 1, x, 1 ); diff --git a/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.ndarray.js b/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.ndarray.js index 5f0899cf8be9..2f7497e4e0ff 100644 --- a/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.ndarray.js @@ -22,10 +22,9 @@ var tape = require( 'tape' ); var sqrt = require( '@stdlib/math/base/special/sqrt' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); var dsemtk = require( './../lib/ndarray.js' ); @@ -44,8 +43,6 @@ tape( 'the function has an arity of 5', function test( t ) { tape( 'the function calculates the standard error of the mean for a strided array (population)', function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -53,9 +50,7 @@ tape( 'the function calculates the standard error of the mean for a strided arra v = dsemtk( x.length, 0, x, 1, 0 ); expected = sqrt( 53.5/x.length ) / sqrt( 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( isAlmostSameValue( v, expected, 1 ), true, 'returns expected value' ); x = new Float64Array( [ -4.0, -4.0 ] ); v = dsemtk( x.length, 0, x, 1, 0 ); @@ -70,8 +65,6 @@ tape( 'the function calculates the standard error of the mean for a strided arra tape( 'the function calculates the standard error of the mean for a strided array (sample)', function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -79,9 +72,7 @@ tape( 'the function calculates the standard error of the mean for a strided arra v = dsemtk( x.length, 1, x, 1, 0 ); expected = sqrt( 53.5/(x.length-1) ) / sqrt( 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( isAlmostSameValue( v, expected, 1 ), true, 'returns expected value' ); x = new Float64Array( [ -4.0, -4.0 ] ); v = dsemtk( x.length, 1, x, 1, 0 ); diff --git a/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.ndarray.native.js b/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.ndarray.native.js index c69684647980..f245fb6455c1 100644 --- a/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.ndarray.native.js +++ b/lib/node_modules/@stdlib/stats/strided/dsemtk/test/test.ndarray.native.js @@ -23,10 +23,9 @@ 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 isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var Float64Array = require( '@stdlib/array/float64' ); -var EPS = require( '@stdlib/constants/float64/eps' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -53,8 +52,6 @@ tape( 'the function has an arity of 5', opts, function test( t ) { tape( 'the function calculates the standard error of the mean for a strided array (population)', opts, function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -62,9 +59,7 @@ tape( 'the function calculates the standard error of the mean for a strided arra v = dsemtk( x.length, 0, x, 1, 0 ); expected = sqrt( 53.5/x.length ) / sqrt( 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( isAlmostSameValue( v, expected, 1 ), true, 'returns expected value' ); x = new Float64Array( [ -4.0, -4.0 ] ); v = dsemtk( x.length, 0, x, 1, 0 ); @@ -79,8 +74,6 @@ tape( 'the function calculates the standard error of the mean for a strided arra tape( 'the function calculates the standard error of the mean for a strided array (sample)', opts, function test( t ) { var expected; - var delta; - var tol; var x; var v; @@ -88,9 +81,7 @@ tape( 'the function calculates the standard error of the mean for a strided arra v = dsemtk( x.length, 1, x, 1, 0 ); expected = sqrt( 53.5/(x.length-1) ) / sqrt( 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( isAlmostSameValue( v, expected, 1 ), true, 'returns expected value' ); x = new Float64Array( [ -4.0, -4.0 ] ); v = dsemtk( x.length, 1, x, 1, 0 );