blob: d6d1d142d3387a07a63d00348c252cf1aec94b33 [file] [log] [blame]
// Basic cases of Math.log().
// log(NaN).
function logNaN(antilogarithm) {
return Math.log(antilogarithm);
}
noInline(logNaN);
function testLogNaN() {
for (var i = 0; i < 10000; ++i) {
var result = logNaN(NaN);
if (!isNaN(result))
throw "logNaN(NaN) = " + result + ", expected NaN";
}
}
testLogNaN();
// log(0).
function logZero(antilogarithm) {
return Math.log(antilogarithm);
}
noInline(logZero);
function testLogZero() {
for (var i = 0; i < 10000; ++i) {
var result = logZero(0);
if (result !== -Infinity)
throw "logZero(0) = " + result + ", expected -Infinity";
}
}
testLogZero();
// log(1).
function logOne(antilogarithm) {
return Math.log(antilogarithm);
}
noInline(logOne);
function testLogOne() {
for (var i = 0; i < 10000; ++i) {
var result = logOne(1);
if (result !== 0)
throw "logOne(1) = " + result + ", expected 0";
}
}
testLogOne();
// log(-1).
function logMinusOne(antilogarithm) {
return Math.log(antilogarithm);
}
noInline(logMinusOne);
function testLogMinusOne() {
for (var i = 0; i < 10000; ++i) {
var result = logMinusOne(-1);
if (!isNaN(result))
throw "logMinusOne(-1) = " + result + ", expected NaN";
}
}
testLogMinusOne();
// log(Infinity).
function logInfinity(antilogarithm) {
return Math.log(antilogarithm);
}
noInline(logInfinity);
function testLogInfinity() {
for (var i = 0; i < 10000; ++i) {
var result = logInfinity(Infinity);
if (result !== Infinity)
throw "logInfinity(Infinity) = " + result + ", expected Infinity";
}
}
testLogInfinity();
// log(-Infinity).
function logMinusInfinity(antilogarithm) {
return Math.log(antilogarithm);
}
noInline(logMinusInfinity);
function testLogMinusInfinity() {
for (var i = 0; i < 10000; ++i) {
var result = logMinusInfinity(-Infinity);
if (!isNaN(result))
throw "logMinusInfinity(-Infinity) = " + result + ", expected NaN";
}
}
testLogMinusInfinity();
// log(integer).
function logInteger(antilogarithm) {
return Math.log(antilogarithm);
}
noInline(logInteger);
function testLogInteger() {
for (var i = 0; i < 10000; ++i) {
var result = logInteger(42);
if (result !== 3.7376696182833684)
throw "logInteger(42) = " + result + ", expected 3.7376696182833684";
}
}
testLogInteger();
// log(double).
function logDouble(antilogarithm) {
return Math.log(antilogarithm);
}
noInline(logDouble);
function testLogDouble() {
for (var i = 0; i < 10000; ++i) {
var result = logDouble(Math.PI);
if (result !== 1.1447298858494002)
throw "logDouble(Math.PI) = " + result + ", expected 1.1447298858494002";
}
}
testLogDouble();