math-log-basics.js   [plain text]


// 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();