Skip to content

Instantly share code, notes, and snippets.

@thejoshwolfe
Created September 27, 2017 18:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thejoshwolfe/b64074f904d25da4ef9361542da46f03 to your computer and use it in GitHub Desktop.
Save thejoshwolfe/b64074f904d25da4ef9361542da46f03 to your computer and use it in GitHub Desktop.
function generateCases(a, b, cmp) {
function generateCase(a, op, b, result) {
print("assert.sameValue(" + a + " " + op + " " + b + ", " + result + ");");
}
generateCase(a, "<", b, cmp < 0);
generateCase(a, "<=", b, cmp <= 0);
generateCase(a, ">", b, cmp > 0);
generateCase(a, ">=", b, cmp >= 0);
generateCase(b, "<", a, 0 < cmp);
generateCase(b, "<=", a, 0 <= cmp);
generateCase(b, ">", a, 0 > cmp);
generateCase(b, ">=", a, 0 >= cmp);
}
generateCases("0n", "0", 0);
generateCases("0n", "0.000000000001", -1);
generateCases("0n", "1", -1);
generateCases("1n", "0", 1);
generateCases("1n", "0.999999999999", 1);
generateCases("1n", "1", 0);
generateCases("1n", "Number.MAX_VALUE", -1);
generateCases("0n", "Number.MIN_VALUE", -1);
generateCases("-10n", "Number.MIN_VALUE", -1);
generateCases("10000000000n", "Number.MAX_VALUE", -1);
assert.sameValue(0n < 0, false);
assert.sameValue(0n <= 0, true);
assert.sameValue(0n > 0, false);
assert.sameValue(0n >= 0, true);
assert.sameValue(0 < 0n, false);
assert.sameValue(0 <= 0n, true);
assert.sameValue(0 > 0n, false);
assert.sameValue(0 >= 0n, true);
assert.sameValue(0n < 0.000000000001, true);
assert.sameValue(0n <= 0.000000000001, true);
assert.sameValue(0n > 0.000000000001, false);
assert.sameValue(0n >= 0.000000000001, false);
assert.sameValue(0.000000000001 < 0n, false);
assert.sameValue(0.000000000001 <= 0n, false);
assert.sameValue(0.000000000001 > 0n, true);
assert.sameValue(0.000000000001 >= 0n, true);
assert.sameValue(0n < 1, true);
assert.sameValue(0n <= 1, true);
assert.sameValue(0n > 1, false);
assert.sameValue(0n >= 1, false);
assert.sameValue(1 < 0n, false);
assert.sameValue(1 <= 0n, false);
assert.sameValue(1 > 0n, true);
assert.sameValue(1 >= 0n, true);
assert.sameValue(1n < 0, false);
assert.sameValue(1n <= 0, false);
assert.sameValue(1n > 0, true);
assert.sameValue(1n >= 0, true);
assert.sameValue(0 < 1n, true);
assert.sameValue(0 <= 1n, true);
assert.sameValue(0 > 1n, false);
assert.sameValue(0 >= 1n, false);
assert.sameValue(1n < 0.999999999999, false);
assert.sameValue(1n <= 0.999999999999, false);
assert.sameValue(1n > 0.999999999999, true);
assert.sameValue(1n >= 0.999999999999, true);
assert.sameValue(0.999999999999 < 1n, true);
assert.sameValue(0.999999999999 <= 1n, true);
assert.sameValue(0.999999999999 > 1n, false);
assert.sameValue(0.999999999999 >= 1n, false);
assert.sameValue(1n < 1, false);
assert.sameValue(1n <= 1, true);
assert.sameValue(1n > 1, false);
assert.sameValue(1n >= 1, true);
assert.sameValue(1 < 1n, false);
assert.sameValue(1 <= 1n, true);
assert.sameValue(1 > 1n, false);
assert.sameValue(1 >= 1n, true);
assert.sameValue(1n < Number.MAX_VALUE, true);
assert.sameValue(1n <= Number.MAX_VALUE, true);
assert.sameValue(1n > Number.MAX_VALUE, false);
assert.sameValue(1n >= Number.MAX_VALUE, false);
assert.sameValue(Number.MAX_VALUE < 1n, false);
assert.sameValue(Number.MAX_VALUE <= 1n, false);
assert.sameValue(Number.MAX_VALUE > 1n, true);
assert.sameValue(Number.MAX_VALUE >= 1n, true);
assert.sameValue(0n < Number.MIN_VALUE, true);
assert.sameValue(0n <= Number.MIN_VALUE, true);
assert.sameValue(0n > Number.MIN_VALUE, false);
assert.sameValue(0n >= Number.MIN_VALUE, false);
assert.sameValue(Number.MIN_VALUE < 0n, false);
assert.sameValue(Number.MIN_VALUE <= 0n, false);
assert.sameValue(Number.MIN_VALUE > 0n, true);
assert.sameValue(Number.MIN_VALUE >= 0n, true);
assert.sameValue(-10n < Number.MIN_VALUE, true);
assert.sameValue(-10n <= Number.MIN_VALUE, true);
assert.sameValue(-10n > Number.MIN_VALUE, false);
assert.sameValue(-10n >= Number.MIN_VALUE, false);
assert.sameValue(Number.MIN_VALUE < -10n, false);
assert.sameValue(Number.MIN_VALUE <= -10n, false);
assert.sameValue(Number.MIN_VALUE > -10n, true);
assert.sameValue(Number.MIN_VALUE >= -10n, true);
assert.sameValue(10000000000n < Number.MAX_VALUE, true);
assert.sameValue(10000000000n <= Number.MAX_VALUE, true);
assert.sameValue(10000000000n > Number.MAX_VALUE, false);
assert.sameValue(10000000000n >= Number.MAX_VALUE, false);
assert.sameValue(Number.MAX_VALUE < 10000000000n, false);
assert.sameValue(Number.MAX_VALUE <= 10000000000n, false);
assert.sameValue(Number.MAX_VALUE > 10000000000n, true);
assert.sameValue(Number.MAX_VALUE >= 10000000000n, true);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment