UNPKG

deep-copy-diagnostics

Version:

Ultra-fast definitive testing for deep copies and deep copy algorithms

177 lines (133 loc) 3.49 kB
const {deepEquivalent} = require("../deep-equivalent.js") function claim(b, message) { if(b) console.log(`\u2713 ${message} is true`) else console.log(`\u2639 ${message} is false: should be true`) console.log(deepEquivalent.message) } function test1() // PASSED { console.log('test 1') const x = new Boolean(true) const y = new Boolean(false) claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)') } test1() function test2() // PASSED { console.log('test 2') const a = new Map() const b = Object.create(Map.prototype) claim(!deepEquivalent(a,b), '!deepEquivalent(x,y)') } test2() function test2b() // PASSED { console.log('test 2b') const a = new Map() const b = Object.create(Object.create(Map.prototype)) claim(!deepEquivalent(a,b), '!deepEquivalent(x,y)') } test2b() function test2c() // PASSED { console.log('test 2c') const a = Object.create(Map.prototype) const b = Object.create(Object.create(Map.prototype)) claim(!deepEquivalent(a,b), '!deepEquivalent(x,y)') } test2c() function test2d() // PASSED { console.log('test 2d') let x = new Map() let y = Map.prototype claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)') } test2d() function test2e() // PASSED { console.log('test 2e') const x = Map.prototype const y = Set.prototype claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)') } test2e() function test3() // PASSED { console.log('test 3') const a = new Map([[1,2]]) const b = new Map([[1,3]]) claim(!deepEquivalent(a,b), '!deepEquivalent(x,y)') } test3() function test4() // PASSED OK DIFFERENT DESIGN { console.log('test 4') const x = {} x.a = {} x.b = x const y = {} y.a = {} y.b = x claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)') } test4() function test5() { console.log('test 5') const buffer = new Uint8Array([1,2,3]).buffer const a = new Uint8Array(buffer, 1,2) const b = new Uint8Array(buffer) claim(!deepEquivalent(a,b), '!deepEquivalent(x,y)') } test5() function test5a() { console.log('test 5a') const buffer = new Uint8Array([1,2,3]).buffer const a = new Uint8Array(buffer) const b = new Uint8Array(buffer) claim(deepEquivalent(x,y), 'deepEquivalent(x,y)') } function test6() // PASSED { console.log('test 6') const x = new Error('message') const y = new Error('message') // console.log(x.stack !== y.stack) true claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)') } test6() function test6a() // { console.log('test 6a') const x = new Error('message') const y = new RangeError('message') // console.log(x.stack !== y.stack) true claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)') } function test7() { console.log('test 7') const x = new Boolean(true) const y = new Uint8Array([1,2,3]) claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)') } test7() function test8() { console.log('test 8') const x = new Date(123) const y = new Date() claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)') } test8() function test9() // { console.log('test 9') const x = new Int8Array([1]) const y = new Uint8Array([1]) claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)') } test9()