Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 120567c

Browse files
test: use ulpdiff for floating-point comparisons
PR-URL: #7869 Reviewed-by: Athan Reines <kgryte@gmail.com>
1 parent dfbf338 commit 120567c

File tree

2 files changed

+48
-280
lines changed

2 files changed

+48
-280
lines changed

‎lib/node_modules/@stdlib/math/base/special/tan/test/test.js‎

Lines changed: 17 additions & 140 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,8 @@
2222

2323
var tape = require( 'tape' );
2424
var isnan = require( '@stdlib/math/base/assert/is-nan' );
25-
var abs = require( '@stdlib/math/base/special/abs' );
25+
var ulpdiff = require( '@stdlib/number/float64/base/ulp-difference' );
2626
var PI = require( '@stdlib/constants/float64/pi' );
27-
var EPS = require( '@stdlib/constants/float64/eps' );
2827
var PINF = require( '@stdlib/constants/float64/pinf' );
2928
var NINF = require( '@stdlib/constants/float64/ninf' );
3029
var isNegativeZero = require( '@stdlib/assert/is-negative-zero' );
@@ -60,8 +59,6 @@ tape( 'main export is a function', function test( t ) {
6059

6160
tape( 'the function computes the tangent (huge negative values)', function test( t ) {
6261
var expected;
63-
var delta;
64-
var tol;
6562
var x;
6663
var y;
6764
var i;
@@ -71,21 +68,13 @@ tape( 'the function computes the tangent (huge negative values)', function test(
7168

7269
for ( i = 0; i < x.length; i++ ) {
7370
y = tan( x[ i ] );
74-
if ( y === expected[ i ] ) {
75-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
76-
} else {
77-
delta = abs( y - expected[ i ] );
78-
tol = EPS * abs( expected[ i ] );
79-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
80-
}
71+
t.strictEqual( ulpdiff( y, expected[ i ] ) <= 1, true, 'returns expected value' );
8172
}
8273
t.end();
8374
});
8475

8576
tape( 'the function computes the tangent (huge positive values)', function test( t ) {
8677
var expected;
87-
var delta;
88-
var tol;
8978
var x;
9079
var y;
9180
var i;
@@ -95,21 +84,13 @@ tape( 'the function computes the tangent (huge positive values)', function test(
9584

9685
for ( i = 0; i < x.length; i++ ) {
9786
y = tan( x[ i ] );
98-
if ( y === expected[ i ] ) {
99-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
100-
} else {
101-
delta = abs( y - expected[ i ] );
102-
tol = EPS * abs( expected[ i ] );
103-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
104-
}
87+
t.strictEqual( ulpdiff( y, expected[ i ] ) <= 1, true, 'returns expected value' );
10588
}
10689
t.end();
10790
});
10891

10992
tape( 'the function computes the tangent (very large positive values)', function test( t ) {
11093
var expected;
111-
var delta;
112-
var tol;
11394
var x;
11495
var y;
11596
var i;
@@ -119,21 +100,13 @@ tape( 'the function computes the tangent (very large positive values)', function
119100

120101
for ( i = 0; i < x.length; i++ ) {
121102
y = tan( x[ i ] );
122-
if ( y === expected[ i ] ) {
123-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
124-
} else {
125-
delta = abs( y - expected[ i ] );
126-
tol = EPS * abs( expected[ i ] );
127-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
128-
}
103+
t.strictEqual( ulpdiff( y, expected[ i ] ) <= 1, true, 'returns expected value' );
129104
}
130105
t.end();
131106
});
132107

133108
tape( 'the function computes the tangent (very large negative values)', function test( t ) {
134109
var expected;
135-
var delta;
136-
var tol;
137110
var x;
138111
var y;
139112
var i;
@@ -143,21 +116,13 @@ tape( 'the function computes the tangent (very large negative values)', function
143116

144117
for ( i = 0; i < x.length; i++ ) {
145118
y = tan( x[ i ] );
146-
if ( y === expected[ i ] ) {
147-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
148-
} else {
149-
delta = abs( y - expected[ i ] );
150-
tol = EPS * abs( expected[ i ] );
151-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
152-
}
119+
t.strictEqual( ulpdiff( y, expected[ i ] ) <= 1, true, 'returns expected value' );
153120
}
154121
t.end();
155122
});
156123

157124
tape( 'the function computes the tangent (large positive values)', function test( t ) {
158125
var expected;
159-
var delta;
160-
var tol;
161126
var x;
162127
var y;
163128
var i;
@@ -167,21 +132,13 @@ tape( 'the function computes the tangent (large positive values)', function test
167132

168133
for ( i = 0; i < x.length; i++ ) {
169134
y = tan( x[ i ] );
170-
if ( y === expected[ i ] ) {
171-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
172-
} else {
173-
delta = abs( y - expected[ i ] );
174-
tol = EPS * abs( expected[ i ] );
175-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
176-
}
135+
t.strictEqual( y, expected[ i ], 'returns expected value' );
177136
}
178137
t.end();
179138
});
180139

181140
tape( 'the function computes the tangent (large negative values)', function test( t ) {
182141
var expected;
183-
var delta;
184-
var tol;
185142
var x;
186143
var y;
187144
var i;
@@ -191,21 +148,13 @@ tape( 'the function computes the tangent (large negative values)', function test
191148

192149
for ( i = 0; i < x.length; i++ ) {
193150
y = tan( x[ i ] );
194-
if ( y === expected[ i ] ) {
195-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
196-
} else {
197-
delta = abs( y - expected[ i ] );
198-
tol = EPS * abs( expected[ i ] );
199-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
200-
}
151+
t.strictEqual( y, expected[ i ], 'returns expected value' );
201152
}
202153
t.end();
203154
});
204155

205156
tape( 'the function computes the tangent (medium positive values)', function test( t ) {
206157
var expected;
207-
var delta;
208-
var tol;
209158
var x;
210159
var y;
211160
var i;
@@ -215,21 +164,13 @@ tape( 'the function computes the tangent (medium positive values)', function tes
215164

216165
for ( i = 0; i < x.length; i++ ) {
217166
y = tan( x[ i ] );
218-
if ( y === expected[ i ] ) {
219-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
220-
} else {
221-
delta = abs( y - expected[ i ] );
222-
tol = EPS * abs( expected[ i ] );
223-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
224-
}
167+
t.strictEqual( y, expected[ i ], 'returns expected value' );
225168
}
226169
t.end();
227170
});
228171

229172
tape( 'the function computes the tangent (medium negative values)', function test( t ) {
230173
var expected;
231-
var delta;
232-
var tol;
233174
var x;
234175
var y;
235176
var i;
@@ -239,21 +180,13 @@ tape( 'the function computes the tangent (medium negative values)', function tes
239180

240181
for ( i = 0; i < x.length; i++ ) {
241182
y = tan( x[ i ] );
242-
if ( y === expected[ i ] ) {
243-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
244-
} else {
245-
delta = abs( y - expected[ i ] );
246-
tol = EPS * abs( expected[ i ] );
247-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
248-
}
183+
t.strictEqual( y, expected[ i ], 'returns expected value' );
249184
}
250185
t.end();
251186
});
252187

253188
tape( 'the function computes the tangent (small positive values)', function test( t ) {
254189
var expected;
255-
var delta;
256-
var tol;
257190
var x;
258191
var y;
259192
var i;
@@ -263,21 +196,13 @@ tape( 'the function computes the tangent (small positive values)', function test
263196

264197
for ( i = 0; i < x.length; i++ ) {
265198
y = tan( x[ i ] );
266-
if ( y === expected[ i ] ) {
267-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
268-
} else {
269-
delta = abs( y - expected[ i ] );
270-
tol = EPS * abs( expected[ i ] );
271-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
272-
}
199+
t.strictEqual( y, expected[ i ], 'returns expected value' );
273200
}
274201
t.end();
275202
});
276203

277204
tape( 'the function computes the tangent (small negative values)', function test( t ) {
278205
var expected;
279-
var delta;
280-
var tol;
281206
var x;
282207
var y;
283208
var i;
@@ -287,21 +212,13 @@ tape( 'the function computes the tangent (small negative values)', function test
287212

288213
for ( i = 0; i < x.length; i++ ) {
289214
y = tan( x[ i ] );
290-
if ( y === expected[ i ] ) {
291-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
292-
} else {
293-
delta = abs( y - expected[ i ] );
294-
tol = EPS * abs( expected[ i ] );
295-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
296-
}
215+
t.strictEqual( y, expected[ i ], 'returns expected value' );
297216
}
298217
t.end();
299218
});
300219

301220
tape( 'the function computes the tangent (smaller values)', function test( t ) {
302221
var expected;
303-
var delta;
304-
var tol;
305222
var x;
306223
var y;
307224
var i;
@@ -311,21 +228,13 @@ tape( 'the function computes the tangent (smaller values)', function test( t ) {
311228

312229
for ( i = 0; i < x.length; i++ ) {
313230
y = tan( x[ i ] );
314-
if ( y === expected[ i ] ) {
315-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
316-
} else {
317-
delta = abs( y - expected[ i ] );
318-
tol = EPS * abs( expected[ i ] );
319-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
320-
}
231+
t.strictEqual( y, expected[ i ], 'returns expected value' );
321232
}
322233
t.end();
323234
});
324235

325236
tape( 'the function computes the tangent (tiny positive values)', function test( t ) {
326237
var expected;
327-
var delta;
328-
var tol;
329238
var x;
330239
var y;
331240
var i;
@@ -335,21 +244,13 @@ tape( 'the function computes the tangent (tiny positive values)', function test(
335244

336245
for ( i = 0; i < x.length; i++ ) {
337246
y = tan( x[ i ] );
338-
if ( y === expected[ i ] ) {
339-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
340-
} else {
341-
delta = abs( y - expected[ i ] );
342-
tol = EPS * abs( expected[ i ] );
343-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
344-
}
247+
t.strictEqual( y, expected[ i ], 'returns expected value' );
345248
}
346249
t.end();
347250
});
348251

349252
tape( 'the function computes the tangent (tiny negative values)', function test( t ) {
350253
var expected;
351-
var delta;
352-
var tol;
353254
var x;
354255
var y;
355256
var i;
@@ -359,21 +260,13 @@ tape( 'the function computes the tangent (tiny negative values)', function test(
359260

360261
for ( i = 0; i < x.length; i++ ) {
361262
y = tan( x[ i ] );
362-
if ( y === expected[ i ] ) {
363-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
364-
} else {
365-
delta = abs( y - expected[ i ] );
366-
tol = EPS * abs( expected[ i ] );
367-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
368-
}
263+
t.strictEqual( y, expected[ i ], 'returns expected value' );
369264
}
370265
t.end();
371266
});
372267

373268
tape( 'the function computes the tangent (subnormal values)', function test( t ) {
374269
var expected;
375-
var delta;
376-
var tol;
377270
var x;
378271
var y;
379272
var i;
@@ -383,22 +276,14 @@ tape( 'the function computes the tangent (subnormal values)', function test( t )
383276

384277
for ( i = 0; i < x.length; i++ ) {
385278
y = tan( x[ i ] );
386-
if ( y === expected[ i ] ) {
387-
t.strictEqual( y, expected[ i ], 'x: '+x[i]+'. E: '+expected[i] );
388-
} else {
389-
delta = abs( y - expected[ i ] );
390-
tol = EPS * abs( expected[ i ] );
391-
t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' );
392-
}
279+
t.strictEqual( y, expected[ i ], 'returns expected value' );
393280
}
394281

395282
t.end();
396283
});
397284

398285
tape( 'if provided a multiple of `-pi/2`, the function does not return `-infinity`', function test( t ) {
399286
var expected;
400-
var delta;
401-
var tol;
402287
var x;
403288
var v;
404289

@@ -407,17 +292,12 @@ tape( 'if provided a multiple of `-pi/2`, the function does not return `-infinit
407292
v = tan( x );
408293
expected = -1.633123935319537e16;
409294

410-
delta = abs( v - expected );
411-
tol = EPS * abs( expected );
412-
413-
t.ok( delta <= tol, 'within tolerance. x: '+x+'. v: '+v+'. E: '+expected+'. Δ: '+delta+'. tol: '+tol+'.' );
295+
t.strictEqual( v, expected, 'returns expected value' );
414296
t.end();
415297
});
416298

417299
tape( 'if provided a multiple of `pi/2`, the function does not return `+infinity`', function test( t ) {
418300
var expected;
419-
var delta;
420-
var tol;
421301
var x;
422302
var v;
423303

@@ -426,10 +306,7 @@ tape( 'if provided a multiple of `pi/2`, the function does not return `+infinity
426306
v = tan( x );
427307
expected = 1.633123935319537e16;
428308

429-
delta = abs( v - expected );
430-
tol = EPS * abs( expected );
431-
432-
t.ok( delta <= tol, 'within tolerance. x: '+x+'. v: '+v+'. E: '+expected+'. Δ: '+delta+'. tol: '+tol+'.' );
309+
t.strictEqual( v, expected, 'returns expected value' );
433310
t.end();
434311
});
435312

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /