Skip to content

Commit 2ab38e1

Browse files
docs: improve tests for dmidrange
--- 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: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent 725066b commit 2ab38e1

1 file changed

Lines changed: 53 additions & 42 deletions

File tree

  • lib/node_modules/@stdlib/stats/base/ndarray/dmidrange/test

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

Lines changed: 53 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
var tape = require( 'tape' );
2424
var isnan = require( '@stdlib/math/base/assert/is-nan' );
25+
var isPositiveZero = require( '@stdlib/math/base/assert/is-positive-zero' );
2526
var Float64Array = require( '@stdlib/array/float64' );
2627
var ndarray = require( '@stdlib/ndarray/base/ctor' );
2728
var dmidrange = require( './../lib' );
@@ -39,6 +40,7 @@ var dmidrange = require( './../lib' );
3940
* @param {NonNegativeInteger} offset - index offset
4041
* @returns {ndarray} one-dimensional ndarray
4142
*/
43+
4244
function vector( buffer, length, stride, offset ) {
4345
return new ndarray( 'float64', buffer, [ length ], [ stride ], offset, 'row-major' );
4446
}
@@ -57,109 +59,119 @@ tape( 'the function has an arity of 1', function test( t ) {
5759
t.end();
5860
});
5961

60-
tape( 'the function returns NaN when provided an input ndarray containing NaN values', function test( t ) {
62+
tape( 'the function calculates the mid-range of an input ndarray', function test( t ) {
6163
var x;
6264
var v;
6365

64-
x = new Float64Array( [ 1.0, -2.0, NaN, 2.0 ] );
66+
x = new Float64Array( [ 1.0, -2.0, -4.0, 5.0, 0.0, 3.0 ] );
67+
v = dmidrange( [ vector( x, 6, 1, 0 ) ] );
68+
t.strictEqual( v, 0.5, 'returns expected value' );
69+
70+
x = new Float64Array( [ -4.0, -5.0 ] );
71+
v = dmidrange( [ vector( x, 2, 1, 0 ) ] );
72+
t.strictEqual( v, -4.5, 'returns expected value' );
73+
74+
x = new Float64Array( [ -0.0, 0.0, -0.0 ] );
75+
v = dmidrange( [ vector( x, 3, 1, 0 ) ] );
76+
t.strictEqual( isPositiveZero( v ), true, 'returns expected value' );
6577

66-
v = dmidrange( [ vector( x, 4, 1, 0 ) ] );
67-
t.strictEqual( isnan( v ), true, 'returns NaN' );
78+
x = new Float64Array( [ NaN ] );
79+
v = dmidrange( [ vector( x, 1, 1, 0 ) ] );
80+
t.strictEqual( isnan( v ), true, 'returns expected value' );
6881

69-
x = new Float64Array( [ 1.0, -2.0, -4.0, 5.0, NaN, 0.0, 3.0 ] );
70-
v = dmidrange( [ vector( x, 7, 1, 0 ) ] );
71-
t.strictEqual( isnan( v ), true, 'returns NaN' );
72-
x = new Float64Array( [ -4.0, NaN ] );
82+
x = new Float64Array( [ NaN, NaN ] );
7383
v = dmidrange( [ vector( x, 2, 1, 0 ) ] );
74-
t.strictEqual( isnan( v ), true, 'returns NaN' );
84+
t.strictEqual( isnan( v ), true, 'returns expected value' );
85+
7586
t.end();
7687
});
7788

78-
tape( 'when provided an empty input ndarray, the function returns NaN', function test( t ) {
89+
tape( 'when provided an empty input ndarray, the function returns `NaN`', function test( t ) {
7990
var x;
8091
var v;
8192

8293
x = new Float64Array( [] );
8394
v = dmidrange( [ vector( x, 0, 1, 0 ) ] );
84-
t.strictEqual( isnan( v ), true, 'returns NaN' );
85-
t.end();
86-
});
87-
88-
tape( 'when provided an input ndarray containing only NaN values, the function returns NaN', function test( t ) {
89-
var x;
90-
var v;
95+
t.strictEqual( isnan( v ), true, 'returns expected value' );
9196

92-
x = new Float64Array( [ NaN, NaN, NaN ] );
93-
v = dmidrange( [ vector( x, 3, 1, 0 ) ] );
94-
t.strictEqual( isnan( v ), true, 'returns NaN' );
9597
t.end();
9698
});
9799

98-
tape( 'when provided an input ndarray containing a single element, the function returns that element', function test( t ) {
100+
tape( 'when provided an input ndarray having a length equal to `1`, the function returns the first element', function test( t ) {
99101
var x;
100102
var v;
101103

102104
x = new Float64Array( [ 1.0 ] );
103105
v = dmidrange( [ vector( x, 1, 1, 0 ) ] );
104106
t.strictEqual( v, 1.0, 'returns expected value' );
105107

108+
x = new Float64Array( [ NaN ] );
109+
v = dmidrange( [ vector( x, 1, 1, 0 ) ] );
110+
t.strictEqual( isnan( v ), true, 'returns expected value' );
111+
106112
t.end();
107113
});
108114

109-
tape( 'the function supports positive strides', function test( t ) {
115+
tape( 'the function supports a `stride` parameter', function test( t ) {
110116
var x;
111117
var v;
112118

113119
x = new Float64Array([
114-
1.0,
115-
2.0,
120+
1.0, // 0
116121
2.0,
122+
2.0, // 1
117123
-7.0,
118-
-2.0,
124+
-2.0, // 2
119125
3.0,
120-
4.0,
126+
4.0, // 3
121127
2.0,
122128
6.0
123129
]);
124130

125-
v = dmidrange( [ vector( x, 5, 2, 0 ) ] );
126-
t.strictEqual( v, 2.0, 'returns expected value' );
131+
v = dmidrange( [ vector( x, 4, 2, 0 ) ] );
132+
t.strictEqual( v, 1.0, 'returns expected value' );
133+
127134
t.end();
128135
});
129136

130-
tape( 'the function supports negative strides', function test( t ) {
137+
tape( 'the function supports a negative `stride` parameter', function test( t ) {
131138
var x;
132139
var v;
133140

134141
x = new Float64Array([
135-
1.0,
136-
2.0,
142+
1.0, // 3
137143
2.0,
144+
2.0, // 2
138145
-7.0,
139-
-2.0,
146+
-2.0, // 1
140147
3.0,
141-
4.0,
148+
4.0, // 0
142149
2.0,
143150
6.0
144151
]);
145152

146-
v = dmidrange( [ vector( x, 5, -2, 8 ) ] );
147-
t.strictEqual( v, 2.0, 'returns expected value' );
153+
v = dmidrange( [ vector( x, 4, -2, 6 ) ] );
154+
t.strictEqual( v, 1.0, 'returns expected value' );
155+
148156
t.end();
149157
});
150158

151-
tape( 'when provided an input ndarray having a stride equal to 0, the function returns the first indexed element', function test( t ) {
159+
tape( 'if provided a `stride` parameter equal to `0`, the function returns the first element', function test( t ) {
152160
var x;
153161
var v;
154162

155163
x = new Float64Array( [ 1.0, -2.0, -4.0, 5.0, 3.0 ] );
156164
v = dmidrange( [ vector( x, 5, 0, 0 ) ] );
157165
t.strictEqual( v, 1.0, 'returns expected value' );
158166

167+
x = new Float64Array( [ NaN, -2.0, -4.0, 5.0, 3.0 ] );
168+
v = dmidrange( [ vector( x, 5, 0, 0 ) ] );
169+
t.strictEqual( isnan( v ), true, 'returns expected value' );
170+
159171
t.end();
160172
});
161173

162-
tape( 'the function supports view offsets', function test( t ) {
174+
tape( 'the function supports an `offset` parameter', function test( t ) {
163175
var x;
164176
var v;
165177

@@ -171,12 +183,11 @@ tape( 'the function supports view offsets', function test( t ) {
171183
-2.0,
172184
2.0, // 2
173185
3.0,
174-
4.0, // 3
175-
6.0,
176-
6.0 // 4
186+
4.0 // 3
177187
]);
178188

179-
v = dmidrange( [ vector( x, 5, 2, 1 ) ] );
180-
t.strictEqual( v, 2.0, 'returns expected value' );
189+
v = dmidrange( [ vector( x, 4, 2, 1 ) ] );
190+
t.strictEqual( v, 1.0, 'returns expected value' );
191+
181192
t.end();
182193
});

0 commit comments

Comments
 (0)