|
21 | 21 | // MODULES //
|
22 | 22 |
|
23 | 23 | var tape = require( 'tape' );
|
| 24 | +var isPositiveZero = require( '@stdlib/math/base/assert/is-positive-zero' ); |
24 | 25 | var toAccessorArray = require( '@stdlib/array/base/to-accessor-array' );
|
25 | 26 | var gnansumkbn2 = require( './../lib/ndarray.js' );
|
26 | 27 |
|
@@ -108,6 +109,40 @@ tape( 'the function calculates the sum of strided array elements (ignoring NaN v
|
108 | 109 | t.end();
|
109 | 110 | });
|
110 | 111 |
|
| 112 | +tape( 'the function does not preserve the sign of zero', function test( t ) { |
| 113 | + var x; |
| 114 | + var v; |
| 115 | + |
| 116 | + x = [ -0.0, -0.0, -0.0 ]; |
| 117 | + |
| 118 | + v = gnansumkbn2( x.length, x, 1, 0 ); |
| 119 | + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); |
| 120 | + |
| 121 | + x = [ 0.0, -0.0, -0.0 ]; |
| 122 | + |
| 123 | + v = gnansumkbn2( x.length, x, 1, 0 ); |
| 124 | + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); |
| 125 | + |
| 126 | + t.end(); |
| 127 | +}); |
| 128 | + |
| 129 | +tape( 'the function does not preserve the sign of zero (accessors)', function test( t ) { |
| 130 | + var x; |
| 131 | + var v; |
| 132 | + |
| 133 | + x = toAccessorArray( [ -0.0, -0.0, -0.0 ] ); |
| 134 | + |
| 135 | + v = gnansumkbn2( x.length, x, 1, 0 ); |
| 136 | + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); |
| 137 | + |
| 138 | + x = toAccessorArray( [ 0.0, -0.0, -0.0 ] ); |
| 139 | + |
| 140 | + v = gnansumkbn2( x.length, x, 1, 0 ); |
| 141 | + t.strictEqual( isPositiveZero( v ), true, 'returns expected value' ); |
| 142 | + |
| 143 | + t.end(); |
| 144 | +}); |
| 145 | + |
111 | 146 | tape( 'if provided an `N` parameter less than or equal to `0`, the function returns `0.0`', function test( t ) {
|
112 | 147 | var x;
|
113 | 148 | var v;
|
|
0 commit comments