diff options
author | max99x <max99x@gmail.com> | 2011-07-13 23:25:44 +0300 |
---|---|---|
committer | max99x <max99x@gmail.com> | 2011-07-13 23:25:44 +0300 |
commit | 3159de633f092bbd48a4f644d71a8673222714b5 (patch) | |
tree | a881041ccd4b7b23065d4bcdabd0c84f4c254d78 | |
parent | 9ee300c1906aae24e1a27521c7a0ef5e461efded (diff) |
Fixed finite() and isinf(), added tests for it.
-rw-r--r-- | src/library.js | 11 | ||||
-rw-r--r-- | tests/runner.py | 11 |
2 files changed, 16 insertions, 6 deletions
diff --git a/src/library.js b/src/library.js index c831c9bc..e1366822 100644 --- a/src/library.js +++ b/src/library.js @@ -1486,17 +1486,20 @@ var Library = { return sig; }, - __finite: function(x) { + finite: function(x) { return isFinite(x); }, + __finite: 'finite', - __isinf: function(x) { - return !isFinite(x); + isinf: function(x) { + return !isNaN(x) && !isFinite(x); }, + __isinf: 'isinf', - __isnan: function(x) { + isnan: function(x) { return isNaN(x); }, + __isnan: 'isnan', copysign: function(a, b) { if (a<0 === b<0) return a; diff --git a/tests/runner.py b/tests/runner.py index ede51756..58f96db4 100644 --- a/tests/runner.py +++ b/tests/runner.py @@ -537,11 +537,18 @@ if 'benchmark' not in sys.argv: #include <cmath> int main() { - printf("*%.2f,%.2f,%f,%f*\\n", M_PI, -M_PI, 1/0.0, -1/0.0); + printf("*%.2f,%.2f,%f,%f", M_PI, -M_PI, 1/0.0, -1/0.0); + printf(",%d", finite(NAN)); + printf(",%d", finite(INFINITY)); + printf(",%d", finite(12.3)); + printf(",%d", isinf(NAN)); + printf(",%d", isinf(INFINITY)); + printf(",%d", isinf(12.3)); + printf("*\\n"); return 0; } ''' - self.do_test(src, '*3.14,-3.14,inf,-inf*') + self.do_test(src, '*3.14,-3.14,inf,-inf,0,0,1,0,1,0') def test_math_hyperbolic(self): src = open(path_from_root('tests', 'hyperbolic', 'src.c'), 'r').read() |