deep-copy-diagnostics
Version:
Ultra-fast definitive testing for deep copies and deep copy algorithms
177 lines (133 loc) • 3.49 kB
JavaScript
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()