assert.js (1084B)
1 export function assert(actual, expected, message) { 2 if (arguments.length === 1) 3 expected = true; 4 5 if (typeof actual === typeof expected) { 6 if (Object.is(actual, expected)) 7 return; 8 if (typeof actual === 'object') { 9 if (actual !== null && expected !== null 10 && actual.constructor === expected.constructor 11 && actual.toString() === expected.toString()) 12 return; 13 } 14 } 15 throw Error("assertion failed: got |" + actual + "|" + 16 ", expected |" + expected + "|" + 17 (message ? " (" + message + ")" : "")); 18 } 19 20 export function assertThrows(err, func) 21 { 22 var ex; 23 ex = false; 24 try { 25 func(); 26 } catch(e) { 27 ex = true; 28 assert(e instanceof err); 29 } 30 assert(ex, true, "exception expected"); 31 } 32 33 export function assertArrayEquals(a, b) 34 { 35 if (!Array.isArray(a) || !Array.isArray(b)) 36 return assert(false); 37 38 assert(a.length, b.length); 39 40 a.forEach((value, idx) => { 41 assert(b[idx], value); 42 }); 43 }