Skip to content

Commit afb1781

Browse files
authored
test: migrate stats/base/dists/geometric/logpmf to ULP-based assertions
PR-URL: #15543 Reviewed-by: Athan Reines <kgryte@gmail.com> Ref: #11352
1 parent 77e92e5 commit afb1781

3 files changed

Lines changed: 9 additions & 60 deletions

File tree

‎lib/node_modules/@stdlib/stats/base/dists/geometric/logpmf/test/test.factory.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 factory = require( './../lib/factory.js' );
3029

3130

@@ -138,8 +137,6 @@ tape( 'if provided a `p` outside of `[0,1]`, the created function always returns
138137
tape( 'the created function evaluates the logpmf for `x` given small `p`', function test( t ) {
139138
var expected;
140139
var logpmf;
141-
var delta;
142-
var tol;
143140
var i;
144141
var p;
145142
var x;
@@ -151,22 +148,14 @@ tape( 'the created function evaluates the logpmf for `x` given small `p`', funct
151148
for ( i = 0; i < x.length; i++ ) {
152149
logpmf = factory( p[i] );
153150
y = logpmf( x[i] );
154-
if ( y === expected[i] ) {
155-
t.strictEqual( y, expected[i], 'x: '+x[i]+'. p: '+p[i]+', y: '+y+', expected: '+expected[i] );
156-
} else {
157-
delta = abs( y - expected[ i ] );
158-
tol = 2.0 * EPS * abs( expected[ i ] );
159-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
160-
}
151+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' );
161152
}
162153
t.end();
163154
});
164155

165156
tape( 'the function evaluates the logpmf for `x` given large `p`', function test( t ) {
166157
var expected;
167158
var logpmf;
168-
var delta;
169-
var tol;
170159
var p;
171160
var x;
172161
var y;
@@ -178,13 +167,7 @@ tape( 'the function evaluates the logpmf for `x` given large `p`', function test
178167
for ( i = 0; i < x.length; i++ ) {
179168
logpmf = factory( p[i] );
180169
y = logpmf( x[i] );
181-
if ( y === expected[i] ) {
182-
t.strictEqual( y, expected[i], 'x: '+x[i]+'. p: '+p[i]+', y: '+y+', expected: '+expected[i] );
183-
} else {
184-
delta = abs( y - expected[ i ] );
185-
tol = 1.5 * EPS * abs( expected[ i ] );
186-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
187-
}
170+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' );
188171
}
189172
t.end();
190173
});

‎lib/node_modules/@stdlib/stats/base/dists/geometric/logpmf/test/test.logpmf.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 logpmf = require( './../lib' );
3029

3130

@@ -97,8 +96,6 @@ tape( 'if provided a success probability `p` outside of `[0,1]`, the function al
9796

9897
tape( 'the function evaluates the logpmf for `x` given small parameter `p`', function test( t ) {
9998
var expected;
100-
var delta;
101-
var tol;
10299
var x;
103100
var p;
104101
var y;
@@ -109,21 +106,13 @@ tape( 'the function evaluates the logpmf for `x` given small parameter `p`', fun
109106
p = smallP.p;
110107
for ( i = 0; i < x.length; i++ ) {
111108
y = logpmf( x[i], p[i] );
112-
if ( y === expected[i] ) {
113-
t.strictEqual( y, expected[i], 'x: '+x[i]+'. p:'+p[i]+', y: '+y+', expected: '+expected[i] );
114-
} else {
115-
delta = abs( y - expected[ i ] );
116-
tol = 2.0 * EPS * abs( expected[ i ] );
117-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
118-
}
109+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' );
119110
}
120111
t.end();
121112
});
122113

123114
tape( 'the function evaluates the logpmf for `x` given large parameter `p`', function test( t ) {
124115
var expected;
125-
var delta;
126-
var tol;
127116
var x;
128117
var p;
129118
var y;
@@ -134,13 +123,7 @@ tape( 'the function evaluates the logpmf for `x` given large parameter `p`', fun
134123
p = largeP.p;
135124
for ( i = 0; i < x.length; i++ ) {
136125
y = logpmf( x[i], p[i] );
137-
if ( y === expected[i] ) {
138-
t.strictEqual( y, expected[i], 'x: '+x[i]+'. p: '+p[i]+', y: '+y+', expected: '+expected[i] );
139-
} else {
140-
delta = abs( y - expected[ i ] );
141-
tol = 1.5 * EPS * abs( expected[ i ] );
142-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
143-
}
126+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' );
144127
}
145128
t.end();
146129
});

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

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

2323
var resolve = require( 'path' ).resolve;
2424
var tape = require( 'tape' );
25+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
2526
var isnan = require( '@stdlib/math/base/assert/is-nan' );
26-
var abs = require( '@stdlib/math/base/special/abs' );
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 tryRequire = require( '@stdlib/utils/try-require' );
3130

3231

@@ -106,8 +105,6 @@ tape( 'if provided a success probability `p` outside of `[0,1]`, the function al
106105

107106
tape( 'the function evaluates the logpmf for `x` given small parameter `p`', opts, function test( t ) {
108107
var expected;
109-
var delta;
110-
var tol;
111108
var x;
112109
var p;
113110
var y;
@@ -118,21 +115,13 @@ tape( 'the function evaluates the logpmf for `x` given small parameter `p`', opt
118115
p = smallP.p;
119116
for ( i = 0; i < x.length; i++ ) {
120117
y = logpmf( x[i], p[i] );
121-
if ( y === expected[i] ) {
122-
t.strictEqual( y, expected[i], 'x: '+x[i]+'. p:'+p[i]+', y: '+y+', expected: '+expected[i] );
123-
} else {
124-
delta = abs( y - expected[ i ] );
125-
tol = 2.0 * EPS * abs( expected[ i ] );
126-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
127-
}
118+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 1 ), true, 'returns expected value' );
128119
}
129120
t.end();
130121
});
131122

132123
tape( 'the function evaluates the logpmf for `x` given large parameter `p`', opts, function test( t ) {
133124
var expected;
134-
var delta;
135-
var tol;
136125
var x;
137126
var p;
138127
var y;
@@ -143,13 +132,7 @@ tape( 'the function evaluates the logpmf for `x` given large parameter `p`', opt
143132
p = largeP.p;
144133
for ( i = 0; i < x.length; i++ ) {
145134
y = logpmf( x[i], p[i] );
146-
if ( y === expected[i] ) {
147-
t.strictEqual( y, expected[i], 'x: '+x[i]+'. p: '+p[i]+', y: '+y+', expected: '+expected[i] );
148-
} else {
149-
delta = abs( y - expected[ i ] );
150-
tol = 1.5 * EPS * abs( expected[ i ] );
151-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
152-
}
135+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 2 ), true, 'returns expected value' );
153136
}
154137
t.end();
155138
});

0 commit comments

Comments
 (0)