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