super_deep.js 918 B

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