export function assert(actual, expected, message) {
    if (arguments.length == 1)
        expected = true;

    if (actual === expected)
        return;

    if (actual !== null && expected !== null
        && typeof actual == 'object' && typeof expected == 'object'
        && actual.toString() === expected.toString())
        return;

    throw Error("assertion failed: got |" + actual + "|" +
        ", expected |" + expected + "|" +
        (message ? " (" + message + ")" : ""));
}

export const eq = assert;
export const floateq = (actual, expected) => { assert(Math.abs(actual - expected) < 0.01) }

export const ascii = v => v.charCodeAt(0)