math-min-max-int32.js (1666B)
1 function max(lhs, rhs) { 2 return lhs >= rhs ? lhs : rhs; 3 } 4 5 function min(lhs, rhs) { 6 return lhs <= rhs ? lhs : rhs 7 } 8 9 function testMinMaxI32() { 10 var xs = [ 11 -0x8000_0000, 12 -100000, 13 -1000, 14 -100, 15 -1, 16 -2, 17 0, 18 1, 19 2, 20 100, 21 1000, 22 100000, 23 0x7fff_ffff, 24 ]; 25 26 for (var i = 0; i < 1000; ++i) { 27 var x = xs[i % xs.length]; 28 var y = xs[((i / xs.length)|0) % xs.length]; 29 30 assertEq(Math.max(x, 0), max(x, 0)); 31 assertEq(Math.min(x, 0), min(x, 0)); 32 33 assertEq(Math.max(x, 1), max(x, 1)); 34 assertEq(Math.min(x, 1), min(x, 1)); 35 36 assertEq(Math.max(x, -1), max(x, -1)); 37 assertEq(Math.min(x, -1), min(x, -1)); 38 39 assertEq(Math.max(x, 2), max(x, 2)); 40 assertEq(Math.min(x, 2), min(x, 2)); 41 42 assertEq(Math.max(x, -2), max(x, -2)); 43 assertEq(Math.min(x, -2), min(x, -2)); 44 45 assertEq(Math.max(x, 100_000 - 1), max(x, 100_000 - 1)); 46 assertEq(Math.min(x, 100_000 - 1), min(x, 100_000 - 1)); 47 48 assertEq(Math.max(x, 100_000), max(x, 100_000)); 49 assertEq(Math.min(x, 100_000), min(x, 100_000)); 50 51 assertEq(Math.max(x, 100_000 + 1), max(x, 100_000 + 1)); 52 assertEq(Math.min(x, 100_000 + 1), min(x, 100_000 + 1)); 53 54 assertEq(Math.max(x, -100_000 - 1), max(x, -100_000 - 1)); 55 assertEq(Math.min(x, -100_000 - 1), min(x, -100_000 - 1)); 56 57 assertEq(Math.max(x, -100_000), max(x, -100_000)); 58 assertEq(Math.min(x, -100_000), min(x, -100_000)); 59 60 assertEq(Math.max(x, -100_000 + 1), max(x, -100_000 + 1)); 61 assertEq(Math.min(x, -100_000 + 1), min(x, -100_000 + 1)); 62 63 assertEq(Math.max(x, y), max(x, y)); 64 assertEq(Math.min(x, y), min(x, y)); 65 } 66 } 67 testMinMaxI32();