Skip to content

Commit 4148aea

Browse files
authored
test: migrate stats/base/dists/geometric/mgf to ULP-based assertions
PR-URL: #15911 Reviewed-by: Athan Reines <kgryte@gmail.com> Ref: #11352
1 parent 7200560 commit 4148aea

3 files changed

Lines changed: 9 additions & 60 deletions

File tree

‎lib/node_modules/@stdlib/stats/base/dists/geometric/mgf/test/test.factory.js‎

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,11 @@
2121
// MODULES //
2222

2323
var tape = require( 'tape' );
24+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
2425
var isnan = require( '@stdlib/math/base/assert/is-nan' );
25-
var abs = require( '@stdlib/math/base/special/abs' );
2626
var ln = require( '@stdlib/math/base/special/ln' );
2727
var PINF = require( '@stdlib/constants/float64/pinf' );
2828
var NINF = require( '@stdlib/constants/float64/ninf' );
29-
var EPS = require( '@stdlib/constants/float64/eps' );
3029
var factory = require( './../lib/factory.js' );
3130

3231

@@ -98,9 +97,7 @@ tape( 'if provided a success probability `p` outside of `[0,1]`, the created fun
9897

9998
tape( 'the created function evaluates the mgf for `x` given small parameter `p`', function test( t ) {
10099
var expected;
101-
var delta;
102100
var mgf;
103-
var tol;
104101
var x;
105102
var p;
106103
var y;
@@ -112,22 +109,14 @@ tape( 'the created function evaluates the mgf for `x` given small parameter `p`'
112109
for ( i = 0; i < x.length; i++ ) {
113110
mgf = factory( p[i] );
114111
y = mgf( x[i] );
115-
if ( y === expected[i] ) {
116-
t.strictEqual( y, expected[i], 'x: '+x[i]+', p: '+p[i]+', y: '+y+', expected: '+expected[i] );
117-
} else {
118-
delta = abs( y - expected[ i ] );
119-
tol = 3.0 * EPS * abs( expected[ i ] );
120-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
121-
}
112+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 4 ), true, 'returns expected value' );
122113
}
123114
t.end();
124115
});
125116

126117
tape( 'the created function evaluates the mgf for `x` given large parameter `p`', function test( t ) {
127118
var expected;
128-
var delta;
129119
var mgf;
130-
var tol;
131120
var x;
132121
var p;
133122
var y;
@@ -139,13 +128,7 @@ tape( 'the created function evaluates the mgf for `x` given large parameter `p`'
139128
for ( i = 0; i < x.length; i++ ) {
140129
mgf = factory( p[i] );
141130
y = mgf( x[i] );
142-
if ( y === expected[i] ) {
143-
t.strictEqual( y, expected[i], 'x: '+x[i]+', p: '+p[i]+', y: '+y+', expected: '+expected[i] );
144-
} else {
145-
delta = abs( y - expected[ i ] );
146-
tol = 2.0 * EPS * abs( expected[ i ] );
147-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
148-
}
131+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 3 ), true, 'returns expected value' );
149132
}
150133
t.end();
151134
});

‎lib/node_modules/@stdlib/stats/base/dists/geometric/mgf/test/test.mgf.js‎

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,10 @@
2121
// MODULES //
2222

2323
var tape = require( 'tape' );
24+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
2425
var isnan = require( '@stdlib/math/base/assert/is-nan' );
25-
var abs = require( '@stdlib/math/base/special/abs' );
2626
var PINF = require( '@stdlib/constants/float64/pinf' );
2727
var NINF = require( '@stdlib/constants/float64/ninf' );
28-
var EPS = require( '@stdlib/constants/float64/eps' );
2928
var isfinite = require( '@stdlib/math/base/assert/is-finite' );
3029
var ln = require( '@stdlib/math/base/special/ln' );
3130
var exp = require( '@stdlib/math/base/special/exp' );
@@ -74,8 +73,6 @@ tape( 'if provided a value outside `[0,1]` for success probability `p`, the func
7473

7574
tape( 'the function evaluates the MGF for `x` given small parameter `p`', function test( t ) {
7675
var expected;
77-
var delta;
78-
var tol;
7976
var x;
8077
var p;
8178
var y;
@@ -86,21 +83,13 @@ tape( 'the function evaluates the MGF for `x` given small parameter `p`', functi
8683
p = smallP.p;
8784
for ( i = 0; i < x.length; i++ ) {
8885
y = mgf( x[i], p[i] );
89-
if ( y === expected[i] ) {
90-
t.strictEqual( y, expected[i], 'x: '+x[i]+', p: '+p[i]+', y: '+y+', expected: '+expected[i] );
91-
} else {
92-
delta = abs( y - expected[ i ] );
93-
tol = 3.0 * EPS * abs( expected[ i ] );
94-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
95-
}
86+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 4 ), true, 'returns expected value' );
9687
}
9788
t.end();
9889
});
9990

