diff --git a/lib/node_modules/@stdlib/stats/incr/nancovariance/test/test.js b/lib/node_modules/@stdlib/stats/incr/nancovariance/test/test.js index e0e6dd47344e..2f13f24ef6d9 100644 --- a/lib/node_modules/@stdlib/stats/incr/nancovariance/test/test.js +++ b/lib/node_modules/@stdlib/stats/incr/nancovariance/test/test.js @@ -21,8 +21,7 @@ // MODULES // var tape = require( 'tape' ); -var abs = require( '@stdlib/math/base/special/abs' ); -var EPS = require( '@stdlib/constants/float64/eps' ); +var isAlmostSameValue = require( '@stdlib/assert/is-almost-same-value' ); var incrnancovariance = require( './../lib' ); @@ -36,17 +35,17 @@ tape( 'main export is a function', function test( t ) { tape( 'the function returns an accumulator function', function test( t ) { var acc = incrnancovariance(); - t.strictEqual( typeof acc, 'function', 'returns a function' ); + t.strictEqual( typeof acc, 'function', 'returns expected value' ); t.end(); }); tape( 'the accumulator function returns null if no valid pairs have been provided', function test( t ) { var acc = incrnancovariance(); - t.equal( acc(), null, 'returns null initially' ); + t.strictEqual( acc(), null, 'returns expected value' ); // Provide an invalid pair: acc( NaN, 5.0 ); - t.equal( acc(), null, 'still null after invalid pair' ); + t.strictEqual( acc(), null, 'returns expected value' ); t.end(); }); @@ -55,54 +54,63 @@ tape( 'the accumulator function returns null if only one valid pair has been pro // Add the first valid pair: acc( 2.0, 1.0 ); - t.equal( acc(), null, 'returns null for single valid pair' ); + t.strictEqual( acc(), null, 'returns expected value' ); t.end(); }); tape( 'the accumulator function computes sample covariance once two valid pairs have been provided', function test( t ) { - var acc = incrnancovariance(); + var acc; var cov; + acc = incrnancovariance(); + // Pair #1: cov = acc( 2.0, 1.0 ); - t.equal( cov, null, 'still null with only one valid pair' ); + t.strictEqual( cov, null, 'returns expected value' ); // Pair #2: cov = acc( 4.0, 5.0 ); - t.equal( cov, 4.0, 'returns sample covariance after second valid pair' ); + t.strictEqual( cov, 4.0, 'returns expected value' ); // Current covariance with no arguments: - t.equal( acc(), 4.0, 'returns current covariance' ); + t.strictEqual( acc(), 4.0, 'returns expected value' ); t.end(); }); tape( 'the accumulator function skips pairs containing NaN', function test( t ) { - var acc = incrnancovariance(); + var acc; var cov; + acc = incrnancovariance(); + // Provide first valid pair: cov = acc( 2.0, 1.0 ); - t.equal( cov, null, 'null with only one valid pair' ); + t.strictEqual( cov, null, 'returns expected value' ); // Invalid pair => skip: cov = acc( NaN, 10.0 ); - t.equal( cov, null, 'still null, as second pair is invalid' ); + t.strictEqual( cov, null, 'returns expected value' ); // Provide second valid pair: cov = acc( 2.0, 5.0 ); + // For (2,1) and (2,5): same X => covariance=0 - t.equal( cov, 0.0, 'returns 0.0 for these pairs' ); + t.strictEqual( cov, 0.0, 'returns expected value' ); // Provide third valid pair: cov = acc( 5.0, 9.0 ); - t.equal( typeof cov, 'number', 'returns a number after third valid pair' ); + t.strictEqual( typeof cov, 'number', 'returns expected value' ); t.end(); }); tape( 'the accumulator function computes correct covariance for multiple valid pairs interspersed with invalid pairs', function test( t ) { - var expected = 14.0/3.0; - var delta; - var data = [ + var expected; + var data; + var acc; + var cov; + var i; + + data = [ [ 2.0, 1.0 ], [ NaN, 4.0 ], [ 4.0, 5.0 ], @@ -110,16 +118,13 @@ tape( 'the accumulator function computes correct covariance for multiple valid p [ NaN, NaN ], [ 5.0, 11.0 ] ]; - var acc = incrnancovariance(); - var cov; - var tol; - var i; + acc = incrnancovariance(); for ( i = 0; i < data.length; i++ ) { cov = acc( data[ i ][ 0 ], data[ i ][ 1 ] ); } - delta = abs( cov - expected ); - tol = EPS * abs( expected ); - t.equal( typeof cov, 'number', 'returns a number' ); - t.ok( delta < tol, 'within tolerance. Actual: '+cov+'. Expected: '+expected+'. delta: '+delta+'. tol: '+tol+'.' ); + t.strictEqual( typeof cov, 'number', 'returns expected value' ); + + expected = 14.0/3.0; + t.strictEqual( isAlmostSameValue( cov, expected, 0 ), true, 'returns expected value' ); t.end(); });