From 3a69b6560465683add6561f7af21200b787cb42d Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 12 Aug 2026 09:26:55 +0000 Subject: [PATCH] test: migrate `math/base/special/ccis` to ULP-based assertions Ref: https://github.com/stdlib-js/stdlib/issues/11352 --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: na - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../math/base/special/ccis/test/test.js | 39 +++--------------- .../base/special/ccis/test/test.native.js | 40 +++---------------- 2 files changed, 10 insertions(+), 69 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/ccis/test/test.js b/lib/node_modules/@stdlib/math/base/special/ccis/test/test.js index 709036b109ff..bccd2755bc92 100644 --- a/lib/node_modules/@stdlib/math/base/special/ccis/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/ccis/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 Complex128 = require( '@stdlib/complex/float64/ctor' ); var real = require( '@stdlib/complex/float64/real' ); var imag = require( '@stdlib/complex/float64/imag' ); -var abs = require( '@stdlib/math/base/special/abs' ); -var EPS = require( '@stdlib/constants/float64/eps' ); var PINF = require( '@stdlib/constants/float64/pinf' ); var NINF = require( '@stdlib/constants/float64/ninf' ); var ccis = require( './../lib' ); @@ -60,10 +59,8 @@ tape( 'the function evaluates the cis function for a double-precision complex fl }); tape( 'the function computes cis(z) for pure real z', function test( t ) { - var delta; var cisre; var cisim; - var tol; var re; var im; var i; @@ -79,29 +76,15 @@ tape( 'the function computes cis(z) for pure real z', function test( t ) { z = new Complex128( re[ i ], im[ i ] ); q = ccis( z ); - if ( real( q ) === cisre[ i ] ) { - t.strictEqual( real( q ), cisre[ i ], 'returns expected real component' ); - } else { - delta = abs( real( q ) - cisre[ i ] ); - tol = EPS * abs( cisre[ i ] ); - t.ok( delta <= tol, 'within tolerance. z: '+re[i]+'+ '+im[i]+'i. real: '+real( q )+'. expected: '+cisre[i]+'. delta: '+delta+'. tol: '+tol+'.' ); - } - if ( imag( q ) === cisim[ i ] ) { - t.strictEqual( imag( q ), cisim[ i ], 'returns expected imaginary component' ); - } else { - delta = abs( imag( q ) - cisim[ i ] ); - tol = EPS * abs( cisim[ i ] ); - t.ok( delta <= tol, 'within tolerance. z: '+re[i]+'+ '+im[i]+'i. imag: '+imag( q )+'. expected: '+cisim[i]+'. delta: '+delta+'. tol: '+tol+'.' ); - } + t.strictEqual( isAlmostSameValue( real( q ), cisre[ i ], 0 ), true, 'returns expected value' ); + t.strictEqual( isAlmostSameValue( imag( q ), cisim[ i ], 0 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes cis(z) for complex z', function test( t ) { - var delta; var cisre; var cisim; - var tol; var re; var im; var i; @@ -117,20 +100,8 @@ tape( 'the function computes cis(z) for complex z', function test( t ) { z = new Complex128( re[ i ], im[ i ] ); q = ccis( z ); - if ( real( q ) === cisre[ i ] ) { - t.strictEqual( real( q ), cisre[ i ], 'returns expected real component' ); - } else { - delta = abs( real( q ) - cisre[ i ] ); - tol = EPS * abs( cisre[ i ] ); - t.ok( delta <= tol, 'within tolerance. z: '+re[i]+'+ '+im[i]+'i. real: '+real( q )+'. expected: '+cisre[i]+'. delta: '+delta+'. tol: '+tol+'.' ); - } - if ( imag( q ) === cisim[ i ] ) { - t.strictEqual( imag( q ), cisim[ i ], 'returns expected imaginary component' ); - } else { - delta = abs( imag( q ) - cisim[ i ] ); - tol = EPS * abs( cisim[ i ] ); - t.ok( delta <= tol, 'within tolerance. z: '+re[i]+'+ '+im[i]+'i. imag: '+imag( q )+'. expected: '+cisim[i]+'. delta: '+delta+'. tol: '+tol+'.' ); - } + t.strictEqual( isAlmostSameValue( real( q ), cisre[ i ], 0 ), true, 'returns expected value' ); + t.strictEqual( isAlmostSameValue( imag( q ), cisim[ i ], 0 ), true, 'returns expected value' ); } t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/ccis/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/ccis/test/test.native.js index d7102f07b38f..5ba701e6ca01 100644 --- a/lib/node_modules/@stdlib/math/base/special/ccis/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/ccis/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 Complex128 = require( '@stdlib/complex/float64/ctor' ); var real = require( '@stdlib/complex/float64/real' ); var imag = require( '@stdlib/complex/float64/imag' ); -var abs = require( '@stdlib/math/base/special/abs' ); -var EPS = require( '@stdlib/constants/float64/eps' ); var PINF = require( '@stdlib/constants/float64/pinf' ); var NINF = require( '@stdlib/constants/float64/ninf' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -69,10 +68,8 @@ tape( 'the function evaluates the cis function for a double-precision complex fl }); tape( 'the function computes cis(z) for pure real z', opts, function test( t ) { - var delta; var cisre; var cisim; - var tol; var re; var im; var i; @@ -88,29 +85,15 @@ tape( 'the function computes cis(z) for pure real z', opts, function test( t ) { z = new Complex128( re[ i ], im[ i ] ); q = ccis( z ); - if ( real( q ) === cisre[ i ] ) { - t.strictEqual( real( q ), cisre[ i ], 'returns expected real component' ); - } else { - delta = abs( real( q ) - cisre[ i ] ); - tol = EPS * abs( cisre[ i ] ); - t.ok( delta <= tol, 'within tolerance. z: '+re[i]+'+ '+im[i]+'i. real: '+real( q )+'. expected: '+cisre[i]+'. delta: '+delta+'. tol: '+tol+'.' ); - } - if ( imag( q ) === cisim[ i ] ) { - t.strictEqual( imag( q ), cisim[ i ], 'returns expected imaginary component' ); - } else { - delta = abs( imag( q ) - cisim[ i ] ); - tol = EPS * abs( cisim[ i ] ); - t.ok( delta <= tol, 'within tolerance. z: '+re[i]+'+ '+im[i]+'i. imag: '+imag( q )+'. expected: '+cisim[i]+'. delta: '+delta+'. tol: '+tol+'.' ); - } + t.strictEqual( isAlmostSameValue( real( q ), cisre[ i ], 0 ), true, 'returns expected value' ); + t.strictEqual( isAlmostSameValue( imag( q ), cisim[ i ], 0 ), true, 'returns expected value' ); } t.end(); }); tape( 'the function computes cis(z) for complex z', opts, function test( t ) { - var delta; var cisre; var cisim; - var tol; var re; var im; var i; @@ -126,21 +109,8 @@ tape( 'the function computes cis(z) for complex z', opts, function test( t ) { z = new Complex128( re[ i ], im[ i ] ); q = ccis( z ); - if ( real( q ) === cisre[ i ] ) { - t.strictEqual( real( q ), cisre[ i ], 'returns expected real component' ); - } else { - // NOTE: the results may differ slightly from the reference and JavaScript implementations due to compiler optimizations which may be performed resulting in result divergence. For discussion, see https://github.com/stdlib-js/stdlib/pull/2298#discussion_r1624765205 - delta = abs( real( q ) - cisre[ i ] ); - tol = 1.05 * EPS * abs( cisre[ i ] ); - t.ok( delta <= tol, 'within tolerance. z: '+re[i]+'+ '+im[i]+'i. real: '+real( q )+'. expected: '+cisre[i]+'. delta: '+delta+'. tol: '+tol+'.' ); - } - if ( imag( q ) === cisim[ i ] ) { - t.strictEqual( imag( q ), cisim[ i ], 'returns expected imaginary component' ); - } else { - delta = abs( imag( q ) - cisim[ i ] ); - tol = EPS * abs( cisim[ i ] ); - t.ok( delta <= tol, 'within tolerance. z: '+re[i]+'+ '+im[i]+'i. imag: '+imag( q )+'. expected: '+cisim[i]+'. delta: '+delta+'. tol: '+tol+'.' ); - } + t.strictEqual( isAlmostSameValue( real( q ), cisre[ i ], 0 ), true, 'returns expected value' ); + t.strictEqual( isAlmostSameValue( imag( q ), cisim[ i ], 0 ), true, 'returns expected value' ); } t.end(); });