From 56f9be918040697fc84c15d41c64ce5962b1b6d4 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 1 Oct 2026 21:10:37 +0000 Subject: [PATCH 1/2] test: migrate `stats/incr/gmean` 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_01P8miTQQZYJqEoGvMgwvgKY --- .../@stdlib/stats/incr/gmean/test/test.js | 25 ++++++------------- 1 file changed, 8 insertions(+), 17 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/incr/gmean/test/test.js b/lib/node_modules/@stdlib/stats/incr/gmean/test/test.js index 1a790aea0aa0..91f6a7dec2ae 100644 --- a/lib/node_modules/@stdlib/stats/incr/gmean/test/test.js +++ b/lib/node_modules/@stdlib/stats/incr/gmean/test/test.js @@ -22,13 +22,17 @@ var tape = require( 'tape' ); var isnan = require( '@stdlib/assert/is-nan' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var pow = require( '@stdlib/math/base/special/pow' ); -var abs = require( '@stdlib/math/base/special/abs' ); -var EPSILON = require( '@stdlib/constants/float64/eps' ); var PINF = require( '@stdlib/constants/float64/pinf' ); var incrgmean = require( './../lib' ); +// VARIABLES // + +var ULP = 2; + + // TESTS // tape( 'main export is a function', function test( t ) { @@ -45,10 +49,8 @@ tape( 'the function returns an accumulator function', function test( t ) { tape( 'the accumulator function incrementally computes a geometric mean', function test( t ) { var expected; var actual; - var delta; var data; var prod; - var tol; var acc; var N; var d; @@ -65,23 +67,15 @@ tape( 'the accumulator function incrementally computes a geometric mean', functi prod *= d; expected = pow( prod, 1.0/(i+1) ); actual = acc( d ); - if ( actual === expected ) { - t.strictEqual( actual, expected, 'returns expected value. d: '+d+'.' ); - } else { - delta = abs( expected - actual ); - tol = 1.5 * EPSILON * abs( expected ); - t.strictEqual( delta <= tol, true, 'within tolerance. d: '+d+'. Expected: '+expected+'. Actual: '+actual+'. Delta: '+delta+'. Tol: '+tol+'.' ); - } + t.strictEqual( isAlmostSameValue( actual, expected, ULP ), true, 'returns expected value. d: '+d+'.' ); } t.end(); }); tape( 'if not provided an input value, the accumulator function returns the current geometric mean', function test( t ) { var expected; - var delta; var data; var acc; - var tol; var i; data = [ 2.0, 3.0, 1.0 ]; @@ -91,10 +85,7 @@ tape( 'if not provided an input value, the accumulator function returns the curr acc( data[ i ] ); } expected = 1.8171205928321397; - delta = abs( expected - acc() ); - tol = EPSILON * abs( expected ); - - t.strictEqual( delta <= tol, true, 'within tolerance. Expected: '+expected+'. Actual: '+acc()+'. Delta: '+delta+'. Tol: '+tol+'.' ); + t.strictEqual( isAlmostSameValue( acc(), expected, ULP ), true, 'returns expected value' ); t.end(); }); From 610965f79c245e5210f4fc2435a17a97cc36a3b0 Mon Sep 17 00:00:00 2001 From: Athan Date: Thu, 1 Oct 2026 19:04:51 -0700 Subject: [PATCH 2/2] Apply batched suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- lib/node_modules/@stdlib/stats/incr/gmean/test/test.js | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/node_modules/@stdlib/stats/incr/gmean/test/test.js b/lib/node_modules/@stdlib/stats/incr/gmean/test/test.js index 91f6a7dec2ae..9d056822a15e 100644 --- a/lib/node_modules/@stdlib/stats/incr/gmean/test/test.js +++ b/lib/node_modules/@stdlib/stats/incr/gmean/test/test.js @@ -28,11 +28,6 @@ var PINF = require( '@stdlib/constants/float64/pinf' ); var incrgmean = require( './../lib' ); -// VARIABLES // - -var ULP = 2; - - // TESTS // tape( 'main export is a function', function test( t ) { @@ -67,7 +62,7 @@ tape( 'the accumulator function incrementally computes a geometric mean', functi prod *= d; expected = pow( prod, 1.0/(i+1) ); actual = acc( d ); - t.strictEqual( isAlmostSameValue( actual, expected, ULP ), true, 'returns expected value. d: '+d+'.' ); + t.strictEqual( isAlmostSameValue( actual, expected, 2 ), true, 'returns expected value. d: '+d+'.' ); } t.end(); }); @@ -85,7 +80,7 @@ tape( 'if not provided an input value, the accumulator function returns the curr acc( data[ i ] ); } expected = 1.8171205928321397; - t.strictEqual( isAlmostSameValue( acc(), expected, ULP ), true, 'returns expected value' ); + t.strictEqual( isAlmostSameValue( acc(), expected, 2 ), true, 'returns expected value' ); t.end(); });