|
9741 | 9741 | }); |
9742 | 9742 |
|
9743 | 9743 | QUnit.test('should compare arrays with circular references', function(assert) { |
9744 | | - assert.expect(4); |
| 9744 | + assert.expect(6); |
9745 | 9745 |
|
9746 | 9746 | var array1 = [], |
9747 | 9747 | array2 = []; |
|
9766 | 9766 | array2 = ['a', ['a', 'b', 'c'], 'c']; |
9767 | 9767 |
|
9768 | 9768 | assert.strictEqual(_.isEqual(array1, array2), false); |
| 9769 | + |
| 9770 | + array1 = [[[]]]; |
| 9771 | + array1[0][0][0] = array1; |
| 9772 | + array2 = []; |
| 9773 | + array2[0] = array2; |
| 9774 | + |
| 9775 | + assert.strictEqual(_.isEqual(array1, array2), false); |
| 9776 | + assert.strictEqual(_.isEqual(array2, array1), false); |
9769 | 9777 | }); |
9770 | 9778 |
|
9771 | 9779 | QUnit.test('should have transitive equivalence for circular references of arrays', function(assert) { |
|
9783 | 9791 | }); |
9784 | 9792 |
|
9785 | 9793 | QUnit.test('should compare objects with circular references', function(assert) { |
9786 | | - assert.expect(4); |
| 9794 | + assert.expect(6); |
9787 | 9795 |
|
9788 | 9796 | var object1 = {}, |
9789 | 9797 | object2 = {}; |
|
9808 | 9816 | object2 = { 'a': 1, 'b': { 'a': 1, 'b': 2, 'c': 3 }, 'c': 3 }; |
9809 | 9817 |
|
9810 | 9818 | assert.strictEqual(_.isEqual(object1, object2), false); |
| 9819 | + |
| 9820 | + object1 = {self: {self: {self: {}}}}; |
| 9821 | + object1.self.self.self = object1; |
| 9822 | + object2 = {self: {}}; |
| 9823 | + object2.self = object2; |
| 9824 | + |
| 9825 | + assert.strictEqual(_.isEqual(object1, object2), false); |
| 9826 | + assert.strictEqual(_.isEqual(object2, object1), false); |
9811 | 9827 | }); |
9812 | 9828 |
|
9813 | 9829 | QUnit.test('should have transitive equivalence for circular references of objects', function(assert) { |
|
0 commit comments