Skip to content

Commit 6c90ed2

Browse files
committed
refactor: add NaN checks
--- 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: passed - 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: passed - 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 ---
1 parent 77ede72 commit 6c90ed2

File tree

7 files changed

+108
-86
lines changed

7 files changed

+108
-86
lines changed

lib/node_modules/@stdlib/stats/strided/dztest/lib/ndarray.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
// MODULES //
2222

23+
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2324
var quantile = require( '@stdlib/stats/base/dists/normal/quantile' ).factory;
2425
var cdf = require( '@stdlib/stats/base/dists/normal/cdf' ).factory;
2526
var dmean = require( '@stdlib/stats/strided/dmean' ).ndarray;
@@ -75,7 +76,15 @@ function dztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
7576
var stat;
7677
var q;
7778

78-
if ( N <= 0 || sigma <= 0.0 || alpha < 0.0 || alpha > 1.0 ) {
79+
if (
80+
N <= 0 ||
81+
isnan( alpha ) ||
82+
isnan( mu ) ||
83+
isnan( sigma ) ||
84+
sigma <= 0.0 ||
85+
alpha < 0.0 ||
86+
alpha > 1.0
87+
) {
7988
WORKSPACE[ 0 ] = NaN;
8089
WORKSPACE[ 1 ] = NaN;
8190
out.rejected = false;

lib/node_modules/@stdlib/stats/strided/dztest/manifest.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
"@stdlib/napi/argv-strided-float64array",
4848
"@stdlib/blas/base/shared",
4949
"@stdlib/strided/base/stride2offset",
50+
"@stdlib/math/base/assert/is-nan",
5051
"@stdlib/math/base/special/sqrt",
5152
"@stdlib/math/base/special/abs",
5253
"@stdlib/stats/strided/dmean",
@@ -72,6 +73,7 @@
7273
"dependencies": [
7374
"@stdlib/blas/base/shared",
7475
"@stdlib/strided/base/stride2offset",
76+
"@stdlib/math/base/assert/is-nan",
7577
"@stdlib/math/base/special/sqrt",
7678
"@stdlib/math/base/special/abs",
7779
"@stdlib/stats/strided/dmean",
@@ -97,6 +99,7 @@
9799
"dependencies": [
98100
"@stdlib/blas/base/shared",
99101
"@stdlib/strided/base/stride2offset",
102+
"@stdlib/math/base/assert/is-nan",
100103
"@stdlib/math/base/special/sqrt",
101104
"@stdlib/math/base/special/abs",
102105
"@stdlib/stats/strided/dmean",
@@ -122,6 +125,7 @@
122125
"dependencies": [
123126
"@stdlib/blas/base/shared",
124127
"@stdlib/strided/base/stride2offset",
128+
"@stdlib/math/base/assert/is-nan",
125129
"@stdlib/math/base/special/sqrt",
126130
"@stdlib/math/base/special/abs",
127131
"@stdlib/stats/strided/dmean",

lib/node_modules/@stdlib/stats/strided/dztest/src/main.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include "stdlib/blas/base/shared.h"
2323
#include "stdlib/strided/base/stride2offset.h"
2424
#include "stdlib/stats/strided/dmean.h"
25+
#include "stdlib/math/base/assert/is_nan.h"
2526
#include "stdlib/math/base/special/sqrt.h"
2627
#include "stdlib/math/base/special/abs.h"
2728
#include "stdlib/stats/base/dists/normal/cdf.h"
@@ -68,7 +69,15 @@ void API_SUFFIX(stdlib_strided_dztest_ndarray)( const CBLAS_INT N, const enum ST
6869
double *ci;
6970
double q;
7071

71-
if ( N <= 0 || sigma <= 0.0 || alpha < 0.0 || alpha > 1.0 ) {
72+
if (
73+
N <= 0 ||
74+
stdlib_base_is_nan( alpha ) ||
75+
stdlib_base_is_nan( mu ) ||
76+
stdlib_base_is_nan( sigma ) ||
77+
sigma <= 0.0 ||
78+
alpha < 0.0 ||
79+
alpha > 1.0
80+
) {
7281
results->rejected = false;
7382
results->alternative = alternative;
7483

lib/node_modules/@stdlib/stats/strided/dztest/test/test.dztest.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
// MODULES //
2222

2323
var tape = require( 'tape' );
24-
var isFinite = require( '@stdlib/assert/is-finite' ).isPrimitive; // eslint-disable-line stdlib/no-redeclare
2524
var Float64Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );
25+
var isfinite = require( '@stdlib/math/base/assert/is-finite' );
2626
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2727
var dfill = require( '@stdlib/blas/ext/base/dfill' ).ndarray;
2828
var normalFactory = require( '@stdlib/random/array/normal' ).factory;
@@ -64,17 +64,17 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
6464
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
6565
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
6666
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
67-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
68-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
67+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
68+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
6969

7070
out = dztest( x.length, 'two-sided', 0.1, 100.0, 1.0, x, 1, results );
7171
t.strictEqual( out, results, 'returns expected value' );
7272
t.strictEqual( out.rejected, true, 'returns expected value' );
7373
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
7474
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
7575
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
76-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
77-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
76+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
77+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
7878

7979
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
8080
x = normal( 10000, 100.0, 1.0, {
@@ -87,8 +87,8 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
8787
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
8888
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
8989
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
90-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
91-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
90+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
91+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
9292

9393
t.end();
9494
});
@@ -111,7 +111,7 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
111111
t.strictEqual( out.alternative, 'greater', 'returns expected value' );
112112
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
113113
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
114-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
114+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
115115
t.strictEqual( out.ci[ 1 ], PINF, 'returns expected value' );
116116

117117
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
@@ -125,7 +125,7 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
125125
t.strictEqual( out.alternative, 'greater', 'returns expected value' );
126126
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
127127
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
128-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
128+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
129129
t.strictEqual( out.ci[ 1 ], PINF, 'returns expected value' );
130130

131131
t.end();
@@ -150,7 +150,7 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
150150
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
151151
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
152152
t.strictEqual( out.ci[ 0 ], NINF, 'returns expected value' );
153-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
153+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
154154

155155
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
156156
x = normal( 10000, -100.0, 1.0, {
@@ -164,7 +164,7 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
164164
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
165165
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
166166
t.strictEqual( out.ci[ 0 ], NINF, 'returns expected value' );
167-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
167+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
168168

169169
t.end();
170170
});
@@ -217,8 +217,8 @@ tape( 'the function supports a stride parameter', function test( t ) {
217217
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
218218
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
219219
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
220-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
221-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
220+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
221+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
222222

223223
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
224224
x = normal( N*2, 100.0, 1.0, {
@@ -232,8 +232,8 @@ tape( 'the function supports a stride parameter', function test( t ) {
232232
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
233233
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
234234
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
235-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
236-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
235+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
236+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
237237

238238
t.end();
239239
});
@@ -259,8 +259,8 @@ tape( 'the function supports a negative stride parameter', function test( t ) {
259259
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
260260
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
261261
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
262-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
263-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
262+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
263+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
264264

265265
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
266266
x = normal( N*2, 100.0, 1.0, {
@@ -274,8 +274,8 @@ tape( 'the function supports a negative stride parameter', function test( t ) {
274274
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
275275
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
276276
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
277-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
278-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
277+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
278+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
279279

280280
t.end();
281281
});

lib/node_modules/@stdlib/stats/strided/dztest/test/test.dztest.native.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var tape = require( 'tape' );
25-
var isFinite = require( '@stdlib/assert/is-finite' ).isPrimitive; // eslint-disable-line stdlib/no-redeclare
2625
var Float64Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );
26+
var isfinite = require( '@stdlib/math/base/assert/is-finite' );
2727
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2828
var dfill = require( '@stdlib/blas/ext/base/dfill' ).ndarray;
2929
var normalFactory = require( '@stdlib/random/array/normal' ).factory;
@@ -69,17 +69,17 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
6969
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
7070
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
7171
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
72-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
73-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
72+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
73+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
7474

7575
out = dztest( x.length, 'two-sided', 0.1, 100.0, 1.0, x, 1, results );
7676
t.strictEqual( out, results, 'returns expected value' );
7777
t.strictEqual( out.rejected, true, 'returns expected value' );
7878
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
7979
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
8080
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
81-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
82-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
81+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
82+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
8383

8484
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
8585
x = normal( 10000, 100.0, 1.0, {
@@ -92,8 +92,8 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
9292
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
9393
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
9494
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
95-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
96-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
95+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
96+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
9797

9898
t.end();
9999
});
@@ -116,7 +116,7 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
116116
t.strictEqual( out.alternative, 'greater', 'returns expected value' );
117117
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
118118
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
119-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
119+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
120120
t.strictEqual( out.ci[ 1 ], PINF, 'returns expected value' );
121121

122122
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
@@ -130,7 +130,7 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
130130
t.strictEqual( out.alternative, 'greater', 'returns expected value' );
131131
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
132132
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
133-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
133+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
134134
t.strictEqual( out.ci[ 1 ], PINF, 'returns expected value' );
135135

136136
t.end();
@@ -155,7 +155,7 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
155155
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
156156
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
157157
t.strictEqual( out.ci[ 0 ], NINF, 'returns expected value' );
158-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
158+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
159159

160160
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
161161
x = normal( 10000, -100.0, 1.0, {
@@ -169,7 +169,7 @@ tape( 'the function performs a one-sample Z-test over a strided array (alternati
169169
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
170170
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
171171
t.strictEqual( out.ci[ 0 ], NINF, 'returns expected value' );
172-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
172+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
173173

174174
t.end();
175175
});
@@ -222,8 +222,8 @@ tape( 'the function supports a stride parameter', opts, function test( t ) {
222222
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
223223
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
224224
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
225-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
226-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
225+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
226+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
227227

228228
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
229229
x = normal( N*2, 100.0, 1.0, {
@@ -237,8 +237,8 @@ tape( 'the function supports a stride parameter', opts, function test( t ) {
237237
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
238238
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
239239
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
240-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
241-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
240+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
241+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
242242

243243
t.end();
244244
});
@@ -264,8 +264,8 @@ tape( 'the function supports a negative stride parameter', opts, function test(
264264
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
265265
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
266266
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
267-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
268-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
267+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
268+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
269269

270270
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
271271
x = normal( N*2, 100.0, 1.0, {
@@ -279,8 +279,8 @@ tape( 'the function supports a negative stride parameter', opts, function test(
279279
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
280280
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
281281
t.strictEqual( isnan( out.pValue ), false, 'returns expected value' );
282-
t.strictEqual( isFinite( out.ci[ 0 ] ), true, 'returns expected value' );
283-
t.strictEqual( isFinite( out.ci[ 1 ] ), true, 'returns expected value' );
282+
t.strictEqual( isfinite( out.ci[ 0 ] ), true, 'returns expected value' );
283+
t.strictEqual( isfinite( out.ci[ 1 ] ), true, 'returns expected value' );
284284

285285
t.end();
286286
});

0 commit comments

Comments
 (0)