Skip to content

Commit 44122f7

Browse files
committed
test: migrate stats/base/dists/gamma/mgf to ULP-based assertions
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0114LWfxLf423XDkVV7yQ7YR
1 parent 7166567 commit 44122f7

3 files changed

Lines changed: 12 additions & 87 deletions

File tree

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

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
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' );
2625
var PINF = require( '@stdlib/constants/float64/pinf' );
2726
var NINF = require( '@stdlib/constants/float64/ninf' );
28-
var EPS = require( '@stdlib/constants/float64/eps' );
27+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
2928
var factory = require( './../lib/factory.js' );
3029

3130

@@ -141,11 +140,9 @@ tape( 'if provided `alpha < 0`, the created function always returns `NaN`', func
141140

142141
tape( 'the created function evaluates the mgf for `x` given large `alpha` and `beta`', function test( t ) {
143142
var expected;
144-
var delta;
145143
var alpha;
146144
var beta;
147145
var mgf;
148-
var tol;
149146
var x;
150147
var y;
151148
var i;
@@ -157,24 +154,16 @@ tape( 'the created function evaluates the mgf for `x` given large `alpha` and `b
157154
for ( i = 0; i < x.length; i++ ) {
158155
mgf = factory( alpha[i], beta[i] );
159156
y = mgf( x[i] );
160-
if ( y === expected[i] ) {
161-
t.strictEqual( y, expected[i], 'x: '+x[i]+', alpha: '+alpha[i]+', beta: '+beta[i]+', y: '+y+', expected: '+expected[i] );
162-
} else {
163-
delta = abs( y - expected[ i ] );
164-
tol = 3000.0 * EPS * abs( expected[ i ] );
165-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. alpha: '+alpha[i]+'. beta: '+beta[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
166-
}
157+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 3259 ), true, 'returns expected value' );
167158
}
168159
t.end();
169160
});
170161

171162
tape( 'the created function evaluates the mgf for `x` given a large shape parameter `alpha`', function test( t ) {
172163
var expected;
173-
var delta;
174164
var alpha;
175165
var beta;
176166
var mgf;
177-
var tol;
178167
var x;
179168
var y;
180169
var i;
@@ -186,24 +175,16 @@ tape( 'the created function evaluates the mgf for `x` given a large shape parame
186175
for ( i = 0; i < x.length; i++ ) {
187176
mgf = factory( alpha[i], beta[i] );
188177
y = mgf( x[i] );
189-
if ( y === expected[i] ) {
190-
t.strictEqual( y, expected[i], 'x: '+x[i]+', alpha: '+alpha[i]+', beta: '+beta[i]+', y: '+y+', expected: '+expected[i] );
191-
} else {
192-
delta = abs( y - expected[ i ] );
193-
tol = 6500.0 * EPS * abs( expected[ i ] );
194-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. alpha: '+alpha[i]+'. beta: '+beta[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
195-
}
178+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 10882 ), true, 'returns expected value' );
196179
}
197180
t.end();
198181
});
199182

200183
tape( 'the created function evaluates the mgf for `x` given a large rate parameter `beta`', function test( t ) {
201184
var expected;
202-
var delta;
203185
var alpha;
204186
var beta;
205187
var mgf;
206-
var tol;
207188
var x;
208189
var y;
209190
var i;
@@ -215,13 +196,7 @@ tape( 'the created function evaluates the mgf for `x` given a large rate paramet
215196
for ( i = 0; i < x.length; i++ ) {
216197
mgf = factory( alpha[i], beta[i] );
217198
y = mgf( x[i] );
218-
if ( y === expected[i] ) {
219-
t.strictEqual( y, expected[i], 'x: '+x[i]+', alpha: '+alpha[i]+', beta: '+beta[i]+', y: '+y+', expected: '+expected[i] );
220-
} else {
221-
delta = abs( y - expected[ i ] );
222-
tol = 1200.0 * EPS * abs( expected[ i ] );
223-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. alpha: '+alpha[i]+'. beta: '+beta[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
224-
}
199+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 2062 ), true, 'returns expected value' );
225200
}
226201
t.end();
227202
});

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

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,9 @@
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' );
2625
var PINF = require( '@stdlib/constants/float64/pinf' );
2726
var NINF = require( '@stdlib/constants/float64/ninf' );
28-
var EPS = require( '@stdlib/constants/float64/eps' );
27+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
2928
var mgf = require( './../lib' );
3029

