1 | var test = require('tap').test;
|
2 | var traverse = require('../');
|
3 | var deepEqual = require('./lib/deep_equal');
|
4 |
|
5 | test('super_deep', function (t) {
|
6 | var util = require('util');
|
7 | var a0 = make();
|
8 | var a1 = make();
|
9 | t.ok(deepEqual(a0, a1));
|
10 |
|
11 | a0.c.d.moo = true;
|
12 | t.ok(!deepEqual(a0, a1));
|
13 |
|
14 | a1.c.d.moo = true;
|
15 | t.ok(deepEqual(a0, a1));
|
16 |
|
17 |
|
18 |
|
19 |
|
20 | t.end();
|
21 | });
|
22 |
|
23 | function make () {
|
24 | var a = { self : 'a' };
|
25 | var b = { self : 'b' };
|
26 | var c = { self : 'c' };
|
27 | var d = { self : 'd' };
|
28 | var e = { self : 'e' };
|
29 |
|
30 | a.a = a;
|
31 | a.b = b;
|
32 | a.c = c;
|
33 |
|
34 | b.a = a;
|
35 | b.b = b;
|
36 | b.c = c;
|
37 |
|
38 | c.a = a;
|
39 | c.b = b;
|
40 | c.c = c;
|
41 | c.d = d;
|
42 |
|
43 | d.a = a;
|
44 | d.b = b;
|
45 | d.c = c;
|
46 | d.d = d;
|
47 | d.e = e;
|
48 |
|
49 | e.a = a;
|
50 | e.b = b;
|
51 | e.c = c;
|
52 | e.d = d;
|
53 | e.e = e;
|
54 |
|
55 | return a;
|
56 | }
|