From 8dbc5862d2cd6069dbd30f2be89b7065a618eaf4 Mon Sep 17 00:00:00 2001 From: Ujjwal Verma Date: Wed, 29 Jul 2026 12:46:27 +0530 Subject: [PATCH] test: migrate math/base/special/acoth to ULP-based testing --- .../math/base/special/acoth/test/test.js | 83 ++----------------- .../base/special/acoth/test/test.native.js | 83 ++----------------- 2 files changed, 18 insertions(+), 148 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/test.js b/lib/node_modules/@stdlib/math/base/special/acoth/test/test.js index d7691d1eb819..2cb4b82aba69 100644 --- a/lib/node_modules/@stdlib/math/base/special/acoth/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/test.js @@ -23,8 +23,7 @@ var tape = require( 'tape' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var randu = require( '@stdlib/random/base/randu' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValue = require( '@stdlib/number/float64/base/assert/is-almost-same-value' ); var acoth = require( './../lib' ); @@ -50,8 +49,6 @@ tape( 'main export is a function', function test( t ) { tape( 'the function computes the inverse hyperbolic cotangent for medium positive values', function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -60,21 +57,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for medium positiv expected = mediumPositive.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for medium negative values', function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -83,21 +72,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for medium negativ expected = mediumNegative.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for large positive values', function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -106,21 +87,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for large positive expected = largePositive.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for large negative values', function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -129,21 +102,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for large negative expected = largeNegative.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for larger positive values', function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -152,21 +117,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for larger positiv expected = largerPositive.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for larger negative values', function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -175,21 +132,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for larger negativ expected = largerNegative.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for huge positive values', function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -198,21 +147,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for huge positive expected = hugePositive.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for huge negative values', function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -221,13 +162,7 @@ tape( 'the function computes the inverse hyperbolic cotangent for huge negative expected = hugeNegative.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/acoth/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/acoth/test/test.native.js index 7a522c064d16..d096cd7d052a 100644 --- a/lib/node_modules/@stdlib/math/base/special/acoth/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/acoth/test/test.native.js @@ -25,8 +25,7 @@ var tape = require( 'tape' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); var randu = require( '@stdlib/random/base/randu' ); var tryRequire = require( '@stdlib/utils/try-require' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); +var isAlmostSameValue = require( '@stdlib/number/float64/base/assert/is-almost-same-value' ); // FIXTURES // @@ -59,8 +58,6 @@ tape( 'main export is a function', opts, function test( t ) { tape( 'the function computes the inverse hyperbolic cotangent for medium positive values', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -69,21 +66,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for medium positiv expected = mediumPositive.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for medium negative values', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -92,21 +81,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for medium negativ expected = mediumNegative.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for large positive values', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -115,21 +96,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for large positive expected = largePositive.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for large negative values', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -138,21 +111,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for large negative expected = largeNegative.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for larger positive values', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -161,21 +126,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for larger positiv expected = largerPositive.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for larger negative values', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -184,21 +141,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for larger negativ expected = largerNegative.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for huge positive values', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -207,21 +156,13 @@ tape( 'the function computes the inverse hyperbolic cotangent for huge positive expected = hugePositive.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes the inverse hyperbolic cotangent for huge negative values', opts, function test( t ) { var expected; - var delta; - var tol; var x; var y; var i; @@ -230,13 +171,7 @@ tape( 'the function computes the inverse hyperbolic cotangent for huge negative expected = hugeNegative.expected; for ( i = 0; i < x.length; i++ ) { y = acoth( x[ i ] ); - if ( y === expected[ i ] ) { - t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i]+'.' ); - } else { - delta = abs( y - expected[i] ); - tol = 1.0 * EPS * abs( expected[i] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } + t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' ); } t.end(); });