From 9f9be4cff75c82f05de8610a8bf50a227ad6cfc1 Mon Sep 17 00:00:00 2001 From: nirmaljb Date: Fri, 10 Apr 2026 10:20:55 +0530 Subject: [PATCH 1/2] test: adjust tolerance to account for compiler optimization --- 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 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/hyp2f1/test/test.native.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.native.js index eff8f30c8372..2996f91b04f0 100644 --- a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.native.js @@ -167,7 +167,8 @@ tape( 'the function correctly evaluates the hypergeometric function', opts, func t.strictEqual( v, PINF, 'returns expected value' ); continue; } - t.strictEqual( isAlmostSameValue( v, expected[ i ], 1 ), true, 'returns expected value' ); + // NOTE: the tolerance here is larger than for the JavaScript implementation 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 + t.strictEqual( isAlmostSameValue( v, expected[ i ], 2 ), true, 'returns expected value' ); } t.end(); }); @@ -193,7 +194,8 @@ tape( 'the function correctly evaluates the hypergeometric function', opts, func t.strictEqual( v, PINF, 'returns expected value' ); continue; } - t.strictEqual( isAlmostSameValue( v, expected[ i ], 7 ), true, 'returns expected value' ); + // NOTE: the tolerance here is larger than for the JavaScript implementation 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 + t.strictEqual( isAlmostSameValue( v, expected[ i ], 27 ), true, 'returns expected value' ); } t.end(); }); @@ -219,7 +221,8 @@ tape( 'the function correctly evaluates the hypergeometric function', opts, func t.strictEqual( v, PINF, 'returns expected value' ); continue; } - t.strictEqual( isAlmostSameValue( v, expected[ i ], 18 ), true, 'returns expected value' ); + // NOTE: the tolerance here is larger than for the JavaScript implementation 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 + t.strictEqual( isAlmostSameValue( v, expected[ i ], 45 ), true, 'returns expected value' ); } t.end(); }); @@ -245,7 +248,8 @@ tape( 'the function correctly evaluates the hypergeometric function', opts, func t.strictEqual( v, PINF, 'returns expected value' ); continue; } - t.strictEqual( isAlmostSameValue( v, expected[ i ], 33 ), true, 'returns expected value' ); + // NOTE: the tolerance here is larger than for the JavaScript implementation 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 + t.strictEqual( isAlmostSameValue( v, expected[ i ], 100 ), true, 'returns expected value' ); } t.end(); }); @@ -267,7 +271,9 @@ tape( 'the function correctly evaluates the hypergeometric function', opts, func for ( i = 0; i < x.length; i++ ) { v = hyp2f1( a[ i ], b[ i ], c[ i ], x[ i ] ); - t.strictEqual( isAlmostSameValue( v, expected[ i ], 294333 ), true, 'returns expected value' ); + + // NOTE: the tolerance here is larger than for the JavaScript implementation 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 + t.strictEqual( isAlmostSameValue( v, expected[ i ], 391554 ), true, 'returns expected value' ); } t.end(); }); From b16d66d9ede6fa8fe3353025b3666f1b79390b09 Mon Sep 17 00:00:00 2001 From: nirmaljb Date: Fri, 10 Apr 2026 11:01:53 +0530 Subject: [PATCH 2/2] refactor: change to is-nan from is-nanf --- 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 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 --- --- .../@stdlib/math/base/special/hyp2f1/test/test.js | 10 +++++----- .../math/base/special/hyp2f1/test/test.native.js | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.js b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.js index 9265dc8bcf7a..4bf5b1385ba1 100644 --- a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.js @@ -21,7 +21,7 @@ // MODULES // var tape = require( 'tape' ); -var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); var PINF = require( '@stdlib/constants/float64/pinf' ); var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var hyp2f1 = require( './../lib' ); @@ -64,16 +64,16 @@ tape( 'the function returns `NaN` if provided `NaN`', function test( t ) { var v; v = hyp2f1( NaN, 3.0, 2.0, 0.5 ); - t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = hyp2f1( 0.0, NaN, 2.0, 0.5 ); - t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = hyp2f1( 0.0, 3.0, NaN, 0.5 ); - t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = hyp2f1( 0.0, 3.0, 2.0, NaN ); - t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); t.end(); }); diff --git a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.native.js index 2996f91b04f0..dffdec676e10 100644 --- a/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.native.js +++ b/lib/node_modules/@stdlib/math/base/special/hyp2f1/test/test.native.js @@ -22,7 +22,7 @@ var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); -var isnanf = require( '@stdlib/math/base/assert/is-nanf' ); +var isnan = require( '@stdlib/math/base/assert/is-nan' ); var PINF = require( '@stdlib/constants/float64/pinf' ); var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var tryRequire = require( '@stdlib/utils/try-require' ); @@ -73,16 +73,16 @@ tape( 'the function returns `NaN` if provided `NaN`', opts, function test( t ) { var v; v = hyp2f1( NaN, 3.0, 2.0, 0.5 ); - t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = hyp2f1( 0.0, NaN, 2.0, 0.5 ); - t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = hyp2f1( 0.0, 3.0, NaN, 0.5 ); - t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); v = hyp2f1( 0.0, 3.0, 2.0, NaN ); - t.strictEqual( isnanf( v ), true, 'returns expected value' ); + t.strictEqual( isnan( v ), true, 'returns expected value' ); t.end(); });