From 99bdf13480490f67f28df16e51f36cf7192719bb Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 3 Aug 2026 09:34:37 +0000 Subject: [PATCH] test: migrate `math/base/special/floorn` to ULP-based assertions Replace relative tolerance testing (EPS-based delta/tol comparison) with ULP difference testing via `@stdlib/assert/is-almost-same-value` for the subnormal rounding test case. Ref: https://github.com/stdlib-js/stdlib/issues/11352 --- .../@stdlib/math/base/special/floorn/test/test.js | 13 ++----------- .../math/base/special/floorn/test/test.native.js | 13 ++----------- 2 files changed, 4 insertions(+), 22 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/floorn/test/test.js b/lib/node_modules/@stdlib/math/base/special/floorn/test/test.js index bda4a7465334..9ff56ec82447 100644 --- a/lib/node_modules/@stdlib/math/base/special/floorn/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/floorn/test/test.js @@ -24,14 +24,13 @@ var tape = require( 'tape' ); var PI = require( '@stdlib/constants/float64/pi' ); var PINF = require( '@stdlib/constants/float64/pinf' ); var NINF = require( '@stdlib/constants/float64/ninf' ); -var EPS = require( '@stdlib/constants/float64/eps' ); var randu = require( '@stdlib/random/base/randu' ); var round = require( '@stdlib/math/base/special/round' ); var pow = require( '@stdlib/math/base/special/pow' ); -var abs = require( '@stdlib/math/base/special/abs' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var isNegativeZero = require( '@stdlib/math/base/assert/is-negative-zero' ); var isPositiveZero = require( '@stdlib/math/base/assert/is-positive-zero' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var floorn = require( './../lib' ); @@ -207,8 +206,6 @@ tape( 'if `n > 308` and `x >= 0`, the function returns `+0` (sign preserving)', tape( 'the function supports rounding very small numbers (including subnormals)', function test( t ) { var expected; - var delta; - var tol; var x; var n; var v; @@ -242,13 +239,7 @@ tape( 'the function supports rounding very small numbers (including subnormals)' for ( i = 0; i < n.length; i++ ) { v = floorn( x, n[i] ); - if ( v === expected[i] ) { - t.strictEqual( v, expected[ i ], 'returns '+expected[i]+' when provided x='+x+' and n='+n[i]+'.' ); - } else { - delta = abs( v - expected[i] ); - tol = EPS * abs( expected[i] ); - t.strictEqual( delta <= tol, true, 'x: '+x+'. n: '+n[i]+'. v: '+v+'. expected: '+expected[i]+'. delta: '+delta+'. tol: '+tol ); - } + t.strictEqual( isAlmostSameValue( v, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/floorn/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/floorn/test/test.native.js index 047dc6b2f398..8ae8eddd62aa 100644 --- a/lib/node_modules/@stdlib/math/base/special/floorn/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/floorn/test/test.native.js @@ -25,14 +25,13 @@ var tape = require( 'tape' ); var PI = require( '@stdlib/constants/float64/pi' ); var PINF = require( '@stdlib/constants/float64/pinf' ); var NINF = require( '@stdlib/constants/float64/ninf' ); -var EPS = require( '@stdlib/constants/float64/eps' ); var randu = require( '@stdlib/random/base/randu' ); var round = require( '@stdlib/math/base/special/round' ); var pow = require( '@stdlib/math/base/special/pow' ); -var abs = require( '@stdlib/math/base/special/abs' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var isNegativeZero = require( '@stdlib/math/base/assert/is-negative-zero' ); var isPositiveZero = require( '@stdlib/math/base/assert/is-positive-zero' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -198,8 +197,6 @@ tape( 'if `n > 308` and `x >= 0`, the function returns `+0` (sign preserving)', tape( 'the function supports rounding very small numbers (including subnormals)', opts, function test( t ) { var expected; - var delta; - var tol; var x; var n; var v; @@ -233,13 +230,7 @@ tape( 'the function supports rounding very small numbers (including subnormals)' for ( i = 0; i < n.length; i++ ) { v = floorn( x, n[i] ); - if ( v === expected[i] ) { - t.strictEqual( v, expected[ i ], 'returns '+expected[i]+' when provided x='+x+' and n='+n[i]+'.' ); - } else { - delta = abs( v - expected[i] ); - tol = EPS * abs( expected[i] ); - t.strictEqual( delta <= tol, true, 'x: '+x+'. n: '+n[i]+'. v: '+v+'. expected: '+expected[i]+'. delta: '+delta+'. tol: '+tol ); - } + t.strictEqual( isAlmostSameValue( v, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); });