UNPKG

deep-equal-diagnostics

Version:

Ultra-fast robust diagnostic testing for strict deep equality

324 lines (275 loc) 10.8 kB
const {deepStrictEqual} = require("../deep-strict-equal.js"); const strictEqual = deepStrictEqual const assert = require('assert') function assertEqual(x,y) { try { assert.deepStrictEqual(x,y) return true } catch(e) { return false } } function claim(b, message, logMessage) { if(b) console.log(`\u2713 ${message} is true`) else console.log(`\u2639 ${message} is false: should be true`) if(logMessage) console.log(strictEqual.message) } console.log('-----------------------------------------------------------------'); function test_BigInt() { console.log("Test test_BigInt"); const x = 123n const y = 1234n claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_BigInt(); console.log('-----------------------------------------------------------------'); function test_Symbol() { console.log("Test test_Symbol"); const x = Symbol() const y = Symbol() claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Symbol(); console.log('-----------------------------------------------------------------'); function test_Symbola() { console.log("Test test_Symbola"); const x = new Error('message') const y = Symbol() claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Symbola(); console.log('-----------------------------------------------------------------'); function test_Boolean() { console.log("Test test_Boolean"); const x = new Boolean(true) const y = new Boolean(false) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Boolean(); console.log('-----------------------------------------------------------------'); function test_Number() { console.log("Test test_Number"); const x = new Number(1) const y = new Number(2) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Number(); console.log('-----------------------------------------------------------------'); function test_String() { console.log("Test test_String"); const x = new Number("dog") const y = new Number("hamster") claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Number(); console.log('-----------------------------------------------------------------'); function test_Date() { console.log("Test test_Date"); const x = new Date(123) const y = new Date(1234) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Date(); console.log('-----------------------------------------------------------------'); function test_RegExp() { console.log("Test test_RegExp"); const x = /abc/ const y = /abc/g claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_RegExp(); console.log('-----------------------------------------------------------------'); function test_Array() { console.log("Test test_Array"); const x = [1] const y = [2] claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Array(); console.log('-----------------------------------------------------------------'); function test_Function() { console.log("Test test_Function"); const x = function bax(){} const y = function (){} claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Function(); console.log('-----------------------------------------------------------------'); function test_Uint8Array() { console.log("Test test_Uint8Array"); const buffer = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const x = new Uint8Array(buffer,1,2 ) const y = new Uint8Array(buffer,2,2 ) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Uint8Array(); console.log('-----------------------------------------------------------------'); function test_Uint8Arraya() { console.log("Test test_Uint8Arraya"); const bufferX = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const bufferY = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const x = new Uint8Array(bufferX,1,2 ) const y = new Uint8Array(bufferY,2,2 ) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Uint8Arraya(); console.log('-----------------------------------------------------------------'); function test_Uint8Arrayb() { console.log("Test test_Uint8Arrayb"); const bufferX = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const bufferY = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const x = new Uint8Array(bufferX,2,2 ) const y = new Uint8Array(bufferY,2,3 ) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Uint8Arrayb(); console.log('-----------------------------------------------------------------'); function test_Map() { console.log("Test test_Map"); const x = new Map() const y = new Map([[{},{}]]) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Map(); console.log('-----------------------------------------------------------------'); function test_Set() { console.log("Test test_Set"); const x = new Set() const y = new Set([{}]) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Set(); console.log('-----------------------------------------------------------------'); function test_Seta() { console.log("Test test_Seta"); const x = new Set([{a:1}]) const y = new Set([{a:2}]) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_Seta(); console.log('-----------------------------------------------------------------'); function test_DataView() { console.log("Test test_DataView"); const buffer = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const x = new DataView(buffer,1,2) const y = new DataView(buffer,1,2) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(strictEqual(x,y), 'strictEqual(x,y)', true) } test_DataView() console.log('-----------------------------------------------------------------'); function test_DataViewa() { console.log("Test test_DataViewa"); const bufferx = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const buffery = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const x = new DataView(bufferx,1,2) const y = new DataView(buffery,1,3) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_DataViewa() console.log('-----------------------------------------------------------------'); function test_ArrayBuffer() { console.log("Test test_ArrayBuffer"); const buffer = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const x = new Uint8Array(buffer).buffer const y = new Uint8Array(buffer).buffer claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(strictEqual(x,y), 'strictEqual(x,y)', true) } test_ArrayBuffer() console.log('-----------------------------------------------------------------'); function test_ArrayBuffera() { console.log("Test test_ArrayBuffera"); const x = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const y = new Uint8Array([1,2,3,4,5,6,7,9]).buffer claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_ArrayBuffera() console.log('-----------------------------------------------------------------'); function test_ArrayBufferb() { console.log("Test test_ArrayBufferb"); const x = new Uint8Array([1,2,3,4,5,6,7,8]).buffer const y = new Uint8Array([1,2,3,4,5,6,7,9]).buffer claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_ArrayBufferb() console.log('-----------------------------------------------------------------'); function test_WeakSet() { console.log("Test test_WeakSet"); const x = new WeakSet() const y = new WeakSet() claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(strictEqual(x,y), 'strictEqual(x,y)', true) } test_WeakSet() console.log('-----------------------------------------------------------------'); function test_WeakMap() { console.log("Test test_WeakMap"); const x = new WeakMap() const y = new WeakMap() claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(strictEqual(x,y), 'strictEqual(x,y)', true) } test_WeakMap() console.log('-----------------------------------------------------------------'); function test_Error() // BUG IN assertEqual { console.log("Test test_Error"); const x = new Error('message') const y = new Error('message') //console.log(x.stack === y.stack) claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') } test_Error(); function test_RangeError() { console.log("Test test_RangeError"); const x = new Error('message') const y = new RangeError('message') y.stack = x.stack claim(strictEqual(x,y) === assertEqual(x,y),'strictEqual(x,y) === assertEqual(x,y)') claim(!strictEqual(x,y), '!strictEqual(x,y)', true) } test_RangeError();