@@ -24,6 +24,8 @@ var resolve = require( 'path' ).resolve;
24
24
var tape = require ( 'tape' ) ;
25
25
var isnan = require ( '@stdlib/math/base/assert/is-nan' ) ;
26
26
var tryRequire = require ( '@stdlib/utils/try-require' ) ;
27
+ var abs = require ( '@stdlib/math/base/special/abs' ) ;
28
+ var EPS = require ( '@stdlib/constants/float64/eps' ) ;
27
29
var PINF = require ( '@stdlib/constants/float64/pinf' ) ;
28
30
var NINF = require ( '@stdlib/constants/float64/ninf' ) ;
29
31
@@ -78,6 +80,8 @@ tape( 'if provided a value outside `[0,1]` for success probability `p`, the func
78
80
79
81
tape ( 'the function evaluates the mgf for `x` given small parameter `p`' , opts , function test ( t ) {
80
82
var expected ;
83
+ var delta ;
84
+ var tol ;
81
85
var x ;
82
86
var p ;
83
87
var y ;
@@ -88,13 +92,21 @@ tape( 'the function evaluates the mgf for `x` given small parameter `p`', opts,
88
92
p = smallP . p ;
89
93
for ( i = 0 ; i < x . length ; i ++ ) {
90
94
y = mgf ( x [ i ] , p [ i ] ) ;
91
- t . equal ( y , expected [ i ] , 'x: ' + x [ i ] + ', p: ' + p [ i ] + ', y: ' + y + ', expected: ' + expected [ i ] ) ;
95
+ if ( y === expected [ i ] ) {
96
+ t . equal ( y , expected [ i ] , 'x: ' + x [ i ] + ', p: ' + p [ i ] + ', y: ' + y + ', expected: ' + expected [ i ] ) ;
97
+ } else {
98
+ delta = abs ( y - expected [ i ] ) ;
99
+ tol = 1.0 * EPS * abs ( expected [ i ] ) ;
100
+ t . ok ( delta <= tol , 'within tolerance. x: ' + x [ i ] + ', p: ' + p [ i ] + ', actual: ' + y + ', expected: ' + expected [ i ] + '. Δ: ' + delta + '. tol: ' + tol + '.' ) ;
101
+ }
92
102
}
93
103
t . end ( ) ;
94
104
} ) ;
95
105
96
106
tape ( 'the function evaluates the mgf for `x` given large parameter `p`' , opts , function test ( t ) {
97
107
var expected ;
108
+ var delta ;
109
+ var tol ;
98
110
var x ;
99
111
var p ;
100
112
var y ;
@@ -105,7 +117,13 @@ tape( 'the function evaluates the mgf for `x` given large parameter `p`', opts,
105
117
p = largeP . p ;
106
118
for ( i = 0 ; i < x . length ; i ++ ) {
107
119
y = mgf ( x [ i ] , p [ i ] ) ;
108
- t . equal ( y , expected [ i ] , 'x: ' + x [ i ] + ', p: ' + p [ i ] + ', y: ' + y + ', expected: ' + expected [ i ] ) ;
120
+ if ( y === expected [ i ] ) {
121
+ t . equal ( y , expected [ i ] , 'x: ' + x [ i ] + ', p: ' + p [ i ] + ', y: ' + y + ', expected: ' + expected [ i ] ) ;
122
+ } else {
123
+ delta = abs ( y - expected [ i ] ) ;
124
+ tol = 1.0 * EPS * abs ( expected [ i ] ) ;
125
+ t . ok ( delta <= tol , 'within tolerance. x: ' + x [ i ] + ', p: ' + p [ i ] + ', actual: ' + y + ', expected: ' + expected [ i ] + '. Δ: ' + delta + '. tol: ' + tol + '.' ) ;
126
+ }
109
127
}
110
128
t . end ( ) ;
111
129
} ) ;
0 commit comments