Source code

Revision control

Copy as Markdown

Other Tools

function max(lhs, rhs) {
return lhs >= rhs ? lhs : rhs;
}
function min(lhs, rhs) {
return lhs <= rhs ? lhs : rhs
}
function testMinMaxI32() {
var xs = [
-0x8000_0000,
-100000,
-1000,
-100,
-1,
-2,
0,
1,
2,
100,
1000,
100000,
0x7fff_ffff,
];
for (var i = 0; i < 1000; ++i) {
var x = xs[i % xs.length];
var y = xs[((i / xs.length)|0) % xs.length];
assertEq(Math.max(x, 0), max(x, 0));
assertEq(Math.min(x, 0), min(x, 0));
assertEq(Math.max(x, 1), max(x, 1));
assertEq(Math.min(x, 1), min(x, 1));
assertEq(Math.max(x, -1), max(x, -1));
assertEq(Math.min(x, -1), min(x, -1));
assertEq(Math.max(x, 2), max(x, 2));
assertEq(Math.min(x, 2), min(x, 2));
assertEq(Math.max(x, -2), max(x, -2));
assertEq(Math.min(x, -2), min(x, -2));
assertEq(Math.max(x, 100_000 - 1), max(x, 100_000 - 1));
assertEq(Math.min(x, 100_000 - 1), min(x, 100_000 - 1));
assertEq(Math.max(x, 100_000), max(x, 100_000));
assertEq(Math.min(x, 100_000), min(x, 100_000));
assertEq(Math.max(x, 100_000 + 1), max(x, 100_000 + 1));
assertEq(Math.min(x, 100_000 + 1), min(x, 100_000 + 1));
assertEq(Math.max(x, -100_000 - 1), max(x, -100_000 - 1));
assertEq(Math.min(x, -100_000 - 1), min(x, -100_000 - 1));
assertEq(Math.max(x, -100_000), max(x, -100_000));
assertEq(Math.min(x, -100_000), min(x, -100_000));
assertEq(Math.max(x, -100_000 + 1), max(x, -100_000 + 1));
assertEq(Math.min(x, -100_000 + 1), min(x, -100_000 + 1));
assertEq(Math.max(x, y), max(x, y));
assertEq(Math.min(x, y), min(x, y));
}
}
testMinMaxI32();