Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,18 @@
var tape = require( 'tape' );
var floor = require( '@stdlib/math/base/special/floor' );
var sqrt = require( '@stdlib/math/base/special/sqrt' );
var abs = require( '@stdlib/math/base/special/abs' );
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' );
var EPS = require( '@stdlib/constants/float32/eps' );
var Float32Array = require( '@stdlib/array/float32' );
var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' );
var snanstdevch = require( './../lib/ndarray.js' );


// VARIABLES //

var ULP = 1;


// TESTS //

tape( 'main export is a function', function test( t ) {
Expand All @@ -46,8 +50,6 @@ tape( 'the function has an arity of 5', function test( t ) {

tape( 'the function calculates the population standard deviation of a strided array (ignoring `NaN` values)', function test( t ) {
var expected;
var delta;
var tol;
var x;
var v;
var i;
Expand All @@ -56,17 +58,13 @@ tape( 'the function calculates the population standard deviation of a strided ar

v = snanstdevch( x.length, 0, x, 1, 0 );
expected = float64ToFloat32( sqrt( 53.5/(x.length-1) ) );
delta = abs( v - expected );
tol = 1.0 * EPS * abs( expected );
t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. 螖: '+delta+'.' );
t.strictEqual( isAlmostSameValuef( v, expected, ULP ), true, 'returns expected value' );

x = new Float32Array( [ 1.0, NaN, NaN, -2.0, NaN, -4.0, NaN, 5.0, NaN, 0.0, 3.0, NaN ] ); // eslint-disable-line max-len

v = snanstdevch( x.length, 0, x, 1, 0 );
expected = float64ToFloat32( sqrt( 53.5/(x.length-6) ) );
delta = abs( v - expected );
tol = 1.0 * EPS * abs( expected );
t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. 螖: '+delta+'.' );
t.strictEqual( isAlmostSameValuef( v, expected, ULP ), true, 'returns expected value' );

x = new Float32Array( [ -4.0, NaN ] );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@
var resolve = require( 'path' ).resolve;
var tape = require( 'tape' );
var floor = require( '@stdlib/math/base/special/floor' );
var abs = require( '@stdlib/math/base/special/abs' );
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' );
var EPS = require( '@stdlib/constants/float32/eps' );
var sqrt = require( '@stdlib/math/base/special/sqrt' );
var Float32Array = require( '@stdlib/array/float32' );
var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' );
var tryRequire = require( '@stdlib/utils/try-require' );


// VARIABLES //

var ULP = 1;
var snanstdevch = tryRequire( resolve( __dirname, './../lib/ndarray.native.js' ) );
var opts = {
'skip': ( snanstdevch instanceof Error )
Expand All @@ -55,8 +55,6 @@ tape( 'the function has an arity of 5', opts, function test( t ) {

tape( 'the function calculates the population standard deviation of a strided array (ignoring `NaN` values)', opts, function test( t ) {
var expected;
var delta;
var tol;
var x;
var v;
var i;
Expand All @@ -65,17 +63,13 @@ tape( 'the function calculates the population standard deviation of a strided ar

v = snanstdevch( x.length, 0, x, 1, 0 );
expected = float64ToFloat32( sqrt( 53.5/(x.length-1) ) );
delta = abs( v - expected );
tol = 1.0 * EPS * abs( expected );
t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. 螖: '+delta+'.' );
t.strictEqual( isAlmostSameValuef( v, expected, ULP ), true, 'returns expected value' );

x = new Float32Array( [ 1.0, NaN, NaN, -2.0, NaN, -4.0, NaN, 5.0, NaN, 0.0, 3.0, NaN ] ); // eslint-disable-line max-len

v = snanstdevch( x.length, 0, x, 1, 0 );
expected = float64ToFloat32( sqrt( 53.5/(x.length-6) ) );
delta = abs( v - expected );
tol = 1.0 * EPS * abs( expected );
t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. 螖: '+delta+'.' );
t.strictEqual( isAlmostSameValuef( v, expected, ULP ), true, 'returns expected value' );

x = new Float32Array( [ -4.0, NaN ] );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,19 @@

var tape = require( 'tape' );
var floor = require( '@stdlib/math/base/special/floor' );
var abs = require( '@stdlib/math/base/special/abs' );
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' );
var EPS = require( '@stdlib/constants/float32/eps' );
var sqrt = require( '@stdlib/math/base/special/sqrt' );
var Float32Array = require( '@stdlib/array/float32' );
var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' );
var snanstdevch = require( './../lib/snanstdevch.js' );


// VARIABLES //

var ULP = 1;


// TESTS //

tape( 'main export is a function', function test( t ) {
Expand All @@ -46,8 +50,6 @@ tape( 'the function has an arity of 4', function test( t ) {

tape( 'the function calculates the population standard deviation of a strided array (ignoring `NaN` values)', function test( t ) {
var expected;
var delta;
var tol;
var x;
var v;
var i;
Expand All @@ -56,17 +58,13 @@ tape( 'the function calculates the population standard deviation of a strided ar

v = snanstdevch( x.length, 0, x, 1 );
expected = float64ToFloat32( sqrt( 53.5/(x.length-1) ) );
delta = abs( v - expected );
tol = 1.0 * EPS * abs( expected );
t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. 螖: '+delta+'.' );
t.strictEqual( isAlmostSameValuef( v, expected, ULP ), true, 'returns expected value' );

x = new Float32Array( [ 1.0, NaN, NaN, -2.0, NaN, -4.0, NaN, 5.0, NaN, 0.0, 3.0, NaN ] ); // eslint-disable-line max-len

v = snanstdevch( x.length, 0, x, 1 );
expected = float64ToFloat32( sqrt( 53.5/(x.length-6) ) );
delta = abs( v - expected );
tol = 1.0 * EPS * abs( expected );
t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. 螖: '+delta+'.' );
t.strictEqual( isAlmostSameValuef( v, expected, ULP ), true, 'returns expected value' );

x = new Float32Array( [ -4.0, NaN ] );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,17 @@
var resolve = require( 'path' ).resolve;
var tape = require( 'tape' );
var floor = require( '@stdlib/math/base/special/floor' );
var abs = require( '@stdlib/math/base/special/abs' );
var isnanf = require( '@stdlib/math/base/assert/is-nanf' );
var float64ToFloat32 = require( '@stdlib/number/float64/base/to-float32' );
var EPS = require( '@stdlib/constants/float32/eps' );
var sqrt = require( '@stdlib/math/base/special/sqrt' );
var Float32Array = require( '@stdlib/array/float32' );
var isAlmostSameValuef = require( '@stdlib/number/float32/base/assert/is-almost-same-value' );
var tryRequire = require( '@stdlib/utils/try-require' );


// VARIABLES //

var ULP = 1;
var snanstdevch = tryRequire( resolve( __dirname, './../lib/snanstdevch.native.js' ) );
var opts = {
'skip': ( snanstdevch instanceof Error )
Expand All @@ -55,8 +55,6 @@ tape( 'the function has an arity of 4', opts, function test( t ) {

tape( 'the function calculates the population standard deviation of a strided array (ignoring `NaN` values)', opts, function test( t ) {
var expected;
var delta;
var tol;
var x;
var v;
var i;
Expand All @@ -65,17 +63,13 @@ tape( 'the function calculates the population standard deviation of a strided ar

v = snanstdevch( x.length, 0, x, 1 );
expected = float64ToFloat32( sqrt( 53.5/(x.length-1) ) );
delta = abs( v - expected );
tol = 1.0 * EPS * abs( expected );
t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. 螖: '+delta+'.' );
t.strictEqual( isAlmostSameValuef( v, expected, ULP ), true, 'returns expected value' );

x = new Float32Array( [ 1.0, NaN, NaN, -2.0, NaN, -4.0, NaN, 5.0, NaN, 0.0, 3.0, NaN ] ); // eslint-disable-line max-len

v = snanstdevch( x.length, 0, x, 1 );
expected = float64ToFloat32( sqrt( 53.5/(x.length-6) ) );
delta = abs( v - expected );
tol = 1.0 * EPS * abs( expected );
t.strictEqual( delta <= tol, true, 'within tolerance. Actual: '+v+'. E: '+expected+'. tol: '+tol+'. 螖: '+delta+'.' );
t.strictEqual( isAlmostSameValuef( v, expected, ULP ), true, 'returns expected value' );

x = new Float32Array( [ -4.0, NaN ] );

Expand Down
Loading