Add _.isEqual test for transitive equivalence.

This commit is contained in:
John-David Dalton
2016-07-17 10:16:05 -07:00
parent 232cc1ab34
commit 249f0cd72c

View File

@@ -9610,6 +9610,20 @@
assert.strictEqual(_.isEqual(array1, array2), false);
});
QUnit.test('should have transitive equivalence for circular references of arrays', function(assert) {
assert.expect(3);
var array1 = [],
array2 = [array1],
array3 = [array2];
array1[0] = array1;
assert.strictEqual(_.isEqual(array1, array2), true);
assert.strictEqual(_.isEqual(array2, array3), true);
assert.strictEqual(_.isEqual(array1, array3), true);
});
QUnit.test('should compare objects with circular references', function(assert) {
assert.expect(4);
@@ -9638,6 +9652,20 @@
assert.strictEqual(_.isEqual(object1, object2), false);
});
QUnit.test('should have transitive equivalence for circular references of objects', function(assert) {
assert.expect(3);
var object1 = {},
object2 = { 'a': object1 },
object3 = { 'a': object2 };
object1.a = object1;
assert.strictEqual(_.isEqual(object1, object2), true);
assert.strictEqual(_.isEqual(object2, object3), true);
assert.strictEqual(_.isEqual(object1, object3), true);
});
QUnit.test('should compare objects with multiple circular references', function(assert) {
assert.expect(3);