Skip to content

Commit fa314b2

Browse files
authored
test: migrate stats/base/dists/logistic/pdf to ULP-based assertions
PR-URL: #15024 Reviewed-by: Athan Reines <kgryte@gmail.com> Signed-off-by: Athan Reines <kgryte@gmail.com> Ref: #11352
1 parent 21a26f1 commit fa314b2

3 files changed

Lines changed: 18 additions & 90 deletions

File tree

lib/node_modules/@stdlib/stats/base/dists/logistic/pdf/test/test.factory.js

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
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' );
25+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
2626
var PINF = require( '@stdlib/constants/float64/pinf' );
2727
var NINF = require( '@stdlib/constants/float64/ninf' );
2828
var EPS = require( '@stdlib/constants/float64/eps' );
@@ -156,9 +156,7 @@ tape( 'if `s` equals `0`, the created function evaluates a degenerate distributi
156156

157157
tape( 'the created function evaluates the pdf for `x` given positive `mu`', function test( t ) {
158158
var expected;
159-
var delta;
160159
var pdf;
161-
var tol;
162160
var mu;
163161
var s;
164162
var x;
@@ -172,24 +170,16 @@ tape( 'the created function evaluates the pdf for `x` given positive `mu`', func
172170
for ( i = 0; i < x.length; i++ ) {
173171
pdf = factory( mu[i], s[i] );
174172
y = pdf( x[i] );
175-
if ( expected[i] !== null && !(expected[i] === 0.0 && y < EPS ) ) {
176-
if ( y === expected[i] ) {
177-
t.strictEqual( y, expected[i], 'x: '+x[i]+', mu: '+mu[i]+', s: '+s[i]+', y: '+y+', expected: '+expected[i] );
178-
} else {
179-
delta = abs( y - expected[ i ] );
180-
tol = 3.0 * EPS * abs( expected[ i ] );
181-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. s: '+s[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
182-
}
173+
if ( expected[i] !== null && !( expected[i] === 0.0 && y < EPS ) ) {
174+
t.strictEqual( isAlmostSameValue( y, expected[i], 4 ), true, 'returns expected value' );
183175
}
184176
}
185177
t.end();
186178
});
187179

188180
tape( 'the created function evaluates the pdf for `x` given negative `mu`', function test( t ) {
189181
var expected;
190-
var delta;
191182
var pdf;
192-
var tol;
193183
var mu;
194184
var s;
195185
var x;
@@ -203,24 +193,16 @@ tape( 'the created function evaluates the pdf for `x` given negative `mu`', func
203193
for ( i = 0; i < x.length; i++ ) {
204194
pdf = factory( mu[i], s[i] );
205195
y = pdf( x[i] );
206-
if ( expected[i] !== null && !(expected[i] === 0.0 && y < EPS ) ) {
207-
if ( y === expected[i] ) {
208-
t.strictEqual( y, expected[i], 'x: '+x[i]+', mu: '+mu[i]+', s: '+s[i]+', y: '+y+', expected: '+expected[i] );
209-
} else {
210-
delta = abs( y - expected[ i ] );
211-
tol = 3.0 * EPS * abs( expected[ i ] );
212-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. s: '+s[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
213-
}
196+
if ( expected[i] !== null && !( expected[i] === 0.0 && y < EPS ) ) {
197+
t.strictEqual( isAlmostSameValue( y, expected[i], 4 ), true, 'returns expected value' );
214198
}
215199
}
216200
t.end();
217201
});
218202

219203
tape( 'the created function evaluates the pdf for `x` given large variance ( = large `s`)', function test( t ) {
220204
var expected;
221-
var delta;
222205
var pdf;
223-
var tol;
224206
var mu;
225207
var s;
226208
var x;
@@ -235,13 +217,7 @@ tape( 'the created function evaluates the pdf for `x` given large variance ( = l
235217
pdf = factory( mu[i], s[i] );
236218
y = pdf( x[i] );
237219
if ( expected[i] !== null ) {
238-
if ( y === expected[i] ) {
239-
t.strictEqual( y, expected[i], 'x: '+x[i]+', mu: '+mu[i]+', s: '+s[i]+', y: '+y+', expected: '+expected[i] );
240-
} else {
241-
delta = abs( y - expected[ i ] );
242-
tol = 3.0 * EPS * abs( expected[ i ] );
243-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. s: '+s[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
244-
}
220+
t.strictEqual( isAlmostSameValue( y, expected[i], 4 ), true, 'returns expected value' );
245221
}
246222
}
247223
t.end();

lib/node_modules/@stdlib/stats/base/dists/logistic/pdf/test/test.native.js

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var resolve = require( 'path' ).resolve;
2424
var tape = require( 'tape' );
2525
var tryRequire = require( '@stdlib/utils/try-require' );
2626
var isnan = require( '@stdlib/math/base/assert/is-nan' );
27-
var abs = require( '@stdlib/math/base/special/abs' );
27+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
2828
var PINF = require( '@stdlib/constants/float64/pinf' );
2929
var NINF = require( '@stdlib/constants/float64/ninf' );
3030
var EPS = require( '@stdlib/constants/float64/eps' );
@@ -122,8 +122,6 @@ tape( 'if provided `s` equal to `0`, the function evaluates a degenerate distrib
122122

123123
tape( 'the function evaluates the pdf for `x` given positive `mu`', opts, function test( t ) {
124124
var expected;
125-
var delta;
126-
var tol;
127125
var mu;
128126
var x;
129127
var s;
@@ -136,23 +134,15 @@ tape( 'the function evaluates the pdf for `x` given positive `mu`', opts, functi
136134
s = positiveMean.s;
137135
for ( i = 0; i < x.length; i++ ) {
138136
y = pdf( x[i], mu[i], s[i] );
139-
if ( expected[i] !== null && !(expected[i] === 0.0 && y < EPS ) ) {
140-
if ( y === expected[i] ) {
141-
t.strictEqual( y, expected[i], 'x: '+x[i]+', mu: '+mu[i]+', s: '+s[i]+', y: '+y+', expected: '+expected[i] );
142-
} else {
143-
delta = abs( y - expected[ i ] );
144-
tol = 3.0 * EPS * abs( expected[ i ] );
145-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. s: '+s[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
146-
}
137+
if ( expected[i] !== null && !( expected[i] === 0.0 && y < EPS ) ) {
138+
t.strictEqual( isAlmostSameValue( y, expected[i], 4 ), true, 'returns expected value' );
147139
}
148140
}
149141
t.end();
150142
});
151143

152144
tape( 'the function evaluates the pdf for `x` given negative `mu`', opts, function test( t ) {
153145
var expected;
154-
var delta;
155-
var tol;
156146
var mu;
157147
var x;
158148
var s;
@@ -165,23 +155,15 @@ tape( 'the function evaluates the pdf for `x` given negative `mu`', opts, functi
165155
s = negativeMean.s;
166156
for ( i = 0; i < x.length; i++ ) {
167157
y = pdf( x[i], mu[i], s[i] );
168-
if ( expected[i] !== null && !(expected[i] === 0.0 && y < EPS ) ) {
169-
if ( y === expected[i] ) {
170-
t.strictEqual( y, expected[i], 'x: '+x[i]+', mu: '+mu[i]+', s: '+s[i]+', y: '+y+', expected: '+expected[i] );
171-
} else {
172-
delta = abs( y - expected[ i ] );
173-
tol = 3.0 * EPS * abs( expected[ i ] );
174-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. s: '+s[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
175-
}
158+
if ( expected[i] !== null && !( expected[i] === 0.0 && y < EPS ) ) {
159+
t.strictEqual( isAlmostSameValue( y, expected[i], 4 ), true, 'returns expected value' );
176160
}
177161
}
178162
t.end();
179163
});
180164

181165
tape( 'the function evaluates the pdf for `x` given large variance ( = large `s` )', opts, function test( t ) {
182166
var expected;
183-
var delta;
184-
var tol;
185167
var mu;
186168
var x;
187169
var s;
@@ -195,13 +177,7 @@ tape( 'the function evaluates the pdf for `x` given large variance ( = large `s`
195177
for ( i = 0; i < x.length; i++ ) {
196178
y = pdf( x[i], mu[i], s[i] );
197179
if ( expected[i] !== null ) {
198-
if ( y === expected[i] ) {
199-
t.strictEqual( y, expected[i], 'x: '+x[i]+', mu: '+mu[i]+', s: '+s[i]+', y: '+y+', expected: '+expected[i] );
200-
} else {
201-
delta = abs( y - expected[ i ] );
202-
tol = 3.0 * EPS * abs( expected[ i ] );
203-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. s: '+s[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
204-
}
180+
t.strictEqual( isAlmostSameValue( y, expected[i], 4 ), true, 'returns expected value' );
205181
}
206182
}
207183
t.end();

lib/node_modules/@stdlib/stats/base/dists/logistic/pdf/test/test.pdf.js

Lines changed: 6 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
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' );
25+
var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' );
2626
var PINF = require( '@stdlib/constants/float64/pinf' );
2727
var NINF = require( '@stdlib/constants/float64/ninf' );
2828
var EPS = require( '@stdlib/constants/float64/eps' );
@@ -113,8 +113,6 @@ tape( 'if provided `s` equal to `0`, the function evaluates a degenerate distrib
113113

114114
tape( 'the function evaluates the pdf for `x` given positive `mu`', function test( t ) {
115115
var expected;
116-
var delta;
117-
var tol;
118116
var mu;
119117
var x;
120118
var s;
@@ -127,23 +125,15 @@ tape( 'the function evaluates the pdf for `x` given positive `mu`', function tes
127125
s = positiveMean.s;
128126
for ( i = 0; i < x.length; i++ ) {
129127
y = pdf( x[i], mu[i], s[i] );
130-
if ( expected[i] !== null && !(expected[i] === 0.0 && y < EPS ) ) {
131-
if ( y === expected[i] ) {
132-
t.strictEqual( y, expected[i], 'x: '+x[i]+', mu: '+mu[i]+', s: '+s[i]+', y: '+y+', expected: '+expected[i] );
133-
} else {
134-
delta = abs( y - expected[ i ] );
135-
tol = 3.0 * EPS * abs( expected[ i ] );
136-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. s: '+s[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
137-
}
128+
if ( expected[i] !== null && !( expected[i] === 0.0 && y < EPS ) ) {
129+
t.strictEqual( isAlmostSameValue( y, expected[i], 4 ), true, 'returns expected value' );
138130
}
139131
}
140132
t.end();
141133
});
142134

143135
tape( 'the function evaluates the pdf for `x` given negative `mu`', function test( t ) {
144136
var expected;
145-
var delta;
146-
var tol;
147137
var mu;
148138
var x;
149139
var s;
@@ -156,23 +146,15 @@ tape( 'the function evaluates the pdf for `x` given negative `mu`', function tes
156146
s = negativeMean.s;
157147
for ( i = 0; i < x.length; i++ ) {
158148
y = pdf( x[i], mu[i], s[i] );
159-
if ( expected[i] !== null && !(expected[i] === 0.0 && y < EPS ) ) {
160-
if ( y === expected[i] ) {
161-
t.strictEqual( y, expected[i], 'x: '+x[i]+', mu: '+mu[i]+', s: '+s[i]+', y: '+y+', expected: '+expected[i] );
162-
} else {
163-
delta = abs( y - expected[ i ] );
164-
tol = 3.0 * EPS * abs( expected[ i ] );
165-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. s: '+s[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
166-
}
149+
if ( expected[i] !== null && !( expected[i] === 0.0 && y < EPS ) ) {
150+
t.strictEqual( isAlmostSameValue( y, expected[i], 4 ), true, 'returns expected value' );
167151
}
168152
}
169153
t.end();
170154
});
171155

172156
tape( 'the function evaluates the pdf for `x` given large variance ( = large `s` )', function test( t ) {
173157
var expected;
174-
var delta;
175-
var tol;
176158
var mu;
177159
var x;
178160
var s;
@@ -186,13 +168,7 @@ tape( 'the function evaluates the pdf for `x` given large variance ( = large `s`
186168
for ( i = 0; i < x.length; i++ ) {
187169
y = pdf( x[i], mu[i], s[i] );
188170
if ( expected[i] !== null ) {
189-
if ( y === expected[i] ) {
190-
t.strictEqual( y, expected[i], 'x: '+x[i]+', mu: '+mu[i]+', s: '+s[i]+', y: '+y+', expected: '+expected[i] );
191-
} else {
192-
delta = abs( y - expected[ i ] );
193-
tol = 3.0 * EPS * abs( expected[ i ] );
194-
t.ok( delta <= tol, 'within tolerance. x: '+x[ i ]+'. mu: '+mu[i]+'. s: '+s[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' );
195-
}
171+
t.strictEqual( isAlmostSameValue( y, expected[i], 4 ), true, 'returns expected value' );
196172
}
197173
}
198174
t.end();

0 commit comments

Comments
 (0)