10091
tape( 'the function evaluates the MGF for `x` given large parameter `p`', function test( t ) {
10192
var expected;
102-
var delta;
103-
var tol;
10493
var x;
10594
var p;
10695
var y;
@@ -111,13 +100,7 @@ tape( 'the function evaluates the MGF for `x` given large parameter `p`', functi
111100
p = largeP.p;
112101
for ( i = 0; i < x.length; i++ ) {
113102
y = mgf( x[i], p[i] );
114-
if ( y === expected[i] ) {
115-
t.strictEqual( y, expected[i], 'x: '+x[i]+', p: '+p[i]+', y: '+y+', expected: '+expected[i] );
116-
} else {
117-
delta = abs( y - expected[ i ] );
118-
tol = 2.0 * EPS * abs( expected[ i ] );
119-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
120-
}
103+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 3 ), true, 'returns expected value' );
121104
}
122105
t.end();
123106
});

‎lib/node_modules/@stdlib/stats/base/dists/geometric/mgf/test/test.native.js‎

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,11 @@
2222

2323
var resolve = require( 'path' ).resolve;
2424
var tape = require( 'tape' );
25+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
2526
var tryRequire = require( '@stdlib/utils/try-require' );
2627
var isnan = require( '@stdlib/math/base/assert/is-nan' );
27-
var abs = require( '@stdlib/math/base/special/abs' );
2828
var PINF = require( '@stdlib/constants/float64/pinf' );
2929
var NINF = require( '@stdlib/constants/float64/ninf' );
30-
var EPS = require( '@stdlib/constants/float64/eps' );
3130
var isfinite = require( '@stdlib/math/base/assert/is-finite' );
3231
var ln = require( '@stdlib/math/base/special/ln' );
3332
var exp = require( '@stdlib/math/base/special/exp' );
@@ -83,8 +82,6 @@ tape( 'if provided a value outside `[0,1]` for success probability `p`, the func
8382

8483
tape( 'the function evaluates the MGF for `x` given small parameter `p`', opts, function test( t ) {
8584
var expected;
86-
var delta;
87-
var tol;
8885
var x;
8986
var p;
9087
var y;
@@ -95,21 +92,13 @@ tape( 'the function evaluates the MGF for `x` given small parameter `p`', opts,
9592
p = smallP.p;
9693
for ( i = 0; i < x.length; i++ ) {
9794
y = mgf( x[i], p[i] );
98-
if ( y === expected[i] ) {
99-
t.strictEqual( y, expected[i], 'x: '+x[i]+', p: '+p[i]+', y: '+y+', expected: '+expected[i] );
100-
} else {
101-
delta = abs( y - expected[ i ] );
102-
tol = 3.0 * EPS * abs( expected[ i ] );
103-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
104-
}
95+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 4 ), true, 'returns expected value' );
10596
}
10697
t.end();
10798
});
10899

109100
tape( 'the function evaluates the MGF for `x` given large parameter `p`', opts, function test( t ) {
110101
var expected;
111-
var delta;
112-
var tol;
113102
var x;
114103
var p;
115104
var y;
@@ -120,13 +109,7 @@ tape( 'the function evaluates the MGF for `x` given large parameter `p`', opts,
120109
p = largeP.p;
121110
for ( i = 0; i < x.length; i++ ) {
122111
y = mgf( x[i], p[i] );
123-
if ( y === expected[i] ) {
124-
t.strictEqual( y, expected[i], 'x: '+x[i]+', p: '+p[i]+', y: '+y+', expected: '+expected[i] );
125-
} else {
126-
delta = abs( y - expected[ i ] );
127-
tol = 2.0 * EPS * abs( expected[ i ] );
128-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
129-
}
112+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 3 ), true, 'returns expected value' );
130113
}
131114
t.end();
132115
});

0 commit comments

Comments
 (0)