From fd8c1a4142b28470ed5e301cd8b8b8471557b934 Mon Sep 17 00:00:00 2001 From: ShraddheyaS Date: Mon, 23 Jul 2018 13:09:00 +0530 Subject: [PATCH 1/3] Completed all the TODO's --- .../math/base/complex/negate/README.md | 8 +++--- .../math/base/complex/negate/docs/repl.txt | 8 +++--- .../math/base/complex/negate/lib/cnegate.js | 12 ++++---- .../math/base/complex/negate/lib/index.js | 8 +++--- .../math/base/complex/negate/lib/main.js | 8 +++--- .../math/base/complex/negate/test/test.js | 28 ++++++++++++++++--- 6 files changed, 47 insertions(+), 25 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/README.md b/lib/node_modules/@stdlib/math/base/complex/negate/README.md index f7aabb8c8894..f8da89d38c58 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/README.md +++ b/lib/node_modules/@stdlib/math/base/complex/negate/README.md @@ -46,13 +46,13 @@ Negates a `complex` number comprised of a **real** component `re` and an **imagi ```javascript var v = cnegate( -4.2, 5.5 ); -// returns [ TODO, TODO ] +// returns [ 4.2, -5.5 ] v = cnegate( 0.0, 0.0 ); -// returns [ TODO, TODO ] +// returns [ 0.0, 0.0 ] v = cnegate( NaN, NaN ); -// returns [ TODO, TODO ] +// returns [ NaN, NaN ] ``` By default, the function returns real and imaginary components as a two-element `array`. To avoid unnecessary memory allocation, the function supports providing an output (destination) object. @@ -63,7 +63,7 @@ var Float64Array = require( '@stdlib/array/float64' ); var out = new Float64Array( 2 ); var v = cnegate( out, -4.2, 5.5 ); -// returns [ TODO, TODO ] +// returns [ 4.2, -5.5 ] var bool = ( v === out ); // returns true diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/docs/repl.txt b/lib/node_modules/@stdlib/math/base/complex/negate/docs/repl.txt index 36d244f0fe1b..17da52ec96ac 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/docs/repl.txt +++ b/lib/node_modules/@stdlib/math/base/complex/negate/docs/repl.txt @@ -20,13 +20,13 @@ Examples -------- - > var out = {{alias}}( TODO, TODO ) - TODO + > var out = {{alias}}( -4.2, 5.5 ) + [ 4.2, -5.5 ] // Provide an output array: > out = new {{alias:@stdlib/array/float64}}( 2 ); - > var v = {{alias}}( out, TODO, TODO ) - [ TODO, TODO ] + > var v = {{alias}}( out, -4.2, 5.5 ) + [ 4.2, -5.5 ] > var bool = ( v === out ) true diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/lib/cnegate.js b/lib/node_modules/@stdlib/math/base/complex/negate/lib/cnegate.js index ecfd4aa83d3b..5c13f8f564b3 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/lib/cnegate.js +++ b/lib/node_modules/@stdlib/math/base/complex/negate/lib/cnegate.js @@ -32,8 +32,8 @@ * @example * var out = new Array( 2 ); * -* var v = cnegate( out, TODO, TODO ); -* // returns [ TODO, TODO ] +* var v = cnegate( out, -4.2, 5.5 ); +* // returns [ 4.2, -5.5 ] * * var bool = ( v === out ); * // returns true @@ -41,15 +41,17 @@ * @example * var out = new Array( 2 ); * var v = cnegate( out, 0.0, 0.0 ); -* // returns [ TODO, TODO ] +* // returns [ 0.0, 0.0 ] * * @example * var out = new Array( 2 ); * var v = cnegate( out, NaN, NaN ); -* // returns [ TODO, TODO ] +* // returns [ NaN, NaN ] */ function cnegate( out, re, im ) { - // TODO: implementation + out[ 0 ] = -re; + out[ 1 ] = -im; + return out; } diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/lib/index.js b/lib/node_modules/@stdlib/math/base/complex/negate/lib/index.js index f694f0db9de6..90fe01ad95d2 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/lib/index.js +++ b/lib/node_modules/@stdlib/math/base/complex/negate/lib/index.js @@ -27,13 +27,13 @@ * var cnegate = require( '@stdlib/math/base/complex/negate' ); * * var v = cnegate( -4.2, 5.5 ); -* // returns [ TODO, TODO ] +* // returns [ 4.2, -5.5 ] * * v = cnegate( 0.0, 0.0 ); -* // returns [ TODO, TODO ] +* // returns [ 0.0, 0.0 ] * * v = cnegate( NaN, NaN ); -* // returns [ TODO, TODO ] +* // returns [ NaN, NaN ] * * @example * var cnegate = require( '@stdlib/math/base/complex/negate' ); @@ -41,7 +41,7 @@ * var out = new Array( 2 ); * * var v = cnegate( out, -4.2, 5.5 ); -* // returns [ TODO, TODO ] +* // returns [ 4.2, -5.5 ] * * var bool = ( v === out ); * // returns true diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/lib/main.js b/lib/node_modules/@stdlib/math/base/complex/negate/lib/main.js index cdf3067d487d..a546aedb278d 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/complex/negate/lib/main.js @@ -35,24 +35,24 @@ var negate = require( './cnegate.js' ); * * @example * var v = cnegate( -4.2, 5.5 ); -* // returns [ TODO, TODO ] +* // returns [ 4.2, -5.5 ] * * @example * var out = new Array( 2 ); * * var v = cnegate( out, -4.2, 5.5 ); -* // returns [ TODO, TODO ] +* // returns [ 4.2, -5.5 ] * * var bool = ( v === out ); * // returns true * * @example * var v = cnegate( 0.0, 0.0 ); -* // returns [ TODO, TODO ] +* // returns [ 0.0, 0.0 ] * * @example * var v = cnegate( NaN, NaN ); -* // returns [ TODO, TODO ] +* // returns [ NaN, NaN ] */ function cnegate( out, re, im ) { if ( arguments.length === 2 ) { diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js b/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js index 2fd279d6ff9c..e37d864b5bc7 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js +++ b/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js @@ -42,8 +42,16 @@ tape( 'the function negates real and imaginary components', function test( t ) { var expected; var actual; - // TODO: tests + actual = cnegate( -4.2, 5.5 ); + expected = [ 4.2, -5.5 ]; + t.deepEqual( actual, expected, 'returns expected value' ); + + actual = cnegate( 9.99999, 0.1 ); + expected = [ -9.99999, -0.1 ]; + t.deepEqual( actual, expected, 'returns expected value' ); + actual = cnegate( 0.0, 0.0 ); + expected = [ 0.0, 0.0 ]; t.deepEqual( actual, expected, 'returns expected value' ); t.end(); @@ -54,7 +62,10 @@ tape( 'the function negates real and imaginary components (output array)', funct var actual; var out; - // TODO: tests + out = new Array( 2 ); + actual = cnegate( out, -4.2, 5.5 ); + + expected = [ 4.2, -5.5 ]; t.deepEqual( actual, expected, 'returns expected value' ); t.strictEqual( actual, out, 'returns output value' ); @@ -67,7 +78,10 @@ tape( 'the function negates real and imaginary components (output typed array)', var actual; var out; - // TODO: tests + out = new Float64Array( 2 ); + actual = cnegate( out, 9.99999, 0.1 ); + + expected = new Float64Array( [ -9.99999, -0.1 ] ); t.deepEqual( actual, expected, 'returns expected value' ); t.strictEqual( actual, out, 'returns output value' ); @@ -80,7 +94,13 @@ tape( 'the function negates real and imaginary components (output object)', func var actual; var out; - // TODO: tests + out = {}; + actual = cnegate( out, 4.2, -5.5 ); + + expected = { + '0': -4.2, + '1': 5.5 + }; t.deepEqual( actual, expected, 'returns expected value' ); t.strictEqual( actual, out, 'returns output value' ); From b50f6c3290347e379e0c30b99479cbb25be411e9 Mon Sep 17 00:00:00 2001 From: ShraddheyaS Date: Mon, 23 Jul 2018 14:47:23 +0530 Subject: [PATCH 2/3] Fixed the minus zero results --- lib/node_modules/@stdlib/math/base/complex/negate/README.md | 2 +- .../@stdlib/math/base/complex/negate/lib/cnegate.js | 2 +- .../@stdlib/math/base/complex/negate/lib/index.js | 2 +- lib/node_modules/@stdlib/math/base/complex/negate/lib/main.js | 2 +- .../@stdlib/math/base/complex/negate/test/test.js | 4 ++++ 5 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/README.md b/lib/node_modules/@stdlib/math/base/complex/negate/README.md index f8da89d38c58..4864b14ac45f 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/README.md +++ b/lib/node_modules/@stdlib/math/base/complex/negate/README.md @@ -49,7 +49,7 @@ var v = cnegate( -4.2, 5.5 ); // returns [ 4.2, -5.5 ] v = cnegate( 0.0, 0.0 ); -// returns [ 0.0, 0.0 ] +// returns [ -0.0, -0.0 ] v = cnegate( NaN, NaN ); // returns [ NaN, NaN ] diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/lib/cnegate.js b/lib/node_modules/@stdlib/math/base/complex/negate/lib/cnegate.js index 5c13f8f564b3..c2ef6250787e 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/lib/cnegate.js +++ b/lib/node_modules/@stdlib/math/base/complex/negate/lib/cnegate.js @@ -41,7 +41,7 @@ * @example * var out = new Array( 2 ); * var v = cnegate( out, 0.0, 0.0 ); -* // returns [ 0.0, 0.0 ] +* // returns [ -0.0, -0.0 ] * * @example * var out = new Array( 2 ); diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/lib/index.js b/lib/node_modules/@stdlib/math/base/complex/negate/lib/index.js index 90fe01ad95d2..c452649c537c 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/lib/index.js +++ b/lib/node_modules/@stdlib/math/base/complex/negate/lib/index.js @@ -30,7 +30,7 @@ * // returns [ 4.2, -5.5 ] * * v = cnegate( 0.0, 0.0 ); -* // returns [ 0.0, 0.0 ] +* // returns [ -0.0, -0.0 ] * * v = cnegate( NaN, NaN ); * // returns [ NaN, NaN ] diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/lib/main.js b/lib/node_modules/@stdlib/math/base/complex/negate/lib/main.js index a546aedb278d..f300dd85cb3d 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/lib/main.js +++ b/lib/node_modules/@stdlib/math/base/complex/negate/lib/main.js @@ -48,7 +48,7 @@ var negate = require( './cnegate.js' ); * * @example * var v = cnegate( 0.0, 0.0 ); -* // returns [ 0.0, 0.0 ] +* // returns [ -0.0, -0.0 ] * * @example * var v = cnegate( NaN, NaN ); diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js b/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js index e37d864b5bc7..eb30b1bfbc6d 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js +++ b/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js @@ -51,6 +51,10 @@ tape( 'the function negates real and imaginary components', function test( t ) { t.deepEqual( actual, expected, 'returns expected value' ); actual = cnegate( 0.0, 0.0 ); + expected = [ -0.0, -0.0 ]; + t.deepEqual( actual, expected, 'returns expected value' ); + + actual = cnegate( -0.0, -0.0 ); expected = [ 0.0, 0.0 ]; t.deepEqual( actual, expected, 'returns expected value' ); From d0b90355220cdfa3db708df71f3c2aa7db96d9b4 Mon Sep 17 00:00:00 2001 From: ShraddheyaS Date: Mon, 23 Jul 2018 14:56:19 +0530 Subject: [PATCH 3/3] Edited the redundant tests which are being checked later --- .../@stdlib/math/base/complex/negate/test/test.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js b/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js index eb30b1bfbc6d..ccec6c0bfbf4 100644 --- a/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js +++ b/lib/node_modules/@stdlib/math/base/complex/negate/test/test.js @@ -50,12 +50,12 @@ tape( 'the function negates real and imaginary components', function test( t ) { expected = [ -9.99999, -0.1 ]; t.deepEqual( actual, expected, 'returns expected value' ); - actual = cnegate( 0.0, 0.0 ); - expected = [ -0.0, -0.0 ]; + actual = cnegate( 4.0, 7.0 ); + expected = [ -4.0, -7.0 ]; t.deepEqual( actual, expected, 'returns expected value' ); - actual = cnegate( -0.0, -0.0 ); - expected = [ 0.0, 0.0 ]; + actual = cnegate( -4.0, -7.0 ); + expected = [ 4.0, 7.0 ]; t.deepEqual( actual, expected, 'returns expected value' ); t.end();