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 double-precision floating-point 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
@@ -74,8 +75,10 @@ function dztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
74
75
var stderr ;
75
76
var xmean ;
76
77
var stat ;
78
+ var alt ;
77
79
var q ;
78
80
81
+ alt = resolveStr ( alternative ) ;
79
82
if (
80
83
N <= 0 ||
81
84
isnan ( alpha ) ||
@@ -88,7 +91,7 @@ function dztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
88
91
WORKSPACE [ 0 ] = NaN ;
89
92
WORKSPACE [ 1 ] = NaN ;
90
93
out . rejected = false ;
91
- out . alternative = alternative ;
94
+ out . alternative = alt ;
92
95
out . alpha = NaN ;
93
96
out . pValue = NaN ;
94
97
out . statistic = NaN ;
@@ -107,12 +110,12 @@ function dztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
107
110
stat = ( xmean - mu ) / stderr ;
108
111
109
112
// Compute the p-value and confidence interval...
110
- if ( alternative === 'less' ) {
113
+ if ( alt === 'less' ) {
111
114
pValue = normalCDF ( stat ) ;
112
115
q = normalQuantile ( 1.0 - alpha ) ;
113
116
WORKSPACE [ 0 ] = NINF ;
114
117
WORKSPACE [ 1 ] = mu + ( ( stat + q ) * stderr ) ;
115
- } else if ( alternative === 'greater' ) {
118
+ } else if ( alt === 'greater' ) {
116
119
pValue = 1.0 - normalCDF ( stat ) ;
117
120
q = normalQuantile ( 1.0 - alpha ) ;
118
121
WORKSPACE [ 0 ] = mu + ( ( stat - q ) * stderr ) ;
@@ -125,7 +128,7 @@ function dztest( N, alternative, alpha, mu, sigma, x, strideX, offsetX, out ) {
125
128
}
126
129
// Return test results:
127
130
out . rejected = ( pValue <= alpha ) ;
128
- out . alternative = alternative ;
131
+ out . alternative = alt ;
129
132
out . alpha = alpha ;
130
133
out . pValue = pValue ;
131
134
out . statistic = stat ;
0 commit comments