deep-copy-diagnostics
Version:
Ultra-fast definitive testing for deep copies and deep copy algorithms
302 lines (250 loc) • 8.42 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)
}
console.log('-----------------------------------------------------------------');
function test_BigInt()
{
console.log("test_BigInt");
const x = BigInt(7)
const y = BigInt(8)
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_BigInt();
console.log('-----------------------------------------------------------------');
function test_Symbol()
{
console.log("test_Symbol");
const x = Symbol()
const y = Symbol()
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Symbol();
console.log('-----------------------------------------------------------------');
function test_Symbola()
{
console.log("test_Symbola");
const x = new Error('message')
const y = Symbol()
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Symbola();
console.log('-----------------------------------------------------------------');
function test_BigInt_a()
{
console.log("test_BigInt_a");
const x = 123n
const y = 1234n
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_BigInt_a();
console.log('-----------------------------------------------------------------');
function test_Boolean()
{
console.log("test_Boolean");
const x = new Boolean(true)
const y = new Boolean(false)
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Boolean();
console.log('-----------------------------------------------------------------');
function test_Number()
{
console.log("test_Number");
const x = new Number(1)
const y = new Number(2)
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Number();
console.log('-----------------------------------------------------------------');
function test_String()
{
console.log("test_String");
const x = new Number("dog")
const y = new Number("hamster")
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Number();
console.log('-----------------------------------------------------------------');
function test_Date()
{
console.log("test_Date");
const x = new Date(123)
const y = new Date(1234)
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Date();
console.log('-----------------------------------------------------------------');
function test_RegExp()
{
console.log("test_RegExp");
const x = /abc/
const y = /abc/g
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_RegExp();
console.log('-----------------------------------------------------------------');
function test_Array()
{
console.log("test_Array");
const x = [1]
const y = [2]
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Array();
console.log('-----------------------------------------------------------------');
function test_Function()
{
console.log("test_Function");
const x = function bax(){}
const y = function (){}
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Function();
console.log('-----------------------------------------------------------------');
function test_Uint8Array()
{
console.log("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(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Uint8Array();
console.log('-----------------------------------------------------------------');
function test_Uint8Arraya()
{
console.log("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(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Uint8Arraya();
console.log('-----------------------------------------------------------------');
function test_Uint8Arrayb()
{
console.log("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(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Uint8Arrayb();
console.log('-----------------------------------------------------------------');
function test_Map()
{
console.log("test_Map");
const x = new Map()
const y = new Map([[{},{}]])
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Map();
console.log('-----------------------------------------------------------------');
function test_Set()
{
console.log("test_Set");
const x = new Set()
const y = new Set([{}])
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Set();
console.log('-----------------------------------------------------------------');
function test_Seta()
{
console.log("test_Seta");
const x = new Set([{a:1}])
const y = new Set([{a:2}])
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Seta();
console.log('-----------------------------------------------------------------');
function test_DataView()
{
console.log("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(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_DataView()
console.log('-----------------------------------------------------------------');
function test_DataViewa()
{
console.log("test_DataView");
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(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_DataViewa()
console.log('-----------------------------------------------------------------');
function test_ArrayBuffer()
{
console.log("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(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_ArrayBuffer()
console.log('-----------------------------------------------------------------');
function test_ArrayBuffera()
{
console.log("test_ArrayBuffer");
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(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_ArrayBuffera()
console.log('-----------------------------------------------------------------');
function test_ArrayBufferb()
{
console.log("test_ArrayBuffer");
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(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_ArrayBufferb()
console.log('-----------------------------------------------------------------');
function test_WeakSet()
{
console.log("test_WeakSet");
const x = new WeakSet()
const y = new WeakSet()
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_WeakSet()
console.log('-----------------------------------------------------------------');
function test_WeakMap()
{
console.log("test_WeakMap");
const x = new WeakMap()
const y = new WeakMap()
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_WeakMap()
console.log('-----------------------------------------------------------------');
function test_Error()
{
console.log("test_Error");
const x = new Error('message')
const y = new Error('message')
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_Error();
function test_RangeError()
{
console.log("test_RangeError");
const x = new Error('message')
const y = new RangeError('message')
y.stack = x.stack
claim(!deepEquivalent(x,y), '!deepEquivalent(x,y)')
}
test_RangeError();