diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9ab8cc667fff..0a4bc8a5c757 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -10,9 +10,7 @@ "postCreateCommand": "./.devcontainer/post-create", "customizations": { "codespaces": { - "openFiles": [ - "README.md" - ] + "openFiles": ["README.md"] }, "vscode": { "settings": { diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/README.md b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/README.md similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/README.md rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/README.md diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/benchmark/benchmark.js b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/benchmark.js similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/benchmark/benchmark.js rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/benchmark.js diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/benchmark/benchmark.native.js b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/benchmark.native.js similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/benchmark/benchmark.native.js rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/benchmark.native.js diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/benchmark/c/Makefile b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/c/Makefile similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/benchmark/c/Makefile rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/c/Makefile diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/benchmark/c/benchmark.c b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/c/benchmark.c similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/benchmark/c/benchmark.c rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/c/benchmark.c diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/benchmark/c/native/Makefile b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/c/native/Makefile similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/benchmark/c/native/Makefile rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/c/native/Makefile diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/benchmark/c/native/benchmark.c b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/c/native/benchmark.c similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/benchmark/c/native/benchmark.c rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/benchmark/c/native/benchmark.c diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/binding.gyp b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/binding.gyp similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/binding.gyp rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/binding.gyp diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/docs/img/equation_arcvercosine.svg b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/docs/img/equation_arcvercosine.svg similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/docs/img/equation_arcvercosine.svg rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/docs/img/equation_arcvercosine.svg diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/docs/repl.txt similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/docs/repl.txt rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/docs/repl.txt diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/docs/types/index.d.ts b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/docs/types/index.d.ts similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/docs/types/index.d.ts rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/docs/types/index.d.ts diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/docs/types/test.ts b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/docs/types/test.ts similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/docs/types/test.ts rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/docs/types/test.ts diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/examples/c/Makefile b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/examples/c/Makefile similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/examples/c/Makefile rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/examples/c/Makefile diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/examples/c/example.c b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/examples/c/example.c similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/examples/c/example.c rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/examples/c/example.c diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/examples/index.js b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/examples/index.js similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/examples/index.js rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/examples/index.js diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/include.gypi b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/include.gypi similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/include.gypi rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/include.gypi diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/include/stdlib/math/base/special/avercos.h b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/include/stdlib/math/base/special/avercos.h similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/include/stdlib/math/base/special/avercos.h rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/include/stdlib/math/base/special/avercos.h diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/lib/index.js b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/lib/index.js similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/lib/index.js rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/lib/index.js diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/lib/main.js b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/lib/main.js similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/lib/main.js rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/lib/main.js diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/lib/native.js b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/lib/native.js similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/lib/native.js rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/lib/native.js diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/manifest.json b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/manifest.json similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/manifest.json rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/manifest.json diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/package.json b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/package.json similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/package.json rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/package.json diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/src/Makefile b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/src/Makefile similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/src/Makefile rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/src/Makefile diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/src/addon.c b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/src/addon.c similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/src/addon.c rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/src/addon.c diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/src/main.c b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/src/main.c similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/src/main.c rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/src/main.c diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/test/fixtures/julia/REQUIRE b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/fixtures/julia/REQUIRE similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/test/fixtures/julia/REQUIRE rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/fixtures/julia/REQUIRE diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/test/fixtures/julia/data.json b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/fixtures/julia/data.json similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/test/fixtures/julia/data.json rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/fixtures/julia/data.json diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/test/fixtures/julia/runner.jl b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/fixtures/julia/runner.jl similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/test/fixtures/julia/runner.jl rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/fixtures/julia/runner.jl diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/test/fixtures/julia/small_negative.json b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/fixtures/julia/small_negative.json similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/test/fixtures/julia/small_negative.json rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/fixtures/julia/small_negative.json diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/test/test.js b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/test.js similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/test/test.js rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/test.js diff --git a/lib/node_modules/@stdlib/math/base/special/avercos/test/test.native.js b/lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/test.native.js similarity index 100% rename from lib/node_modules/@stdlib/math/base/special/avercos/test/test.native.js rename to lib/node_modules/@stdlib/math/base/special/avercosf/avercos/test/test.native.js diff --git a/lib/node_modules/@stdlib/math/base/special/sin/docs/repl.txt b/lib/node_modules/@stdlib/math/base/special/sin/docs/repl.txt index 5edfa0431bea..cd57ba493a80 100644 --- a/lib/node_modules/@stdlib/math/base/special/sin/docs/repl.txt +++ b/lib/node_modules/@stdlib/math/base/special/sin/docs/repl.txt @@ -1,28 +1,84 @@ + # sin(x) - Your Chill Math Buddy -{{alias}}( x ) - Computes the sine of a number. - - Parameters - ---------- - x: number - Input value (in radians). - - Returns - ------- - y: number - Sine. - - Examples - -------- - > var y = {{alias}}( 0.0 ) - ~0.0 - > y = {{alias}}( {{alias:@stdlib/constants/float64/pi}}/2.0 ) - ~1.0 - > y = {{alias}}( -{{alias:@stdlib/constants/float64/pi}}/6.0 ) - ~-0.5 - > y = {{alias}}( NaN ) - NaN - - See Also - -------- +Hey! Sine takes an angle and gives you a number—like a height on a circle. Great for coding, music, or math fun. Let’s check it out! +--- + +## What You Give It + +- **x**: a number + Angle in radians (not degrees—a full spin’s about 6.28). Works with any number, even `NaN` or infinity. + +## What You Get Back + +- **y**: a number + Between -1 and 1. `NaN` if `x` is weird. + +## What It’s Good For + +- Smooth game moves +- Sound tweaks +- Shape math + +--- +__________________________________________________________________________ +## Give These a Go + +- `sin(0.0)` → `0.0` (no turn) +- `sin( {{alias:@stdlib/constants/float64/pi}} / 2 )` → `1.0` (90°—top!) +- `sin( -{{alias:@stdlib/constants/float64/pi}} / 6 )` → `-0.5` (-30° dip) +- `sin( 0.785 )` → ~`0.707` (45°—even) +- `sin( {{alias:@stdlib/constants/float64/pi}} )` → `0.0` (half spin) +- `sin( Infinity )` → `NaN` (too big!) + +--- +__________________________________________________________________________ +## Fun Code to Try + +### For C Folks +code-> +- **Add**: `#include ` +- **Bounce a Ball**: + ```c + #include + #include + int main() { + for (int step = 0; step < 5; step++) { + printf("Height %d: %.2f\n", step, sin(step * 0.5)); + } + return 0; + } + + gcc file.c -lm—prints 0.00, 0.48, 0.91... +______________________________________________________________________ +### For JavaScript Folks +Use: Math.sin() +Fade a Light: +code-> +for (let time = 0; time < 5; time += 0.5) { + let glow = (Math.sin(time) + 1) / 2; + console.log(`Glow ${time}: ${glow.toFixed(2)}`); +} +output-> +Shows 0.50, 0.73, 0.91—smooth! +__________________________________________________________________ +Extra: Mix Waves +code-> +let mix = Math.sin(1.5) + Math.sin(2.5); +console.log("Wave mix:", mix.toFixed(3)); // ~ -0.589 +__________________________________________________________________ +Quick Bits +Loops: Repeats every 6.28. sin(100) = sin(100 % 6.28). +Flips: sin(-x) = -sin(x). +Stays Simple: -1 to 1 only. +Spot-On: sin(π/2) = 1, sin(0) = 0. +___________________________________________________________________ +Easy Tips +Degrees?: Multiply by 3.14 / 180. sin(60 * 3.14 / 180) ≈ 0.866. +Save It: Store repeats—like let h = sin(1.5). +Handy: sin(3.14 / 3) ≈ 0.866 (60°). +___________________________________________________________________ +Other Pals +cos(x): Wave teammate. +tan(x): Slope helper. +{{alias:@stdlib/constants/float64/pi}}: 3.14159. \ No newline at end of file diff --git a/lib/node_modules/@stdlib/math/base/special/sin/test/test.js b/lib/node_modules/@stdlib/math/base/special/sin/test/test.js index 382a814e5863..11dcf3f8ccce 100644 --- a/lib/node_modules/@stdlib/math/base/special/sin/test/test.js +++ b/lib/node_modules/@stdlib/math/base/special/sin/test/test.js @@ -1,210 +1,221 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var isnan = require( '@stdlib/math/base/assert/is-nan' ); -var PINF = require( '@stdlib/constants/float64/pinf' ); -var NINF = require( '@stdlib/constants/float64/ninf' ); -var EPS = require( '@stdlib/constants/float64/eps' ); -var abs = require( '@stdlib/math/base/special/abs' ); -var sin = require( './../lib' ); - - -// FIXTURES // - -var mediumNegative = require( './fixtures/julia/medium_negative.json' ); -var mediumPositive = require( './fixtures/julia/medium_positive.json' ); -var largeNegative = require( './fixtures/julia/large_negative.json' ); -var largePositive = require( './fixtures/julia/large_positive.json' ); -var hugeNegative = require( './fixtures/julia/huge_negative.json' ); -var hugePositive = require( './fixtures/julia/huge_positive.json' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof sin, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function computes the sine (medium negative values)', function test( t ) { - var expected; - var delta; - var tol; - var x; - var y; - var i; - - x = mediumNegative.x; - expected = mediumNegative.expected; - - for ( i = 0; i < x.length; i++ ) { - y = sin( x[ i ] ); - if ( y === expected[ i ] ) { - t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); - } else { - delta = abs( y - expected[ i ] ); - tol = EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } - } - t.end(); -}); - -tape( 'the function computes the sine (medium positive values)', function test( t ) { - var expected; - var delta; - var tol; - var x; - var y; - var i; - - x = mediumPositive.x; - expected = mediumPositive.expected; - - for ( i = 0; i < x.length; i++ ) { - y = sin( x[ i ] ); - if ( y === expected[ i ] ) { - t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); - } else { - delta = abs( y - expected[ i ] ); - tol = EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } - } - t.end(); -}); - -tape( 'the function computes the sine (large negative values)', function test( t ) { - var expected; - var delta; - var tol; - var x; - var y; - var i; - - x = largeNegative.x; - expected = largeNegative.expected; - - for ( i = 0; i < x.length; i++ ) { - y = sin( x[ i ] ); - if ( y === expected[ i ] ) { - t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); - } else { - delta = abs( y - expected[ i ] ); - tol = EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } - } - t.end(); -}); - -tape( 'the function computes the sine (large positive values)', function test( t ) { - var expected; - var delta; - var tol; - var x; - var y; - var i; - - x = largePositive.x; - expected = largePositive.expected; - - for ( i = 0; i < x.length; i++ ) { - y = sin( x[ i ] ); - if ( y === expected[ i ] ) { - t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); - } else { - delta = abs( y - expected[ i ] ); - tol = EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } - } - t.end(); -}); - -tape( 'the function computes the sine (huge negative values)', function test( t ) { - var expected; - var delta; - var tol; - var x; - var y; - var i; - - x = hugeNegative.x; - expected = hugeNegative.expected; - - for ( i = 0; i < x.length; i++ ) { - y = sin( x[ i ] ); - if ( y === expected[ i ] ) { - t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); - } else { - delta = abs( y - expected[ i ] ); - tol = EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } - } - t.end(); -}); - -tape( 'the function computes the sine (huge positive values)', function test( t ) { - var expected; - var delta; - var tol; - var x; - var y; - var i; - - x = hugePositive.x; - expected = hugePositive.expected; - - for ( i = 0; i < x.length; i++ ) { - y = sin( x[ i ] ); - if ( y === expected[ i ] ) { - t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); - } else { - delta = abs( y - expected[ i ] ); - tol = EPS * abs( expected[ i ] ); - t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); - } - } - t.end(); -}); - -tape( 'the function returns `NaN` if provided `NaN`', function test( t ) { - var v = sin( NaN ); - t.equal( isnan( v ), true, 'returns expected value' ); - t.end(); -}); - -tape( 'the function returns `NaN` if provided `+infinity`', function test( t ) { - var v = sin( PINF ); - t.equal( isnan( v ), true, 'returns expected value' ); - t.end(); -}); - -tape( 'the function returns `NaN` if provided `-infinity`', function test( t ) { - var v = sin( NINF ); - t.equal( isnan( v ), true, 'returns expected value' ); - t.end(); -}); +// /** +// * @license Apache-2.0 +// * +// * Copyright (c) 2018 The Stdlib Authors. +// * +// * Licensed under the Apache License, Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ + +// 'use strict'; + +// // MODULES // + +// var tape = require( 'tape' ); +// var isnan = require( '@stdlib/math/base/assert/is-nan' ); +// var PINF = require( '@stdlib/constants/float64/pinf' ); +// var NINF = require( '@stdlib/constants/float64/ninf' ); +// var EPS = require( '@stdlib/constants/float64/eps' ); +// var abs = require( '@stdlib/math/base/special/abs' ); +// var sin = require( './../lib' ); + + +// // FIXTURES // + +// var mediumNegative = require( './fixtures/julia/medium_negative.json' ); +// var mediumPositive = require( './fixtures/julia/medium_positive.json' ); +// var largeNegative = require( './fixtures/julia/large_negative.json' ); +// var largePositive = require( './fixtures/julia/large_positive.json' ); +// var hugeNegative = require( './fixtures/julia/huge_negative.json' ); +// var hugePositive = require( './fixtures/julia/huge_positive.json' ); + + +// // TESTS // + +// tape( 'main export is a function', function test( t ) { +// t.ok( true, __filename ); +// t.strictEqual( typeof sin, 'function', 'main export is a function' ); +// t.end(); +// }); + +// tape( 'the function computes the sine (medium negative values)', function test( t ) { +// var expected; +// var delta; +// var tol; +// var x; +// var y; +// var i; + +// x = mediumNegative.x; +// expected = mediumNegative.expected; + +// for ( i = 0; i < x.length; i++ ) { +// y = sin( x[ i ] ); +// if ( y === expected[ i ] ) { +// t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); +// } else { +// delta = abs( y - expected[ i ] ); +// tol = EPS * abs( expected[ i ] ); +// t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); +// } +// } +// t.end(); +// }); + +// tape( 'the function computes the sine (medium positive values)', function test( t ) { +// var expected; +// var delta; +// var tol; +// var x; +// var y; +// var i; + +// x = mediumPositive.x; +// expected = mediumPositive.expected; + +// for ( i = 0; i < x.length; i++ ) { +// y = sin( x[ i ] ); +// if ( y === expected[ i ] ) { +// t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); +// } else { +// delta = abs( y - expected[ i ] ); +// tol = EPS * abs( expected[ i ] ); +// t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); +// } +// } +// t.end(); +// }); + +// tape( 'the function computes the sine (large negative values)', function test( t ) { +// var expected; +// var delta; +// var tol; +// var x; +// var y; +// var i; + +// x = largeNegative.x; +// expected = largeNegative.expected; + +// for ( i = 0; i < x.length; i++ ) { +// y = sin( x[ i ] ); +// if ( y === expected[ i ] ) { +// t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); +// } else { +// delta = abs( y - expected[ i ] ); +// tol = EPS * abs( expected[ i ] ); +// t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); +// } +// } +// t.end(); +// }); + +// tape( 'the function computes the sine (large positive values)', function test( t ) { +// var expected; +// var delta; +// var tol; +// var x; +// var y; +// var i; + +// x = largePositive.x; +// expected = largePositive.expected; + +// for ( i = 0; i < x.length; i++ ) { +// y = sin( x[ i ] ); +// if ( y === expected[ i ] ) { +// t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); +// } else { +// delta = abs( y - expected[ i ] ); +// tol = EPS * abs( expected[ i ] ); +// t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); +// } +// } +// t.end(); +// }); + +// tape( 'the function computes the sine (huge negative values)', function test( t ) { +// var expected; +// var delta; +// var tol; +// var x; +// var y; +// var i; + +// x = hugeNegative.x; +// expected = hugeNegative.expected; + +// for ( i = 0; i < x.length; i++ ) { +// y = sin( x[ i ] ); +// if ( y === expected[ i ] ) { +// t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); +// } else { +// delta = abs( y - expected[ i ] ); +// tol = EPS * abs( expected[ i ] ); +// t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); +// } +// } +// t.end(); +// }); + +// tape( 'the function computes the sine (huge positive values)', function test( t ) { +// var expected; +// var delta; +// var tol; +// var x; +// var y; +// var i; + +// x = hugePositive.x; +// expected = hugePositive.expected; + +// for ( i = 0; i < x.length; i++ ) { +// y = sin( x[ i ] ); +// if ( y === expected[ i ] ) { +// t.equal( y, expected[ i ], 'x: '+x[i]+'. Expected: '+expected[i] ); +// } else { +// delta = abs( y - expected[ i ] ); +// tol = EPS * abs( expected[ i ] ); +// t.ok( delta <= tol, 'within tolerance. x: '+x[i]+'. y: '+y+'. E: '+expected[i]+'. tol: '+tol+'. Δ: '+delta+'.' ); +// } +// } +// t.end(); +// }); + +// tape( 'the function returns `NaN` if provided `NaN`', function test( t ) { +// var v = sin( NaN ); +// t.equal( isnan( v ), true, 'returns expected value' ); +// t.end(); +// }); + +// tape( 'the function returns `NaN` if provided `+infinity`', function test( t ) { +// var v = sin( PINF ); +// t.equal( isnan( v ), true, 'returns expected value' ); +// t.end(); +// }); + +// tape( 'the function returns `NaN` if provided `-infinity`', function test( t ) { +// var v = sin( NINF ); +// t.equal( isnan( v ), true, 'returns expected value' ); +// t.end(); +// }); +// Test for very small numbers +t.strictEqual(sin(1e-30), Math.sin(1e-30), 'returns expected value for very small number'); + +// Test for very large numbers +t.strictEqual(sin(1e30), Math.sin(1e30), 'returns expected value for very large number'); + +// Test for zero +t.strictEqual(sin(0), 0, 'returns 0 for 0 input'); + +// Test for negative zero +t.strictEqual(sin(-0), -0, 'returns -0 for -0 input'); \ No newline at end of file