Skip to content

Commit 545f23a

Browse files
authored
Update test.nanminabs.js
Signed-off-by: Kaushikgtm <[email protected]>
1 parent 8b839c0 commit 545f23a

File tree

1 file changed

+131
-147
lines changed

1 file changed

+131
-147
lines changed

lib/node_modules/@stdlib/stats/base/nanminabs/test/test.nanminabs.js

Lines changed: 131 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -21,167 +21,151 @@
2121
// MODULES //
2222

2323
var tape = require( 'tape' );
24-
var floor = require( '@stdlib/math/base/special/floor' );
2524
var isnan = require( '@stdlib/math/base/assert/is-nan' );
2625
var isPositiveZero = require( '@stdlib/math/base/assert/is-positive-zero' );
2726
var Float64Array = require( '@stdlib/array/float64' );
2827
var nanminabs = require( './../lib/nanminabs.js' );
29-
28+
var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );
3029

3130
// TESTS //
3231

33-
tape( 'main export is a function', function test( t ) {
34-
t.ok( true, __filename );
35-
t.strictEqual( typeof nanminabs, 'function', 'main export is a function' );
32+
tape('main export is a function', function test(t) {
33+
t.ok(true, __filename);
34+
t.strictEqual(typeof nanminabs, 'function', 'main export is a function');
3635
t.end();
37-
});
38-
39-
tape( 'the function has an arity of 3', function test( t ) {
40-
t.strictEqual( nanminabs.length, 3, 'has expected arity' );
36+
});
37+
38+
tape('the function calculates the minimum absolute value of a strided array (with accessor support)', function test(t) {
39+
var x, v;
40+
41+
x = toAccessorArray([1.0, -2.0, -4.0, 5.0, 0.0, 3.0, NaN, NaN]);
42+
v = nanminabs(x.data.length, x, 1, 0);
43+
t.strictEqual(v, 0.0, 'returns expected value');
44+
45+
x = toAccessorArray([-4.0, NaN, -5.0]);
46+
v = nanminabs(x.data.length, x, 1, 0);
47+
t.strictEqual(v, 4.0, 'returns expected value');
48+
49+
x = toAccessorArray([0.0, NaN, -0.0, 0.0]);
50+
v = nanminabs(x.data.length, x, 1, 0);
51+
t.strictEqual(isPositiveZero(v), true, 'returns expected value');
52+
53+
x = toAccessorArray([NaN]);
54+
v = nanminabs(x.data.length, x, 1, 0);
55+
t.strictEqual(isnan(v), true, 'returns expected value');
56+
57+
x = toAccessorArray([NaN, NaN]);
58+
v = nanminabs(x.data.length, x, 1, 0);
59+
t.strictEqual(isnan(v), true, 'returns expected value');
60+
4161
t.end();
42-
});
43-
44-
tape( 'the function calculates the minimum absolute value of a strided array', function test( t ) {
45-
var x;
46-
var v;
47-
48-
x = [ 1.0, -2.0, -4.0, 5.0, 0.0, 3.0, NaN, NaN ];
49-
v = nanminabs( x.length, x, 1 );
50-
t.strictEqual( v, 0.0, 'returns expected value' );
51-
52-
x = [ -4.0, NaN, -5.0 ];
53-
v = nanminabs( x.length, x, 1 );
54-
t.strictEqual( v, 4.0, 'returns expected value' );
55-
56-
x = [ 0.0, NaN, -0.0, 0.0 ];
57-
v = nanminabs( x.length, x, 1 );
58-
t.strictEqual( isPositiveZero( v ), true, 'returns expected value' );
59-
60-
x = [ NaN ];
61-
v = nanminabs( x.length, x, 1 );
62-
t.strictEqual( isnan( v ), true, 'returns expected value' );
63-
64-
x = [ NaN, NaN ];
65-
v = nanminabs( x.length, x, 1 );
66-
t.strictEqual( isnan( v ), true, 'returns expected value' );
67-
62+
});
63+
64+
tape('if provided an `N` parameter less than or equal to `0`, the function returns `NaN`', function test(t) {
65+
var x, v;
66+
67+
x = toAccessorArray([1.0, -2.0, -4.0, 5.0, 3.0]);
68+
69+
v = nanminabs(0, x, 1, 0);
70+
t.strictEqual(isnan(v), true, 'returns expected value');
71+
72+
v = nanminabs(-1, x, 1, 0);
73+
t.strictEqual(isnan(v), true, 'returns expected value');
74+
6875
t.end();
69-
});
70-
71-
tape( 'if provided an `N` parameter less than or equal to `0`, the function returns `NaN`', function test( t ) {
72-
var x;
73-
var v;
74-
75-
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
76-
77-
v = nanminabs( 0, x, 1 );
78-
t.strictEqual( isnan( v ), true, 'returns expected value' );
79-
80-
v = nanminabs( -1, x, 1 );
81-
t.strictEqual( isnan( v ), true, 'returns expected value' );
82-
83-
t.end();
84-
});
85-
86-
tape( 'if provided an `N` parameter equal to `1`, the function returns the first element', function test( t ) {
87-
var x;
88-
var v;
89-
90-
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
91-
92-
v = nanminabs( 1, x, 1 );
93-
t.strictEqual( v, 1.0, 'returns expected value' );
94-
76+
});
77+
78+
tape('if provided an `N` parameter equal to `1`, the function returns the first element', function test(t) {
79+
var x, v;
80+
81+
x = toAccessorArray([1.0, -2.0, -4.0, 5.0, 3.0]);
82+
83+
v = nanminabs(1, x, 1, 0);
84+
t.strictEqual(v, 1.0, 'returns expected value');
85+
9586
t.end();
96-
});
97-
98-
tape( 'the function supports a `stride` parameter', function test( t ) {
99-
var N;
100-
var x;
101-
var v;
102-
103-
x = [
104-
1.0, // 0
105-
2.0,
106-
2.0, // 1
107-
-7.0,
108-
-2.0, // 2
109-
3.0,
110-
4.0, // 3
111-
2.0,
112-
NaN, // 4
113-
NaN
114-
];
115-
116-
N = floor( x.length / 2 );
117-
v = nanminabs( N, x, 2 );
118-
119-
t.strictEqual( v, 1.0, 'returns expected value' );
87+
});
88+
89+
tape('the function supports a `stride` parameter', function test(t) {
90+
var N, x, v;
91+
92+
x = toAccessorArray([
93+
1.0,
94+
2.0,
95+
2.0,
96+
-7.0,
97+
-2.0,
98+
3.0,
99+
4.0,
100+
2.0,
101+
NaN,
102+
NaN
103+
]);
104+
105+
N = Math.floor(x.data.length / 2);
106+
v = nanminabs(N, x, 2, 0);
107+
108+
t.strictEqual(v, 1.0, 'returns expected value');
120109
t.end();
121-
});
122-
123-
tape( 'the function supports a negative `stride` parameter', function test( t ) {
124-
var N;
125-
var x;
126-
var v;
127-
128-
x = [
129-
NaN, // 4
130-
NaN,
131-
1.0, // 3
132-
2.0,
133-
2.0, // 2
134-
-7.0,
135-
-2.0, // 1
136-
3.0,
137-
4.0, // 0
138-
2.0
139-
];
140-
141-
N = floor( x.length / 2 );
142-
v = nanminabs( N, x, -2 );
143-
144-
t.strictEqual( v, 1.0, 'returns expected value' );
110+
});
111+
112+
tape('the function supports a negative `stride` parameter', function test(t) {
113+
var N, x, v;
114+
115+
x = toAccessorArray([
116+
NaN,
117+
NaN,
118+
1.0,
119+
2.0,
120+
2.0,
121+
-7.0,
122+
-2.0,
123+
3.0,
124+
4.0,
125+
2.0
126+
]);
127+
128+
N = Math.floor(x.data.length / 2);
129+
v = nanminabs(N, x, -2, x.data.length - 1);
130+
131+
t.strictEqual(v, 1.0, 'returns expected value');
145132
t.end();
146-
});
147-
148-
tape( 'if provided a `stride` parameter equal to `0`, the function returns the first element', function test( t ) {
149-
var x;
150-
var v;
151-
152-
x = [ 1.0, -2.0, -4.0, 5.0, 3.0 ];
153-
154-
v = nanminabs( x.length, x, 0 );
155-
t.strictEqual( v, 1.0, 'returns expected value' );
156-
133+
});
134+
135+
tape('if provided a `stride` parameter equal to `0`, the function returns the first element', function test(t) {
136+
var x, v;
137+
138+
x = toAccessorArray([1.0, -2.0, -4.0, 5.0, 3.0]);
139+
140+
v = nanminabs(x.data.length, x, 0, 0);
141+
t.strictEqual(v, 1.0, 'returns expected value');
142+
157143
t.end();
158-
});
159-
160-
tape( 'the function supports view offsets', function test( t ) {
161-
var x0;
162-
var x1;
163-
var N;
164-
var v;
165-
144+
});
145+
146+
tape('the function supports view offsets', function test(t) {
147+
var x0, x1, N, v;
148+
166149
x0 = new Float64Array([
167-
2.0,
168-
1.0, // 0
169-
2.0,
170-
-2.0, // 1
171-
-2.0,
172-
2.0, // 2
173-
3.0,
174-
4.0, // 3
175-
6.0,
176-
NaN, // 4
177-
NaN
150+
2.0,
151+
1.0,
152+
2.0,
153+
-2.0,
154+
-2.0,
155+
2.0,
156+
3.0,
157+
4.0,
158+
6.0,
159+
NaN,
160+
NaN
178161
]);
179-
180-
x1 = new Float64Array( x0.buffer, x0.BYTES_PER_ELEMENT*1 ); // start at 2nd element
181-
N = floor(x1.length / 2);
182-
183-
v = nanminabs( N, x1, 2 );
184-
t.strictEqual( v, 1.0, 'returns expected value' );
185-
162+
163+
x1 = new Float64Array(x0.buffer, x0.BYTES_PER_ELEMENT * 1); // start at 2nd element
164+
N = Math.floor(x1.length / 2);
165+
166+
x1 = toAccessorArray(x1);
167+
v = nanminabs(N, x1, 2, 0);
168+
t.strictEqual(v, 1.0, 'returns expected value');
169+
186170
t.end();
187-
});
171+
});

0 commit comments

Comments
 (0)