mathMinMax.js (1088B)
1 var nan = Number.NaN; 2 var negative_zero = -0; 3 4 function max(a, b) { 5 return Math.max(a, b); 6 } 7 function min(a, b) { 8 return Math.min(a, b); 9 } 10 11 function main() { 12 for (var i = 0; i < 100; i++) { 13 assertEq(max(negative_zero, 0), 0); 14 assertEq(max(0, negative_zero), 0); 15 assertEq(min(0, negative_zero), negative_zero); 16 assertEq(min(negative_zero, 0), negative_zero); 17 18 assertEq(min(negative_zero, negative_zero), negative_zero); 19 assertEq(max(negative_zero, negative_zero), negative_zero); 20 21 assertEq(max(nan, 0), nan); 22 assertEq(min(nan, 0), nan); 23 24 assertEq(max(0, nan), nan); 25 assertEq(max(nan, 0), nan); 26 27 assertEq(max(3, 5), 5); 28 assertEq(max(5, 3), 5); 29 30 assertEq(min(3, 5), 3); 31 assertEq(min(5, 3), 3); 32 33 assertEq(max(Infinity, -Infinity), Infinity); 34 assertEq(min(Infinity, -Infinity), -Infinity); 35 assertEq(max(Infinity, nan), nan); 36 37 assertEq(max(negative_zero, -5), negative_zero); 38 assertEq(min(negative_zero, -5), -5); 39 } 40 } 41 42 main();