1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/basic/testMathMinMax.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,74 @@ 1.4 +for (var i = 2; i < 10; i++) { 1.5 + assertEq(Math.min(i, 1), 1); 1.6 + assertEq(Math.min(i, -1), -1); 1.7 + assertEq(Math.min(1, i), 1); 1.8 + assertEq(Math.min(-1, i), -1); 1.9 + assertEq(Math.min(5, 2), 2); 1.10 + assertEq(Math.min(2, 5), 2); 1.11 + assertEq(Math.min(5, -2), -2); 1.12 + assertEq(Math.min(-2, 5), -2); 1.13 +} 1.14 + 1.15 +for (i = 2; i < 10; i++) { 1.16 + assertEq(Math.max(i, 1), i); 1.17 + assertEq(Math.max(i, -1), i); 1.18 + assertEq(Math.max(1, i), i); 1.19 + assertEq(Math.max(-1, i), i); 1.20 + assertEq(Math.max(5, -2), 5); 1.21 + assertEq(Math.max(-2, 5), 5); 1.22 + assertEq(Math.max(5, 2), 5); 1.23 + assertEq(Math.max(2, 5), 5); 1.24 +} 1.25 + 1.26 +for (i = 2.1; i < 13; i += 3.17584) { 1.27 + assertEq(Math.max(i, 1), i); 1.28 + assertEq(Math.max(i, 1.5), i); 1.29 + assertEq(Math.max(1, i), i); 1.30 + assertEq(Math.max(1.5, i), i); 1.31 + 1.32 + assertEq(Math.max(NaN, NaN), NaN); 1.33 + assertEq(Math.max(NaN, Infinity), NaN); 1.34 + assertEq(Math.max(Infinity, NaN), NaN); 1.35 + 1.36 + assertEq(Math.max(NaN, i), NaN); 1.37 + assertEq(Math.max(i, NaN), NaN); 1.38 + 1.39 + assertEq(Math.max(i, Infinity), Infinity); 1.40 + assertEq(Math.max(Infinity, i), Infinity); 1.41 + 1.42 + assertEq(Math.max(i, -Infinity), i); 1.43 + assertEq(Math.max(-Infinity, i), i); 1.44 +} 1.45 + 1.46 +for (i = 2.1; i < 13; i += 3.17584) { 1.47 + assertEq(Math.min(i, 1), 1); 1.48 + assertEq(Math.min(i, 1.5), 1.5); 1.49 + assertEq(Math.min(1, i), 1); 1.50 + assertEq(Math.min(1.5, i), 1.5); 1.51 + 1.52 + assertEq(Math.min(NaN, NaN), NaN); 1.53 + assertEq(Math.min(NaN, Infinity), NaN); 1.54 + assertEq(Math.min(Infinity, NaN), NaN); 1.55 + 1.56 + assertEq(Math.min(NaN, i), NaN); 1.57 + assertEq(Math.min(i, NaN), NaN); 1.58 + 1.59 + assertEq(Math.min(i, Infinity), i); 1.60 + assertEq(Math.min(Infinity, i), i); 1.61 + 1.62 + assertEq(Math.min(i, -Infinity), -Infinity); 1.63 + assertEq(Math.min(-Infinity, i), -Infinity); 1.64 +} 1.65 + 1.66 +function isNegZero(n) { 1.67 + return n === 0 && 1/n === -Infinity; 1.68 +} 1.69 + 1.70 +for (i = 0; i < 5; i++) { 1.71 + assertEq(isNegZero(Math.min(0, -0)), true); 1.72 + assertEq(isNegZero(Math.min(-0, 0)), true); 1.73 + assertEq(isNegZero(Math.min(-0, -0)), true); 1.74 + assertEq(isNegZero(Math.max(0, -0)), false); 1.75 + assertEq(isNegZero(Math.max(-0, 0)), false); 1.76 + assertEq(isNegZero(Math.max(-0, -0)), true); 1.77 +}