From 8be178e96f2a2b2d010b0f86413f94ab23210335 Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 14 Aug 2026 07:02:40 +0000 Subject: [PATCH] test: migrate `math/base/special/boxcox1p` to ULP-based assertions Ref: https://github.com/stdlib-js/stdlib/issues/11352 --- .../math/base/special/boxcox1p/test/test.js | 62 +++---------------- .../base/special/boxcox1p/test/test.native.js | 62 +++---------------- 2 files changed, 14 insertions(+), 110 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/boxcox1p/test/test.js b/lib/node_modules/@stdlib/math/base/special/boxcox1p/test/test.js index 4af3f1de7654..8b0e9c18df39 100644 --- a/lib/node_modules/@stdlib/math/base/special/boxcox1p/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/boxcox1p/test/test.js @@ -23,9 +23,9 @@ var tape = require( 'tape' ); 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 NINF = require( '@stdlib/constants/float64/ninf' ); var EPS = require( '@stdlib/constants/float64/eps' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var boxcox1p = require( './../lib' ); @@ -92,8 +92,6 @@ tape( 'the function returns `NaN` if `x` is less than negative one', function te tape( 'the function computes a one-parameter Box-Cox transformation for positive medium numbers', function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -104,21 +102,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for positive y = mediumPositive.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 17.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 27 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for positive small numbers', function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -129,21 +119,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for positive y = smallPositive.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 4.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 4 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for very small numbers', function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -154,21 +136,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for very sma y = verySmall.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 1.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 0 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for tiny numbers', function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -179,21 +153,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for tiny num y = tiny.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 1.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 0 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for tiny numbers and large lambda', function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -204,21 +170,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for tiny num y = tinyLargeLambda.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 3.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 2 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for tiny lambda', function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -229,13 +187,7 @@ tape( 'the function computes a one-parameter Box-Cox transformation for tiny lam y = tinyLambda.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 1.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/boxcox1p/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/boxcox1p/test/test.native.js index 02bdffef0002..03714f35954b 100644 --- a/lib/node_modules/@stdlib/math/base/special/boxcox1p/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/boxcox1p/test/test.native.js @@ -24,9 +24,9 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); 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 NINF = require( '@stdlib/constants/float64/ninf' ); var EPS = require( '@stdlib/constants/float64/eps' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -101,8 +101,6 @@ tape( 'the function returns `NaN` if `x` is less than negative one', opts, funct tape( 'the function computes a one-parameter Box-Cox transformation for positive medium numbers', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -113,21 +111,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for positive y = mediumPositive.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 17.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 27 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for positive small numbers', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -138,21 +128,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for positive y = smallPositive.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 4.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 4 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for very small numbers', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -163,21 +145,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for very sma y = verySmall.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 1.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 0 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for tiny numbers', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -188,21 +162,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for tiny num y = tiny.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 1.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 0 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for tiny numbers and large lambda', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -213,21 +179,13 @@ tape( 'the function computes a one-parameter Box-Cox transformation for tiny num y = tinyLargeLambda.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 3.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 2 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes a one-parameter Box-Cox transformation for tiny lambda', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var b; @@ -238,13 +196,7 @@ tape( 'the function computes a one-parameter Box-Cox transformation for tiny lam y = tinyLambda.y; for ( i = 0; i < expected.length; i++ ) { b = boxcox1p( x[ i ], y[ i ] ); - if ( b === expected[ i ] ) { - t.strictEqual( b, expected[ i ], 'returns '+b+' when provided '+x[i]+' and '+y[i]+'.' ); - } else { - delta = abs( expected[ i ] - b ); - tol = 1.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. returns '+b+' when provided '+x[i]+' and '+y[i]+'. expected: '+expected[i]+'. delta: '+delta+'. tol: ' +tol+'.' ); - } + t.strictEqual( isAlmostSameValue( b, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); });