20
20
21
21
// MODULES //
22
22
23
+ var resolveStr = require ( '@stdlib/stats/base/ztest/alternative-resolve-str' ) ;
23
24
var isnan = require ( '@stdlib/math/base/assert/is-nan' ) ;
24
25
var quantile = require ( '@stdlib/stats/base/dists/normal/quantile' ) . factory ;
25
26
var cdf = require ( '@stdlib/stats/base/dists/normal/cdf' ) . factory ;
@@ -46,7 +47,7 @@ var WORKSPACE = new Float64Array( 2 );
46
47
* Computes a one-sample Z-test for a strided array using alternative indexing semantics.
47
48
*
48
49
* @param {PositiveInteger } N - number of indexed elements
49
- * @param {string } alternative - alternative hypothesis
50
+ * @param {(integer| string) } alternative - alternative hypothesis
50
51
* @param {number } alpha - significance level
51
52
* @param {number } mu - mean under the null hypothesis
52
53
* @param {PositiveNumber } sigma - known standard deviation
@@ -73,8 +74,10 @@ function ztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
73
74
var stderr ;
74
75
var xmean ;
75
76
var stat ;
77
+ var alt ;
76
78
var q ;
77
79
80
+ alt = resolveStr ( alternative ) ;
78
81
if (
79
82
N <= 0 ||
80
83
isnan ( alpha ) ||
@@ -87,7 +90,7 @@ function ztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
87
90
WORKSPACE [ 0 ] = NaN ;
88
91
WORKSPACE [ 1 ] = NaN ;
89
92
out . rejected = false ;
90
- out . alternative = alternative ;
93
+ out . alternative = alt ;
91
94
out . alpha = NaN ;
92
95
out . pValue = NaN ;
93
96
out . statistic = NaN ;
@@ -106,12 +109,12 @@ function ztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
106
109
stat = ( xmean - mu ) / stderr ;
107
110
108
111
// Compute the p-value and confidence interval...
109
- if ( alternative === 'less' ) {
112
+ if ( alt === 'less' ) {
110
113
pValue = normalCDF ( stat ) ;
111
114
q = normalQuantile ( 1.0 - alpha ) ;
112
115
WORKSPACE [ 0 ] = NINF ;
113
116
WORKSPACE [ 1 ] = mu + ( ( stat + q ) * stderr ) ;
114
- } else if ( alternative === 'greater' ) {
117
+ } else if ( alt === 'greater' ) {
115
118
pValue = 1.0 - normalCDF ( stat ) ;
116
119
q = normalQuantile ( 1.0 - alpha ) ;
117
120
WORKSPACE [ 0 ] = mu + ( ( stat - q ) * stderr ) ;
@@ -124,7 +127,7 @@ function ztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
124
127
}
125
128
// Return test results:
126
129
out . rejected = ( pValue <= alpha ) ;
127
- out . alternative = alternative ;
130
+ out . alternative = alt ;
128
131
out . alpha = alpha ;
129
132
out . pValue = pValue ;
130
133
out . statistic = stat ;
0 commit comments