Skip to content

Commit 55a8f78

Browse files
committed
test: add accessor array 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 fd036a7 commit 55a8f78

File tree

2 files changed

+318
-4
lines changed

2 files changed

+318
-4
lines changed

lib/node_modules/@stdlib/stats/base/stdevpn/test/test.ndarray.js

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

2323
var tape = require( 'tape' );
24-
var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );
2524
var sqrt = require( '@stdlib/math/base/special/sqrt' );
2625
var isnan = require( '@stdlib/math/base/assert/is-nan' );
26+
var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );
2727
var stdevpn = require( './../lib/ndarray.js' );
2828

2929

@@ -44,6 +44,25 @@ tape( 'the function calculates the population standard deviation of a strided ar
4444
var x;
4545
var v;
4646

47+
x = [ 1.0, -2.0, -4.0, 5.0, 0.0, 3.0 ];
48+
v = stdevpn( x.length, 0, x, 1, 0 );
49+
t.strictEqual( v, sqrt( 53.5/x.length ), 'returns expected value' );
50+
51+
x = [ -4.0, -4.0 ];
52+
v = stdevpn( x.length, 0, x, 1, 0 );
53+
t.strictEqual( v, 0.0, 'returns expected value' );
54+
55+
x = [ NaN, 4.0 ];
56+
v = stdevpn( x.length, 0, x, 1, 0 );
57+
t.strictEqual( isnan( v ), true, 'returns expected value' );
58+
59+
t.end();
60+
});
61+
62+
tape( 'the function calculates the population standard deviation of a strided array (accessors)', function test( t ) {
63+
var x;
64+
var v;
65+
4766
x = [ 1.0, -2.0, -4.0, 5.0, 0.0, 3.0 ];
4867
v = stdevpn( x.length, 0, toAccessorArray( x ), 1, 0 );
4968
t.strictEqual( v, sqrt( 53.5/x.length ), 'returns expected value' );
@@ -63,6 +82,25 @@ tape( 'the function calculates the sample standard deviation of a strided array'
6382
var x;
6483
var v;
6584

85+
x = [ 1.0, -2.0, -4.0, 5.0, 0.0, 3.0 ];
86+
v = stdevpn( x.length, 1, x, 1, 0 );
87+
t.strictEqual( v, sqrt( 53.5/(x.length-1) ), 'returns expected value' );
88+
89+
x = [ -4.0, -4.0 ];
90+
v = stdevpn( x.length, 1, x, 1, 0 );
91+
t.strictEqual( v, 0.0, 'returns expected value' );
92+
93+
x = [ NaN, 4.0 ];
94+
v = stdevpn( x.length, 1, x, 1, 0 );
95+
t.strictEqual( isnan( v ), true, 'returns expected value' );
96+
97+
t.end();
98+
});
99+
100+
tape( 'the function calculates the sample standard deviation of a strided array (accessors)', function test( t ) {
101+
var x;
102+
var v;
103+
66104
x = [ 1.0, -2.0, -4.0, 5.0, 0.0, 3.0 ];
67105
v = stdevpn( x.length, 1, toAccessorArray( x ), 1, 0 );
68106
t.strictEqual( v, sqrt( 53.5/(x.length-1) ), 'returns expected value' );
@@ -84,6 +122,21 @@ tape( 'if provided an `N` parameter less than or equal to `0`, the function retu
84122

85123
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
86124

125+
v = stdevpn( 0, 1, x, 1, 0 );
126+
t.strictEqual( isnan( v ), true, 'returns expected value' );
127+
128+
v = stdevpn( -1, 1, x, 1, 0 );
129+
t.strictEqual( isnan( v ), true, 'returns expected value' );
130+
131+
t.end();
132+
});
133+
134+
tape( 'if provided an `N` parameter less than or equal to `0`, the function returns `NaN` (accessors)', function test( t ) {
135+
var x;
136+
var v;
137+
138+
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
139+
87140
v = stdevpn( 0, 1, toAccessorArray( x ), 1, 0 );
88141
t.strictEqual( isnan( v ), true, 'returns expected value' );
89142

@@ -99,6 +152,18 @@ tape( 'if provided an `N` parameter equal to `1`, the function returns a populat
99152

100153
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
101154

155+
v = stdevpn( 1, 0, x, 1, 0 );
156+
t.strictEqual( v, 0.0, 'returns expected value' );
157+
158+
t.end();
159+
});
160+
161+
tape( 'if provided an `N` parameter equal to `1`, the function returns a population standard deviation of `0` (accessors)', function test( t ) {
162+
var x;
163+
var v;
164+
165+
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
166+
102167
v = stdevpn( 1, 0, toAccessorArray( x ), 1, 0 );
103168
t.strictEqual( v, 0.0, 'returns expected value' );
104169

@@ -111,6 +176,21 @@ tape( 'if provided a `correction` parameter yielding `N-correction` less than or
111176

112177
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
113178

179+
v = stdevpn( x.length, x.length, x, 1, 0 );
180+
t.strictEqual( isnan( v ), true, 'returns expected value' );
181+
182+
v = stdevpn( x.length, x.length+1, x, 1, 0 );
183+
t.strictEqual( isnan( v ), true, 'returns expected value' );
184+
185+
t.end();
186+
});
187+
188+
tape( 'if provided a `correction` parameter yielding `N-correction` less than or equal to `0`, the function returns `NaN` (accessors)', function test( t ) {
189+
var x;
190+
var v;
191+
192+
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
193+
114194
v = stdevpn( x.length, x.length, toAccessorArray( x ), 1, 0 );
115195
t.strictEqual( isnan( v ), true, 'returns expected value' );
116196

@@ -135,6 +215,27 @@ tape( 'the function supports a `stride` parameter', function test( t ) {
135215
2.0
136216
];
137217

218+
v = stdevpn( 4, 1, x, 2, 0 );
219+
220+
t.strictEqual( v, 2.5, 'returns expected value' );
221+
t.end();
222+
});
223+
224+
tape( 'the function supports a `stride` parameter (accessors)', function test( t ) {
225+
var x;
226+
var v;
227+
228+
x = [
229+
1.0, // 0
230+
2.0,
231+
2.0, // 1
232+
-7.0,
233+
-2.0, // 2
234+
3.0,
235+
4.0, // 3
236+
2.0
237+
];
238+
138239
v = stdevpn( 4, 1, toAccessorArray( x ), 2, 0 );
139240

140241
t.strictEqual( v, 2.5, 'returns expected value' );
@@ -156,6 +257,27 @@ tape( 'the function supports a negative `stride` parameter', function test( t )
156257
2.0
157258
];
158259

260+
v = stdevpn( 4, 1, x, -2, 6 );
261+
262+
t.strictEqual( v, 2.5, 'returns expected value' );
263+
t.end();
264+
});
265+
266+
tape( 'the function supports a negative `stride` parameter (accessors)', function test( t ) {
267+
var x;
268+
var v;
269+
270+
x = [
271+
1.0, // 3
272+
2.0,
273+
2.0, // 2
274+
-7.0,
275+
-2.0, // 1
276+
3.0,
277+
4.0, // 0
278+
2.0
279+
];
280+
159281
v = stdevpn( 4, 1, toAccessorArray( x ), -2, 6 );
160282

161283
t.strictEqual( v, 2.5, 'returns expected value' );
@@ -168,6 +290,18 @@ tape( 'if provided a `stride` parameter equal to `0`, the function returns `0`',
168290

169291
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
170292

293+
v = stdevpn( x.length, 1, x, 0, 0 );
294+
t.strictEqual( v, 0.0, 'returns expected value' );
295+
296+
t.end();
297+
});
298+
299+
tape( 'if provided a `stride` parameter equal to `0`, the function returns `0` (accessors)', function test( t ) {
300+
var x;
301+
var v;
302+
303+
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
304+
171305
v = stdevpn( x.length, 1, toAccessorArray( x ), 0, 0 );
172306
t.strictEqual( v, 0.0, 'returns expected value' );
173307

@@ -189,6 +323,27 @@ tape( 'the function supports an `offset` parameter', function test( t ) {
189323
4.0 // 3
190324
];
191325

326+
v = stdevpn( 4, 1, x, 2, 1 );
327+
t.strictEqual( v, 2.5, 'returns expected value' );
328+
329+
t.end();
330+
});
331+
332+
tape( 'the function supports an `offset` parameter (accessors)', function test( t ) {
333+
var x;
334+
var v;
335+
336+
x = [
337+
2.0,
338+
1.0, // 0
339+
2.0,
340+
-2.0, // 1
341+
-2.0,
342+
2.0, // 2
343+
3.0,
344+
4.0 // 3
345+
];
346+
192347
v = stdevpn( 4, 1, toAccessorArray( x ), 2, 1 );
193348
t.strictEqual( v, 2.5, 'returns expected value' );
194349

0 commit comments

Comments
 (0)