3130

@@ -104,10 +103,8 @@ tape( 'if provided a nonpositive `beta`, the function returns `NaN`', function t
104103

105104
tape( 'the function evaluates the MGF for `x` given large `alpha` and `beta`', function test( t ) {
106105
var expected;
107-
var delta;
108106
var alpha;
109107
var beta;
110-
var tol;
111108
var x;
112109
var y;
113110
var i;
@@ -118,23 +115,15 @@ tape( 'the function evaluates the MGF for `x` given large `alpha` and `beta`', f
118115
beta = bothLarge.beta;
119116
for ( i = 0; i < x.length; i++ ) {
120117
y = mgf( x[i], alpha[i], beta[i] );
121-
if ( y === expected[i] ) {
122-
t.strictEqual( y, expected[i], 'x: '+x[i]+', alpha: '+alpha[i]+', beta: '+beta[i]+', y: '+y+', expected: '+expected[i] );
123-
} else {
124-
delta = abs( y - expected[ i ] );
125-
tol = 3000.0 * EPS * abs( expected[ i ] );
126-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. alpha: '+alpha[i]+'. beta: '+beta[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
127-
}
118+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 3259 ), true, 'returns expected value' );
128119
}
129120
t.end();
130121
});
131122

132123
tape( 'the function evaluates the MGF for `x` given large shape parameter `alpha`', function test( t ) {
133124
var expected;
134-
var delta;
135125
var alpha;
136126
var beta;
137-
var tol;
138127
var x;
139128
var y;
140129
var i;
@@ -145,23 +134,15 @@ tape( 'the function evaluates the MGF for `x` given large shape parameter `alpha
145134
beta = largeShape.beta;
146135
for ( i = 0; i < x.length; i++ ) {
147136
y = mgf( x[i], alpha[i], beta[i] );
148-
if ( y === expected[i] ) {
149-
t.strictEqual( y, expected[i], 'x: '+x[i]+', alpha: '+alpha[i]+', beta: '+beta[i]+', y: '+y+', expected: '+expected[i] );
150-
} else {
151-
delta = abs( y - expected[ i ] );
152-
tol = 6500.0 * EPS * abs( expected[ i ] );
153-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. alpha: '+alpha[i]+'. beta: '+beta[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
154-
}
137+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 10882 ), true, 'returns expected value' );
155138
}
156139
t.end();
157140
});
158141

159142
tape( 'the function evaluates the MGF for `x` given large rate parameter `beta`', function test( t ) {
160143
var expected;
161-
var delta;
162144
var alpha;
163145
var beta;
164-
var tol;
165146
var x;
166147
var y;
167148
var i;
@@ -172,13 +153,7 @@ tape( 'the function evaluates the MGF for `x` given large rate parameter `beta`'
172153
beta = largeRate.beta;
173154
for ( i = 0; i < x.length; i++ ) {
174155
y = mgf( x[i], alpha[i], beta[i] );
175-
if ( y === expected[i] ) {
176-
t.strictEqual( y, expected[i], 'x: '+x[i]+', alpha: '+alpha[i]+', beta: '+beta[i]+', y: '+y+', expected: '+expected[i] );
177-
} else {
178-
delta = abs( y - expected[ i ] );
179-
tol = 2200.0 * EPS * abs( expected[ i ] );
180-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. alpha: '+alpha[i]+'. beta: '+beta[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
181-
}
156+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 2062 ), true, 'returns expected value' );
182157
}
183158
t.end();
184159
});

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

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,10 @@
2323
var resolve = require( 'path' ).resolve;
2424
var tape = require( 'tape' );
2525
var isnan = require( '@stdlib/math/base/assert/is-nan' );
26-
var abs = require( '@stdlib/math/base/special/abs' );
2726
var tryRequire = require( '@stdlib/utils/try-require' );
2827
var PINF = require( '@stdlib/constants/float64/pinf' );
2928
var NINF = require( '@stdlib/constants/float64/ninf' );
30-
var EPS = require( '@stdlib/constants/float64/eps' );
29+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
3130

