public void OneDifferentObjectMemberCausesInequality() { PAssert.That(() => !FieldwiseEquality.AreEqual(Tuple.Create(1, 2, "3", 4), Tuple.Create(11, 2, "3", 4))); PAssert.That(() => !FieldwiseEquality.AreEqual(Tuple.Create(1, 2, "3", 4), Tuple.Create(1, 12, "3", 4))); PAssert.That(() => !FieldwiseEquality.AreEqual(Tuple.Create(1, 2, "3", 4), Tuple.Create(1, 2, "13", 4))); PAssert.That(() => !FieldwiseEquality.AreEqual(Tuple.Create(1, 2, "3", 4), Tuple.Create(1, 2, "3", 14))); }
public void TuplesWithTheSameFieldValuesAreEqual() { //it's important that this is a class not struct instance so we've checked that //also, that means we're accessing another assemblies private fields PAssert.That(() => FieldwiseEquality.AreEqual(Tuple.Create(1, 2, "3", 4), Tuple.Create(1, 2, "3", 4))); }
public void ClassStructFieldsAffectEquality() { var object1 = new SampleClass { PlainStruct = new CustomStruct { Bla = 1 } }; var object2 = new SampleClass { PlainStruct = new CustomStruct { Bla = 2 } }; var object3A = new SampleClass { PlainStruct = new CustomStruct { Bla = 3 } }; var object3B = new SampleClass { PlainStruct = new CustomStruct { Bla = 3 } }; PAssert.That(() => !FieldwiseEquality.AreEqual(object1, object2)); PAssert.That(() => FieldwiseEquality.AreEqual(object3A, object3B)); }
public void CanCheckEqualityWithNull() { PAssert.That(() => !FieldwiseEquality.AreEqual(Tuple.Create(1), null)); PAssert.That(() => !FieldwiseEquality.AreEqual(null, Tuple.Create(1))); PAssert.That(() => FieldwiseEquality.AreEqual <SampleStruct?>(null, null)); PAssert.That(() => FieldwiseEquality.AreEqual <SampleClass>(null, null)); }
public void NonIdenticalValuesAreNotEqual() { var a = new SampleSubWithPrivateInherited(1); var b = new SampleSubWithPrivateInherited(2); PAssert.That(() => !FieldwiseEquality.AreEqual(a, b) && !ReferenceEquals(a, b) ); }
public void IdenticalValuesAreEqual() { var a = new SampleSubWithProtectedInherited(1); var b = new SampleSubWithProtectedInherited(1); PAssert.That(() => FieldwiseEquality.AreEqual(a, b) && !ReferenceEquals(a, b) ); }
public void TypeDoesNotAffectRuntimeEquality() { var sampleClass = new SampleClass { AnEnum = SampleEnum.Q }; var sampleSubClass = new SampleSubClass { AnEnum = SampleEnum.Q }; //This is really pretty unwanted behavior PAssert.That(() => FieldwiseEquality.AreEqual(sampleClass, sampleSubClass)); }
public void AutoPropsAffectEquality() { PAssert.That(() => FieldwiseEquality.AreEqual(new SampleClass { AutoPropWithPrivateBackingField = "x" }, new SampleClass { AutoPropWithPrivateBackingField = "x" })); PAssert.That(() => !FieldwiseEquality.AreEqual(new SampleClass { AutoPropWithPrivateBackingField = "x" }, new SampleClass { AutoPropWithPrivateBackingField = "y" })); }
public void SubClassesVerifyEqualityOfBaseClassFields() { PAssert.That(() => !FieldwiseEquality.AreEqual(new SampleSubClassWithFields { AnEnum = SampleEnum.Q }, new SampleSubClassWithFields { AnEnum = SampleEnum.P })); PAssert.That(() => FieldwiseEquality.AreEqual(new SampleSubClassWithFields { AnEnum = SampleEnum.Q }, new SampleSubClassWithFields { AnEnum = SampleEnum.Q })); }
public void StructFieldsAffectEquality() { PAssert.That(() => FieldwiseEquality.AreEqual(new SampleClass { PlainStruct = { Bla = 1 } }, new SampleClass { PlainStruct = { Bla = 1 } })); PAssert.That(() => !FieldwiseEquality.AreEqual(new SampleClass { PlainStruct = { Bla = 1 } }, new SampleClass { PlainStruct = { Bla = 2 } })); }
public void ClassNullableIntFieldsAffectEquality() { var object1 = new SampleClass { NullableField = null }; var object2 = new SampleClass { NullableField = 1 }; PAssert.That(() => !FieldwiseEquality.AreEqual(object1, object2)); PAssert.That(() => FieldwiseEquality.AreEqual(new SampleClass { NullableField = 3 }, new SampleClass { NullableField = 3 })); }
public void StructIntFieldsAffectEquality() { var customStruct1 = new CustomStruct { Bla = 1 }; var customStruct2 = new CustomStruct { Bla = 2 }; PAssert.That(() => !FieldwiseEquality.AreEqual(customStruct1, customStruct2)); PAssert.That(() => FieldwiseEquality.AreEqual(new CustomStruct { Bla = 3 }, new CustomStruct { Bla = 3 })); }
public void StructFieldsAffectEquality() { //MemberMemberBindings are buggy, so use PlainStruct=new... syntax; ref https://github.com/dotnet/corefx/issues/37968 PAssert.That(() => FieldwiseEquality.AreEqual(new SampleClass { PlainStruct = new CustomStruct { Bla = 1 } }, new SampleClass { PlainStruct = new CustomStruct { Bla = 1 } })); PAssert.That(() => !FieldwiseEquality.AreEqual(new SampleClass { PlainStruct = new CustomStruct { Bla = 1 } }, new SampleClass { PlainStruct = new CustomStruct { Bla = 2 } })); }
public void CanCheckEqualityWithNull() { PAssert.That(() => !FieldwiseEquality.AreEqual(Tuple.Create(1), null)); }
public void TuplesWithTheSameFieldValuesAreEqual() => PAssert.That(() => FieldwiseEquality.AreEqual(Tuple.Create(1, 2, "3", 4), Tuple.Create(1, 2, "3", 4)) );