]> git.saurik.com Git - apple/javascriptcore.git/blame - tests/stress/math-sqrt-basics.js
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / tests / stress / math-sqrt-basics.js
CommitLineData
ed1e77d3
A
1// Basic cases of Math.sqrt().
2function sqrtOnInteger(radicand) {
3 return Math.sqrt(radicand);
4}
5noInline(sqrtOnInteger);
6
7function testSquareRoot16() {
8 for (var i = 0; i < 10000; ++i) {
9 var result = sqrtOnInteger(16);
10 if (result !== 4)
11 throw "sqrtOnInteger(16) = " + result + ", expected 4";
12 }
13}
14testSquareRoot16();
15
16var sqrtOnIntegerNegativeNumber = sqrtOnDouble(-4);
17if (!isNaN(sqrtOnIntegerNegativeNumber))
18 throw "sqrtOnDouble(-4) = " + sqrtOnIntegerNegativeNumber + ", expected NaN";
19
20var sqrtOnIntegerFallback = sqrtOnInteger(Math.PI);
21if (sqrtOnIntegerFallback != 1.7724538509055159)
22 throw "sqrtOnInteger(Math.PI) = " + sqrtOnIntegerFallback + ", expected 1.7724538509055159";
23
24
25function sqrtOnDouble(radicand) {
26 return Math.sqrt(radicand);
27}
28noInline(sqrtOnDouble);
29
30function testSquareRootDouble() {
31 for (var i = 0; i < 10000; ++i) {
32 var result = sqrtOnInteger(Math.LN2);
33 if (result !== 0.8325546111576977)
34 throw "sqrtOnInteger(Math.LN2) = " + result + ", expected 0.8325546111576977";
35 }
36}
37testSquareRootDouble();
38
39var sqrtOnDoubleNegativeNumber = sqrtOnDouble(-Math.PI);
40if (!isNaN(sqrtOnDoubleNegativeNumber))
41 throw "sqrtOnDouble(-Math.PI) = " + sqrtOnDoubleNegativeNumber + ", expected NaN";
42
43var sqrtOnDoubleFallback = sqrtOnDouble(4);
44if (sqrtOnDoubleFallback !== 2)
45 throw "sqrtOnDouble(4) = " + sqrtOnDoubleFallback + ", expected 2";