Skip to content

Commit e77a2d5

Browse files
committed
test: use ulpdiff for floating-point comparisons
--- 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 dfbf338 commit e77a2d5

File tree

2 files changed

+34
-280
lines changed

2 files changed

+34
-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)