diff --git a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/test/test.native.js b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/test/test.native.js index dba5bf732cfb..3c324e237505 100644 --- a/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/test/test.native.js +++ b/lib/node_modules/@stdlib/stats/base/dists/bernoulli/quantile/test/test.native.js @@ -20,8 +20,10 @@ // MODULES // +var resolve = require( 'path' ).resolve; var tape = require( 'tape' ); var isnan = require( '@stdlib/math/base/assert/is-nan' ); +var tryRequire = require( '@stdlib/utils/try-require' ); var abs = require( '@stdlib/math/base/special/abs' ); var NINF = require( '@stdlib/constants/float64/ninf' ); var EPS = require( '@stdlib/constants/float64/eps' ); @@ -34,15 +36,23 @@ var smallP = require( './fixtures/julia/small_p.json' ); var largeP = require( './fixtures/julia/large_p.json' ); +// VARIABLES // + +var mgf = tryRequire( resolve( __dirname, './../lib/native.js' ) ); +var opts = { + 'skip': ( mgf instanceof Error ) +}; + + // TESTS // -tape( 'main export is a function', function test( t ) { +tape( 'main export is a function', opts, function test( t ) { t.ok( true, __filename ); t.strictEqual( typeof quantile, 'function', 'main export is a function' ); t.end(); }); -tape( 'if provided `NaN` for any parameter, the function returns `NaN`', function test( t ) { +tape( 'if provided `NaN` for any parameter, the function returns `NaN`', opts, function test( t ) { var y = quantile( NaN, 1.0 ); t.equal( isnan( y ), true, 'returns NaN' ); y = quantile( 0.0, NaN ); @@ -50,7 +60,7 @@ tape( 'if provided `NaN` for any parameter, the function returns `NaN`', functio t.end(); }); -tape( 'if provided a number outside `[0,1]` for `r` and a valid `p`, the function returns `NaN`', function test( t ) { +tape( 'if provided a number outside `[0,1]` for `r` and a valid `p`, the function returns `NaN`', opts, function test( t ) { var y = quantile( 2.2, 0.8 ); t.equal( isnan( y ), true, 'returns true' ); y = quantile( -0.2, 0.8 ); @@ -58,7 +68,7 @@ tape( 'if provided a number outside `[0,1]` for `r` and a valid `p`, the functio t.end(); }); -tape( 'if provided a success probability `p` outside `[0,1]`, the function returns `NaN`', function test( t ) { +tape( 'if provided a success probability `p` outside `[0,1]`, the function returns `NaN`', opts, function test( t ) { var y; y = quantile( 0.8, 1.5 ); @@ -73,52 +83,28 @@ tape( 'if provided a success probability `p` outside `[0,1]`, the function retur t.end(); }); -tape( 'the function evaluates the quantile for `r` given small parameter `p`', function test( t ) { - var expected; - var delta; - var tol; - var r; - var p; - var y; - var i; - - expected = smallP.expected; - r = smallP.r; - p = smallP.p; - for ( i = 0; i < r.length; i++ ) { - y = quantile( r[i], p[i] ); - if ( y === expected[i] ) { - t.equal( y, expected[i], 'r: '+r[i]+', p: '+p[i]+', y: '+y+', expected: '+expected[i] ); - } else { - delta = abs( y - expected[ i ] ); - tol = 1.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. r: '+r[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); - } - } - t.end(); +tape( 'the function evaluates the quantile for `r` given small parameter `p`', opts, function test( t ) { + var expected = smallP.expected; + var r = smallP.r; + var p = smallP.p; + var y; + + for ( var i = 0; i < r.length; i++ ) { + y = quantile( r[i], p[i] ); + t.equal( y, expected[i], 'r: ' + r[i] + ', p: ' + p[i] + ', y: ' + y + ', expected: ' + expected[i] ); + } + t.end(); }); -tape( 'the function evaluates the quantile for `r` given large parameter `p`', function test( t ) { - var expected; - var delta; - var tol; - var r; - var p; - var y; - var i; - - expected = largeP.expected; - r = largeP.r; - p = largeP.p; - for ( i = 0; i < r.length; i++ ) { - y = quantile( r[i], p[i] ); - if ( y === expected[i] ) { - t.equal( y, expected[i], 'r: '+r[i]+', p: '+p[i]+', y: '+y+', expected: '+expected[i] ); - } else { - delta = abs( y - expected[ i ] ); - tol = 1.0 * EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. r: '+r[ i ]+'. p: '+p[i]+'. y: '+y+'. E: '+expected[ i ]+'. Δ: '+delta+'. tol: '+tol+'.' ); - } - } - t.end(); -}); +tape( 'the function evaluates the quantile for `r` given large parameter `p`', opts, function test( t ) { + var expected = largeP.expected; + var r = largeP.r; + var p = largeP.p; + var y; + + for ( var i = 0; i < r.length; i++ ) { + y = quantile( r[i], p[i] ); + t.equal( y, expected[i], 'r: ' + r[i] + ', p: ' + p[i] + ', y: ' + y + ', expected: ' + expected[i] ); + } + t.end(); +}); \ No newline at end of file