Skip to content

Commit da465f5

Browse files
committed
test: add tests to achieve full coverage in cinv and cinvf
--- 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 ---
1 parent 97684e4 commit da465f5

File tree

2 files changed

+48
-0
lines changed
  • lib/node_modules/@stdlib/math/base/special

2 files changed

+48
-0
lines changed

lib/node_modules/@stdlib/math/base/special/cinv/test/test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
// MODULES //
2424

2525
var tape = require( 'tape' );
26+
var isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;
2627
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2728
var abs = require( '@stdlib/math/base/special/abs' );
2829
var EPS = require( '@stdlib/constants/float64/eps' );
@@ -426,6 +427,29 @@ tape( 'the function may overflow', function test( t ) {
426427
t.end();
427428
});
428429

430+
tape( 'the function handles very large values (near FLOAT64_BIGGEST)', function test( t ) {
431+
var v;
432+
433+
// Test values that trigger the LARGE_THRESHOLD scaling (FLOAT64_BIGGEST * 0.5)
434+
v = cinv( new Complex128( 1.0e308, 1.0e308 ) );
435+
t.strictEqual( isNumber( real( v ) ), true, 'returns expected value' );
436+
t.strictEqual( isNumber( imag( v ) ), true, 'returns expected value' );
437+
438+
v = cinv( new Complex128( -1.0e308, 1.0e308 ) );
439+
t.strictEqual( isNumber( real( v ) ), true, 'returns expected value' );
440+
t.strictEqual( isNumber( imag( v ) ), true, 'returns expected value' );
441+
442+
v = cinv( new Complex128( 1.0e308, -1.0e308 ) );
443+
t.strictEqual( isNumber( real( v ) ), true, 'returns expected value' );
444+
t.strictEqual( isNumber( imag( v ) ), true, 'returns expected value' );
445+
446+
v = cinv( new Complex128( 8.0e307, 0.0 ) );
447+
t.strictEqual( isNumber( real( v ) ), true, 'returns expected value' );
448+
t.strictEqual( isNumber( imag( v ) ), true, 'returns expected value' );
449+
450+
t.end();
451+
});
452+
429453
tape( 'if a real or imaginary component is `NaN`, all components are `NaN`', function test( t ) {
430454
var v;
431455

lib/node_modules/@stdlib/math/base/special/cinvf/test/test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
// MODULES //
2424

2525
var tape = require( 'tape' );
26+
var isNumber = require( '@stdlib/assert/is-number' ).isPrimitive;
2627
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
2728
var absf = require( '@stdlib/math/base/special/absf' );
2829
var EPS = require( '@stdlib/constants/float32/eps' );
@@ -427,6 +428,29 @@ tape( 'the function may overflow', function test( t ) {
427428
t.end();
428429
});
429430

431+
tape( 'the function handles very large values (near FLOAT32_BIGGEST)', function test( t ) {
432+
var v;
433+
434+
// Test values that trigger the LARGE_THRESHOLD scaling (FLOAT32_BIGGEST * 0.5)
435+
v = cinvf( new Complex64( 3.0e38, 3.0e38 ) );
436+
t.strictEqual( isNumber( realf( v ) ), true, 'returns expected value' );
437+
t.strictEqual( isNumber( imagf( v ) ), true, 'returns expected value' );
438+
439+
v = cinvf( new Complex64( -3.0e38, 3.0e38 ) );
440+
t.strictEqual( isNumber( realf( v ) ), true, 'returns expected value' );
441+
t.strictEqual( isNumber( imagf( v ) ), true, 'returns expected value' );
442+
443+
v = cinvf( new Complex64( 3.0e38, -3.0e38 ) );
444+
t.strictEqual( isNumber( realf( v ) ), true, 'returns expected value' );
445+
t.strictEqual( isNumber( imagf( v ) ), true, 'returns expected value' );
446+
447+
v = cinvf( new Complex64( 2.0e38, 0.0 ) );
448+
t.strictEqual( isNumber( realf( v ) ), true, 'returns expected value' );
449+
t.strictEqual( isNumber( imagf( v ) ), true, 'returns expected value' );
450+
451+
t.end();
452+
});
453+
430454
tape( 'if a real or imaginary component is `NaN`, all components are `NaN`', function test( t ) {
431455
var v;
432456

0 commit comments

Comments
 (0)