Skip to content

Commit a56b554

Browse files
committed
fix: test.native.js
--- 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- type: pre_push_report description: Results of running various checks prior to pushing changes. report: - task: run_javascript_examples status: na - task: run_c_examples status: passed - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: passed - task: run_c_benchmarks status: na - task: run_cpp_benchmarks status: na - task: run_fortran_benchmarks status: na - task: run_javascript_benchmarks status: na - task: run_julia_benchmarks status: na - task: run_python_benchmarks status: na - task: run_r_benchmarks status: na - task: run_javascript_tests status: failed --- --- type: pre_push_report description: Results of running various checks prior to pushing changes. report: - task: run_javascript_examples status: na - task: run_c_examples status: passed - task: run_cpp_examples status: na - task: run_javascript_readme_examples status: passed - task: run_c_benchmarks status: na - task: run_cpp_benchmarks status: na - task: run_fortran_benchmarks status: na - task: run_javascript_benchmarks status: na - task: run_julia_benchmarks status: na - task: run_python_benchmarks status: na - task: run_r_benchmarks status: na - task: run_javascript_tests status: passed ---
1 parent 52afe52 commit a56b554

File tree

3 files changed

+57
-45
lines changed

3 files changed

+57
-45
lines changed

lib/node_modules/@stdlib/stats/base/dists/negative-binomial/mgf/README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,8 +263,6 @@ int main( void ) {
263263
y = stdlib_base_negative_binomial_mgf( t, r, p );
264264
printf( "t: %lf, r: %lf, p: %lf, M_X(t;r,p): %lf\n", t, r, p, y );
265265
}
266-
267-
return 0;
268266
}
269267
```
270268

lib/node_modules/@stdlib/stats/base/dists/negative-binomial/mgf/examples/c/example.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,4 @@ int main( void ) {
3939
y = stdlib_base_negative_binomial_mgf( t, r, p );
4040
printf( "t: %lf, r: %lf, p: %lf, M_X(t;r,p): %lf\n", t, r, p, y );
4141
}
42-
43-
return 0;
4442
}

lib/node_modules/@stdlib/stats/base/dists/negative-binomial/mgf/test/test.native.js

Lines changed: 57 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,12 @@
2323
var resolve = require( 'path' ).resolve;
2424
var tape = require( 'tape' );
2525
var tryRequire = require( '@stdlib/utils/try-require' );
26+
var isNumber = require( '@stdlib/assert/is-number' );
27+
var isnan = require( '@stdlib/math/base/assert/is-nan' );
28+
var randu = require( '@stdlib/random/base/randu' );
29+
var ln = require( '@stdlib/math/base/special/ln' );
30+
var PINF = require( '@stdlib/constants/float64/pinf' );
31+
var NINF = require( '@stdlib/constants/float64/ninf' );
2632

2733

2834
// VARIABLES //
@@ -41,63 +47,73 @@ tape( 'main export is a function', opts, function test( t ) {
4147
t.end();
4248
});
4349

44-
tape( 'the function returns NaN if provided a NaN input for `t`', opts, function test( t ) {
45-
var y = mgf( NaN, 2.0, 0.5 );
46-
t.strictEqual( typeof y, 'number', 'returns a number' );
47-
t.ok( isNaN( y ), 'returns NaN' );
50+
tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) {
51+
var y = mgf( NaN, 10, 0.5 );
52+
t.equal( isnan( y ), true, 'returns NaN' );
53+
y = mgf( 0.0, NaN, 0.5 );
54+
t.equal( isnan( y ), true, 'returns NaN' );
55+
y = mgf( 0.0, 10, NaN );
56+
t.equal( isnan( y ), true, 'returns NaN' );
4857
t.end();
4958
});
5059

51-
tape( 'the function returns NaN if provided a NaN input for `r`', opts, function test( t ) {
52-
var y = mgf( 0.1, NaN, 0.5 );
53-
t.strictEqual( typeof y, 'number', 'returns a number' );
54-
t.ok( isNaN( y ), 'returns NaN' );
55-
t.end();
56-
});
57-
58-
tape( 'the function returns NaN if provided a NaN input for `p`', opts, function test( t ) {
59-
var y = mgf( 0.1, 2.0, NaN );
60-
t.strictEqual( typeof y, 'number', 'returns a number' );
61-
t.ok( isNaN( y ), 'returns NaN' );
62-
t.end();
63-
});
60+
tape( 'if provided a `r` which is not a positive number, the function returns `NaN`', opts, function test( t ) {
61+
var y;
6462

65-
tape( 'the function evaluates the MGF for valid inputs', opts, function test( t ) {
66-
var y = mgf( 0.0, 1.0, 0.9 );
67-
t.strictEqual( y, 1.0, 'returns 1 when t is 0' );
63+
y = mgf( 2.0, -2.0, 0.5 );
64+
t.equal( isnan( y ), true, 'returns NaN' );
6865

69-
y = mgf( 0.05, 20.0, 0.8 );
70-
t.ok( Math.abs( y - 267.839 ) < 1e-3, 'returns ~267.839' );
66+
y = mgf( 2.0, -1.0, 0.5 );
67+
t.equal( isnan( y ), true, 'returns NaN' );
7168

72-
y = mgf( 0.1, 20.0, 0.1 );
73-
t.ok( Math.abs( y - 9.347 ) < 1e-3, 'returns ~9.347' );
69+
y = mgf( 0.0, 0.0, 0.5 );
70+
t.equal( isnan( y ), true, 'returns NaN' );
7471

75-
y = mgf( 0.5, 10.0, 0.4 );
76-
t.ok( Math.abs( y - 42822.023 ) < 1e-3, 'returns ~42822.023' );
72+
y = mgf( 0.0, NINF, 0.5 );
73+
t.equal( isnan( y ), true, 'returns NaN' );
7774

7875
t.end();
7976
});
8077

81-
tape( 'the function returns NaN if `p` is outside the interval [0,1]', opts, function test( t ) {
82-
var y = mgf( 0.1, 2.0, -0.5 );
83-
t.strictEqual( typeof y, 'number', 'returns a number' );
84-
t.ok( isNaN( y ), 'returns NaN' );
78+
tape( 'if provided a success probability `p` outside of `[0,1]`, the function returns `NaN`', opts, function test( t ) {
79+
var y;
80+
81+
y = mgf( 2.0, 20, -1.0 );
82+
t.equal( isnan( y ), true, 'returns NaN' );
8583

86-
y = mgf( 0.1, 2.0, 1.5 );
87-
t.strictEqual( typeof y, 'number', 'returns a number' );
88-
t.ok( isNaN( y ), 'returns NaN' );
84+
y = mgf( 0.0, 20, 1.5 );
85+
t.equal( isnan( y ), true, 'returns NaN' );
86+
87+
y = mgf( 2.0, 20, NINF );
88+
t.equal( isnan( y ), true, 'returns NaN' );
89+
90+
y = mgf( 2.0, 20, PINF );
91+
t.equal( isnan( y ), true, 'returns NaN' );
8992

9093
t.end();
9194
});
9295

93-
tape( 'the function returns NaN if `r` is less than or equal to 0', opts, function test( t ) {
94-
var y = mgf( 0.1, -2.0, 0.5 );
95-
t.strictEqual( typeof y, 'number', 'returns a number' );
96-
t.ok( isNaN( y ), 'returns NaN' );
97-
98-
y = mgf( 0.1, 0.0, 0.5 );
99-
t.strictEqual( typeof y, 'number', 'returns a number' );
100-
t.ok( isNaN( y ), 'returns NaN' );
96+
tape( 'if provided `t >= -ln( p )`, the function returns `NaN`', opts, function test( t ) {
97+
var y = mgf( 0.7, 10.0, 0.5 ); // -ln( p ) = ~0.693
98+
t.equal( isnan( y ), true, 'returns NaN' );
99+
y = mgf( 1.7, 10.0, 0.2 ); // -ln( p ) = ~1.609
100+
t.equal( isnan( y ), true, 'returns NaN' );
101+
t.end();
102+
});
101103

104+
tape( 'the function evaluates the mgf', opts, function test( t ) {
105+
var i;
106+
var r;
107+
var p;
108+
var x;
109+
var y;
110+
111+
for ( i = 0; i < 100; i++ ) {
112+
r = randu() * 20.0;
113+
p = randu();
114+
x = ln( p ) - randu();
115+
y = mgf( x, r, p );
116+
t.strictEqual( !isnan( y ) && isNumber( y ), true, 'returns a number' );
117+
}
102118
t.end();
103119
});

0 commit comments

Comments
 (0)