blob: 36713deb0f766b1f6e09e48b37460b7dc2334c91 [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
// interesting floating point limits
checkNaN(NaN, NaN);
checkNaN(2, NaN);
checkNaN(NaN, -3);
check((Math.PI) / 2, 3, +0);
check((Math.PI) / 2, 3, -0);
check(0, 0, 3);
check(0, 0, 0);
check(Math.PI, 0, -0);
check(Math.PI, 0, -2);
check(-0, -0, 3);
check(-0, -0, 0);
check(-Math.PI, -0, -0);
check(-Math.PI, -0, -2);
check(-(Math.PI) / 2, -3, +0);
check(-(Math.PI) / 2, -3, -0);
check(0, 3, +Infinity);
check((Math.PI), 3, -Infinity);
check((-Math.PI), -3, -Infinity);
check(-0, -3, +Infinity);
check((Math.PI)/2, +Infinity, 3);
check(-(Math.PI) / 2, -Infinity, 3);
check((Math.PI) / 2, +Infinity, -3);
check(-(Math.PI) / 2, -Infinity, -3);
check(Math.PI / 4, +Infinity, +Infinity);
check(3 * Math.PI / 4, +Infinity, -Infinity);
check(-Math.PI / 4, -Infinity, +Infinity);
check(-3 * Math.PI / 4, -Infinity, -Infinity);
check((Math.PI) / 4, 5, 5.0);
if(!isNaN(Math.atan2()))
{
WScript.Echo("error: Math.atan2() is not NaN");
}
WScript.Echo("done");
function check(result, y, x) {
var res = Math.atan2(y, x);
if (Math.abs(res - result) > 0.00000000001) {
WScript.Echo("atan2(" + y + " , " + x + ") != " + result);
WScript.Echo(" the wrong result is atan2(" + y + " , " + x + ") = " + res);
}
}
function checkNaN(y, x) {
var rs = Math.atan2(y, x);
if (!isNaN(rs)) {
WScript.Echo("atan2(" + y + " , " + x + ") != NaN");
WScript.Echo(" wrong result is atan2(" + y + " , " + x + ") = " + rs);
}
}