Skip to content

Commit f9aff17

Browse files
committed
test: add tests
--- 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 ---
1 parent 05c699b commit f9aff17

File tree

4 files changed

+900
-4
lines changed

4 files changed

+900
-4
lines changed

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

Lines changed: 209 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,20 @@
2121
// MODULES //
2222

2323
var tape = require( 'tape' );
24+
var Float64Results = require( '@stdlib/stats/base/ztest/one-sample/results/float64' );
25+
var isnan = require( '@stdlib/math/base/assert/is-nan' );
26+
var dfill = require( '@stdlib/blas/ext/base/dfill' ).ndarray;
27+
var normalFactory = require( '@stdlib/random/array/normal' ).factory;
2428
var dztest = require( './../lib/dztest.js' );
2529

2630

31+
// VARIABLES //
32+
33+
var normal = normalFactory({
34+
'seed': 12345
35+
});
36+
37+
2738
// TESTS //
2839

2940
tape( 'main export is a function', function test( t ) {
@@ -32,4 +43,201 @@ tape( 'main export is a function', function test( t ) {
3243
t.end();
3344
});
3445

35-
// FIXME: add tests
46+
tape( 'the function performs a one-sample Z-test over a strided array (alternative=two-sided)', function test( t ) {
47+
var results;
48+
var out;
49+
var x;
50+
51+
results = new Float64Results();
52+
53+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
54+
x = normal( 10000, 0.0, 1.0, {
55+
'dtype': 'float64'
56+
});
57+
58+
out = dztest( x.length, 'two-sided', 0.1, 0.0, 1.0, x, 1, results );
59+
t.strictEqual( out, results, 'returns expected value' );
60+
t.strictEqual( out.rejected, false, 'returns expected value' );
61+
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
62+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
63+
64+
out = dztest( x.length, 'two-sided', 0.1, 100.0, 1.0, x, 1, results );
65+
t.strictEqual( out, results, 'returns expected value' );
66+
t.strictEqual( out.rejected, true, 'returns expected value' );
67+
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
68+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
69+
70+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
71+
x = normal( 10000, 100.0, 1.0, {
72+
'dtype': 'float64'
73+
});
74+
75+
out = dztest( x.length, 'two-sided', 0.1, 0.0, 1.0, x, 1, results );
76+
t.strictEqual( out, results, 'returns expected value' );
77+
t.strictEqual( out.rejected, true, 'returns expected value' );
78+
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
79+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
80+
81+
t.end();
82+
});
83+
84+
tape( 'the function performs a one-sample Z-test over a strided array (alternative=greater)', function test( t ) {
85+
var results;
86+
var out;
87+
var x;
88+
89+
results = new Float64Results();
90+
91+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
92+
x = normal( 10000, 0.0, 1.0, {
93+
'dtype': 'float64'
94+
});
95+
96+
out = dztest( x.length, 'greater', 0.1, 0.0, 1.0, x, 1, results );
97+
t.strictEqual( out, results, 'returns expected value' );
98+
t.strictEqual( out.rejected, false, 'returns expected value' );
99+
t.strictEqual( out.alternative, 'greater', 'returns expected value' );
100+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
101+
102+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
103+
x = normal( 10000, 100.0, 1.0, {
104+
'dtype': 'float64'
105+
});
106+
107+
out = dztest( x.length, 'greater', 0.1, 0.0, 1.0, x, 1, results );
108+
t.strictEqual( out, results, 'returns expected value' );
109+
t.strictEqual( out.rejected, true, 'returns expected value' );
110+
t.strictEqual( out.alternative, 'greater', 'returns expected value' );
111+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
112+
113+
t.end();
114+
});
115+
116+
tape( 'the function performs a one-sample Z-test over a strided array (alternative=less)', function test( t ) {
117+
var results;
118+
var out;
119+
var x;
120+
121+
results = new Float64Results();
122+
123+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
124+
x = normal( 10000, 0.0, 1.0, {
125+
'dtype': 'float64'
126+
});
127+
128+
out = dztest( x.length, 'less', 0.1, 0.0, 1.0, x, 1, results );
129+
t.strictEqual( out, results, 'returns expected value' );
130+
t.strictEqual( out.rejected, false, 'returns expected value' );
131+
t.strictEqual( out.alternative, 'less', 'returns expected value' );
132+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
133+
134+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
135+
x = normal( 10000, -100.0, 1.0, {
136+
'dtype': 'float64'
137+
});
138+
139+
out = dztest( x.length, 'less', 0.1, 0.0, 1.0, x, 1, results );
140+
t.strictEqual( out, results, 'returns expected value' );
141+
t.strictEqual( out.rejected, true, 'returns expected value' );
142+
t.strictEqual( out.alternative, 'less', 'returns expected value' );
143+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
144+
145+
t.end();
146+
});
147+
148+
tape( 'if provided an `N` parameter less than or equal to `0`, the function returns `NaN` results', function test( t ) {
149+
var results;
150+
var out;
151+
var x;
152+
153+
results = new Float64Results();
154+
x = normal( 10, 0.0, 1.0, {
155+
'dtype': 'float64'
156+
});
157+
158+
out = dztest( 0, 'two-sided', 0.1, 0.0, 1.0, x, 1, results );
159+
t.strictEqual( out, results, 'returns expected value' );
160+
t.strictEqual( out.rejected, false, 'returns expected value' );
161+
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
162+
t.strictEqual( isnan( out.statistic ), true, 'returns expected value' );
163+
164+
out = dztest( -1, 'two-sided', 0.1, 0.0, 1.0, x, 1, results );
165+
t.strictEqual( out, results, 'returns expected value' );
166+
t.strictEqual( out.rejected, false, 'returns expected value' );
167+
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
168+
t.strictEqual( isnan( out.statistic ), true, 'returns expected value' );
169+
170+
t.end();
171+
});
172+
173+
tape( 'the function supports a stride parameter', function test( t ) {
174+
var results;
175+
var out;
176+
var x;
177+
var N;
178+
179+
N = 10000;
180+
results = new Float64Results();
181+
182+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
183+
x = normal( N*2, 0.0, 1.0, {
184+
'dtype': 'float64'
185+
});
186+
dfill( N, NaN, x, 2, 1 );
187+
188+
out = dztest( N, 'two-sided', 0.1, 0.0, 1.0, x, 2, results );
189+
t.strictEqual( out, results, 'returns expected value' );
190+
t.strictEqual( out.rejected, false, 'returns expected value' );
191+
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
192+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
193+
194+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
195+
x = normal( N*2, 100.0, 1.0, {
196+
'dtype': 'float64'
197+
});
198+
dfill( N, NaN, x, 2, 1 );
199+
200+
out = dztest( N, 'two-sided', 0.1, 0.0, 1.0, x, 2, results );
201+
t.strictEqual( out, results, 'returns expected value' );
202+
t.strictEqual( out.rejected, true, 'returns expected value' );
203+
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
204+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
205+
206+
t.end();
207+
});
208+
209+
tape( 'the function supports a negative stride parameter', function test( t ) {
210+
var results;
211+
var out;
212+
var x;
213+
var N;
214+
215+
N = 10000;
216+
results = new Float64Results();
217+
218+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
219+
x = normal( N*2, 0.0, 1.0, {
220+
'dtype': 'float64'
221+
});
222+
dfill( N, NaN, x, 2, 1 );
223+
224+
out = dztest( N, 'two-sided', 0.1, 0.0, 1.0, x, -2, results );
225+
t.strictEqual( out, results, 'returns expected value' );
226+
t.strictEqual( out.rejected, false, 'returns expected value' );
227+
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
228+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
229+
230+
// Generate an array with a sufficiently large sample size to effectively guarantee expected results:
231+
x = normal( N*2, 100.0, 1.0, {
232+
'dtype': 'float64'
233+
});
234+
dfill( N, NaN, x, 2, 1 );
235+
236+
out = dztest( N, 'two-sided', 0.1, 0.0, 1.0, x, -2, results );
237+
t.strictEqual( out, results, 'returns expected value' );
238+
t.strictEqual( out.rejected, true, 'returns expected value' );
239+
t.strictEqual( out.alternative, 'two-sided', 'returns expected value' );
240+
t.strictEqual( isnan( out.statistic ), false, 'returns expected value' );
241+
242+
t.end();
243+
});

0 commit comments

Comments
 (0)