3231

3332
// FIXTURES //
@@ -113,10 +112,8 @@ tape( 'if provided a nonpositive `beta`, the function returns `NaN`', opts, func
113112

114113
tape( 'the function evaluates the MGF for `x` given large `alpha` and `beta`', opts, function test( t ) {
115114
var expected;
116-
var delta;
117115
var alpha;
118116
var beta;
119-
var tol;
120117
var x;
121118
var y;
122119
var i;
@@ -127,23 +124,15 @@ tape( 'the function evaluates the MGF for `x` given large `alpha` and `beta`', o
127124
beta = bothLarge.beta;
128125
for ( i = 0; i < x.length; i++ ) {
129126
y = mgf( x[i], alpha[i], beta[i] );
130-
if ( y === expected[i] ) {
131-
t.strictEqual( y, expected[i], 'x: '+x[i]+', alpha: '+alpha[i]+', beta: '+beta[i]+', y: '+y+', expected: '+expected[i] );
132-
} else {
133-
delta = abs( y - expected[ i ] );
134-
tol = 3000.0 * EPS * abs( expected[ i ] );
135-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. alpha: '+alpha[i]+'. beta: '+beta[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
136-
}
127+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 3259 ), true, 'returns expected value' );
137128
}
138129
t.end();
139130
});
140131

141132
tape( 'the function evaluates the MGF for `x` given large shape parameter `alpha`', opts, function test( t ) {
142133
var expected;
143-
var delta;
144134
var alpha;
145135
var beta;
146-
var tol;
147136
var x;
148137
var y;
149138
var i;
@@ -154,23 +143,15 @@ tape( 'the function evaluates the MGF for `x` given large shape parameter `alpha
154143
beta = largeShape.beta;
155144
for ( i = 0; i < x.length; i++ ) {
156145
y = mgf( x[i], alpha[i], beta[i] );
157-
if ( y === expected[i] ) {
158-
t.strictEqual( y, expected[i], 'x: '+x[i]+', alpha: '+alpha[i]+', beta: '+beta[i]+', y: '+y+', expected: '+expected[i] );
159-
} else {
160-
delta = abs( y - expected[ i ] );
161-
tol = 6500.0 * EPS * abs( expected[ i ] );
162-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. alpha: '+alpha[i]+'. beta: '+beta[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
163-
}
146+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 10882 ), true, 'returns expected value' );
164147
}
165148
t.end();
166149
});
167150

168151
tape( 'the function evaluates the MGF for `x` given large rate parameter `beta`', opts, function test( t ) {
169152
var expected;
170-
var delta;
171153
var alpha;
172154
var beta;
173-
var tol;
174155
var x;
175156
var y;
176157
var i;
@@ -181,13 +162,7 @@ tape( 'the function evaluates the MGF for `x` given large rate parameter `beta`'
181162
beta = largeRate.beta;
182163
for ( i = 0; i < x.length; i++ ) {
183164
y = mgf( x[i], alpha[i], beta[i] );
184-
if ( y === expected[i] ) {
185-
t.strictEqual( y, expected[i], 'x: '+x[i]+', alpha: '+alpha[i]+', beta: '+beta[i]+', y: '+y+', expected: '+expected[i] );
186-
} else {
187-
delta = abs( y - expected[ i ] );
188-
tol = 2200.0 * EPS * abs( expected[ i ] );
189-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. alpha: '+alpha[i]+'. beta: '+beta[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
190-
}
165+
t.strictEqual( isAlmostSameValue( y, expected[ i ], 2062 ), true, 'returns expected value' );
191166
}
192167
t.end();
193168
});

0 commit comments

Comments
 (0)