copy-deep.js 935 Bytes
'use strict';

var stringify = JSON.stringify;

module.exports = function (t, a) {
	var o = { 1: 'raz', 2: 'dwa', 3: 'trzy' }
	  , no = t(o);

	a.not(no, o, "Return different object");
	a(stringify(no), stringify(o), "Match properties and values");

	o = { foo: 'bar', raz: { dwa: 'dwa',
		trzy: { cztery: 'pięć', 'sześć': 'siedem' }, osiem: {},
		'dziewięć': function () { } },
		'dziesięć': 10, "jedenaście": ['raz', ['dwa', 'trzy', { elo: "true" }]] };
	o.raz.rec = o;

	no = t(o);
	a.not(o.raz, no.raz, "Deep");
	a.not(o.raz.trzy, no.raz.trzy, "Deep #2");
	a(stringify(o.raz.trzy), stringify(no.raz.trzy), "Deep content");
	a(no.raz.rec, no, "Recursive");
	a.not(o.raz.osiem, no.raz.osiem, "Empty object");
	a(o.raz['dziewięć'], no.raz['dziewięć'], "Function");
	a.not(o['jedenaście'], no['jedenaście']);
	a.not(o['jedenaście'][1], no['jedenaście'][1]);
	a.not(o['jedenaście'][1][2], no['jedenaście'][1][2]);
};