2222
2323var tape = require ( 'tape' ) ;
2424var 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 ' ) ;
2626var PI = require ( '@stdlib/constants/float64/pi' ) ;
27- var EPS = require ( '@stdlib/constants/float64/eps' ) ;
2827var PINF = require ( '@stdlib/constants/float64/pinf' ) ;
2928var NINF = require ( '@stdlib/constants/float64/ninf' ) ;
3029var isNegativeZero = require ( '@stdlib/assert/is-negative-zero' ) ;
@@ -60,8 +59,6 @@ tape( 'main export is a function', function test( t ) {
6059
6160tape ( '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
8576tape ( '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
10992tape ( '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
133108tape ( '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
157124tape ( '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
181140tape ( '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
205156tape ( '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
229172tape ( '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
253188tape ( '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
277204tape ( '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
301220tape ( '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
325236tape ( '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
349252tape ( '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
373268tape ( '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
398285tape ( '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
417299tape ( '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