Source code

Revision control

Copy as Markdown

Other Tools

var nan = Number.NaN;
var negative_zero = -0;
function max(a, b) {
return Math.max(a, b);
}
function min(a, b) {
return Math.min(a, b);
}
function main() {
for (var i = 0; i < 100; i++) {
assertEq(max(negative_zero, 0), 0);
assertEq(max(0, negative_zero), 0);
assertEq(min(0, negative_zero), negative_zero);
assertEq(min(negative_zero, 0), negative_zero);
assertEq(min(negative_zero, negative_zero), negative_zero);
assertEq(max(negative_zero, negative_zero), negative_zero);
assertEq(max(nan, 0), nan);
assertEq(min(nan, 0), nan);
assertEq(max(0, nan), nan);
assertEq(max(nan, 0), nan);
assertEq(max(3, 5), 5);
assertEq(max(5, 3), 5);
assertEq(min(3, 5), 3);
assertEq(min(5, 3), 3);
assertEq(max(Infinity, -Infinity), Infinity);
assertEq(min(Infinity, -Infinity), -Infinity);
assertEq(max(Infinity, nan), nan);
assertEq(max(negative_zero, -5), negative_zero);
assertEq(min(negative_zero, -5), -5);
}
}
main();