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