From 6325a9f79ef25365e31a7ca2b063e108f39905b5 Mon Sep 17 00:00:00 2001 From: Ujjwal Verma Date: Thu, 6 Aug 2026 20:21:02 +0530 Subject: [PATCH 1/2] test(math/base/special/powm1): migrate relative tolerance check to ULP --- .../@stdlib/math/base/special/powm1/test/test.js | 15 +++++++-------- .../math/base/special/powm1/test/test.native.js | 15 +++++++-------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/powm1/test/test.js b/lib/node_modules/@stdlib/math/base/special/powm1/test/test.js index 314740a4cea7..0a30060bd021 100644 --- a/lib/node_modules/@stdlib/math/base/special/powm1/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/powm1/test/test.js @@ -21,12 +21,11 @@ // MODULES // var tape = require( 'tape' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var randu = require( '@stdlib/random/base/randu' ); -var abs = require( '@stdlib/math/base/special/abs' ); var expm1 = require( '@stdlib/math/base/special/expm1' ); var ln = require( '@stdlib/math/base/special/ln' ); -var EPS = require( '@stdlib/constants/float64/eps' ); +var randu = require( '@stdlib/random/base/randu' ); var powm1 = require( './../lib' ); @@ -72,8 +71,6 @@ tape( 'if provided a base equal to `0`, the function returns `-1` (except when t tape( 'the function evaluates `bˣ - 1` (tested against Boost)', function test( t ) { var expected; - var delta; - var tol; var b; var x; var y; @@ -85,9 +82,11 @@ tape( 'the function evaluates `bˣ - 1` (tested against Boost)', function test( for ( i = 0; i < b.length; i++ ) { y = powm1( b[ i ], x[ i ] ); - delta = abs( y - expected[ i ] ); - tol = 2.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. b: ' + b[ i ] + 'x: ' + x[ i ] + '. actual: ' + y + '. E: ' + expected[ i ] + '. tol: ' + tol + '. Δ: ' + delta + '.' ); + if ( y === expected[ i ] ) { + t.strictEqual( y, expected[ i ], 'returns '+expected[ i ]+' when provided b: '+b[ i ]+', x: '+x[ i ] ); + } else { + t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value. b: '+b[ i ]+', x: '+x[ i ] ); + } } t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/powm1/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/powm1/test/test.native.js index afcc11616905..3c09b7f97d1a 100644 --- a/lib/node_modules/@stdlib/math/base/special/powm1/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/powm1/test/test.native.js @@ -22,12 +22,11 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var randu = require( '@stdlib/random/base/randu' ); -var abs = require( '@stdlib/math/base/special/abs' ); var expm1 = require( '@stdlib/math/base/special/expm1' ); var ln = require( '@stdlib/math/base/special/ln' ); -var EPS = require( '@stdlib/constants/float64/eps' ); +var randu = require( '@stdlib/random/base/randu' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -81,8 +80,6 @@ tape( 'if provided a base equal to `0`, the function returns `-1` (except when t tape( 'the function evaluates `bˣ - 1` (tested against Boost)', opts, function test( t ) { var expected; - var delta; - var tol; var b; var x; var y; @@ -94,9 +91,11 @@ tape( 'the function evaluates `bˣ - 1` (tested against Boost)', opts, function for ( i = 0; i < b.length; i++ ) { y = powm1( b[ i ], x[ i ] ); - delta = abs( y - expected[ i ] ); - tol = 2.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. b: ' + b[ i ] + 'x: ' + x[ i ] + '. actual: ' + y + '. E: ' + expected[ i ] + '. tol: ' + tol + '. Δ: ' + delta + '.' ); + if ( y === expected[ i ] ) { + t.strictEqual( y, expected[ i ], 'returns '+expected[ i ]+' when provided b: '+b[ i ]+', x: '+x[ i ] ); + } else { + t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value. b: '+b[ i ]+', x: '+x[ i ] ); + } } t.end(); }); From 21619f47e01e6ab88c54eab29b19bda119be3249 Mon Sep 17 00:00:00 2001 From: Athan Date: Thu, 6 Aug 2026 09:25:17 -0700 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../@stdlib/math/base/special/powm1/test/test.js | 6 +----- .../@stdlib/math/base/special/powm1/test/test.native.js | 6 +----- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/powm1/test/test.js b/lib/node_modules/@stdlib/math/base/special/powm1/test/test.js index 0a30060bd021..58dc61c9be05 100644 --- a/lib/node_modules/@stdlib/math/base/special/powm1/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/powm1/test/test.js @@ -82,11 +82,7 @@ tape( 'the function evaluates `bˣ - 1` (tested against Boost)', function test( for ( i = 0; i < b.length; i++ ) { y = powm1( b[ i ], x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'returns '+expected[ i ]+' when provided b: '+b[ i ]+', x: '+x[ i ] ); - } else { - t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value. b: '+b[ i ]+', x: '+x[ i ] ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' ); } t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/powm1/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/powm1/test/test.native.js index 3c09b7f97d1a..2d01b1cb7e6d 100644 --- a/lib/node_modules/@stdlib/math/base/special/powm1/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/powm1/test/test.native.js @@ -91,11 +91,7 @@ tape( 'the function evaluates `bˣ - 1` (tested against Boost)', opts, function for ( i = 0; i < b.length; i++ ) { y = powm1( b[ i ], x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'returns '+expected[ i ]+' when provided b: '+b[ i ]+', x: '+x[ i ] ); - } else { - t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value. b: '+b[ i ]+', x: '+x[ i ] ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' ); } t.end(); });