Chromium Code Reviews| Index: test/mjsunit/es6/math-hyperbolic.js |
| diff --git a/test/mjsunit/es6/math-hyperbolic.js b/test/mjsunit/es6/math-hyperbolic.js |
| index 1632e00b222c5ff277bd385ec1e4d2d15795c59d..8f7164dfef02afeb713014e0818c74e5d9cd4849 100644 |
| --- a/test/mjsunit/es6/math-hyperbolic.js |
| +++ b/test/mjsunit/es6/math-hyperbolic.js |
| @@ -166,3 +166,23 @@ assertEquals(Infinity, Math.sinh(710.475860073944)); |
| assertEquals(-Infinity, Math.sinh(-710.475860073944)); |
| assertEquals(Infinity, Math.sinh(1000)); |
| assertEquals(-Infinity, Math.sinh(-1000)); |
| + |
| +// Implementation-specific tests for cosh. |
| +// Case |x| < 2^-55 |
| +assertEquals(1, Math.cosh(Math.pow(2, -55))); |
| +assertEquals(1, Math.cosh(-Math.pow(2, -55))); |
|
Raymond Toy
2014/08/29 16:23:31
Oops. This is a mistake in original test. If we wa
Yang
2014/09/01 09:35:42
Done.
|
| +// Case |x| < 1/2*log(2). cosh(Math.LN2/4) = (sqrt(2)+1)/2^(5/4) |
| +assertEquals(1.0150517651282178, Math.cosh(Math.LN2/4)); |
| +assertEquals(1.0150517651282178, Math.cosh(-Math.LN2/4)); |
| +// Case 1/2*log(2) < |x| < 22. cosh(10*Math.LN2) = 1048577/2048 |
| +assertEquals(512.00048828125, Math.cosh(10*Math.LN2)); |
| +assertEquals(512.00048828125, Math.cosh(-10*Math.LN2)); |
| +// Case 22 <= |x| < log(maxdouble) |
| +assertEquals(2.1474836479999983e9, Math.cosh(32*Math.LN2)); |
| +assertEquals(2.1474836479999983e9, Math.cosh(-32*Math.LN2)); |
| +// Case log(maxdouble) <= |x| <= overflowthreshold |
| +assertEquals(1.7976931348621744e308, Math.cosh(710.4758600739439)); |
| +assertEquals(1.7976931348621744e308, Math.cosh(-710.4758600739439)); |
| +// Overflow. |
| +assertEquals(Infinity, Math.cosh(710.475860073944)); |
| +assertEquals(Infinity, Math.cosh(-710.475860073944)); |