20
20
21
21
// MODULES //
22
22
23
+ var resolveStr = require ( '@stdlib/stats/base/ztest/alternative-resolve-str' ) ;
23
24
var isnanf = require ( '@stdlib/math/base/assert/is-nanf' ) ;
24
25
var quantile = require ( '@stdlib/stats/base/dists/normal/quantile' ) . factory ;
25
26
var cdf = require ( '@stdlib/stats/base/dists/normal/cdf' ) . factory ;
@@ -47,7 +48,7 @@ var WORKSPACE = new Float32Array( 2 );
47
48
* Computes a one-sample Z-test for a single-precision floating-point strided array using alternative indexing semantics.
48
49
*
49
50
* @param {PositiveInteger } N - number of indexed elements
50
- * @param {string } alternative - alternative hypothesis
51
+ * @param {(integer| string) } alternative - alternative hypothesis
51
52
* @param {number } alpha - significance level
52
53
* @param {number } mu - mean under the null hypothesis
53
54
* @param {PositiveNumber } sigma - known standard deviation
@@ -75,8 +76,10 @@ function sztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
75
76
var stderr ;
76
77
var xmean ;
77
78
var stat ;
79
+ var alt ;
78
80
var q ;
79
81
82
+ alt = resolveStr ( alternative ) ;
80
83
if (
81
84
N <= 0 ||
82
85
isnanf ( alpha ) ||
@@ -89,7 +92,7 @@ function sztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
89
92
WORKSPACE [ 0 ] = NaN ;
90
93
WORKSPACE [ 1 ] = NaN ;
91
94
out . rejected = false ;
92
- out . alternative = alternative ;
95
+ out . alternative = alt ;
93
96
out . alpha = NaN ;
94
97
out . pValue = NaN ;
95
98
out . statistic = NaN ;
@@ -113,12 +116,12 @@ function sztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
113
116
stat = ( xmean - mu ) / stderr ;
114
117
115
118
// Compute the p-value and confidence interval...
116
- if ( alternative === 'less' ) {
119
+ if ( alt === 'less' ) {
117
120
pValue = normalCDF ( stat ) ;
118
121
q = normalQuantile ( 1.0 - alpha ) ;
119
122
WORKSPACE [ 0 ] = NINF ;
120
123
WORKSPACE [ 1 ] = mu + ( ( stat + q ) * stderr ) ;
121
- } else if ( alternative === 'greater' ) {
124
+ } else if ( alt === 'greater' ) {
122
125
pValue = 1.0 - normalCDF ( stat ) ;
123
126
q = normalQuantile ( 1.0 - alpha ) ;
124
127
WORKSPACE [ 0 ] = mu + ( ( stat - q ) * stderr ) ;
@@ -131,7 +134,7 @@ function sztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
131
134
}
132
135
// Return test results:
133
136
out . rejected = ( pValue <= alpha ) ;
134
- out . alternative = alternative ;
137
+ out . alternative = alt ;
135
138
out . alpha = alpha ;
136
139
out . pValue = f32 ( pValue ) ;
137
140
out . statistic = f32 ( stat ) ;
0 commit comments