GetTypeEqualityFunction_CustomTypeWithEqualsMethodWithWrongParameterType_IgnoresCustomMethodAndUsesObjectEquals
            ()
        {
            TestTypeWithEqualsWithWrongType testObject = new TestTypeWithEqualsWithWrongType(false);

            Func <object, object, bool> equalityFunction =
                typeof(TestTypeWithEqualsWithWrongType).GetTypeEqualityFunction();

            Assert.IsTrue(
                equalityFunction(testObject, testObject),
                "The function returned by GetTypeEqualityFunction should fall back on object.Equals when custom methods do no accept the correct parameters.");
            Assert.IsFalse(
                testObject.EqualsCalled,
                "The function returned by GetTypeEqualityFunction should fall back on object.Equals when custom methods do no accept the correct parameters.");
        }
            GetTypeEqualityFunction_CustomTypeWithEqualsMethodWithWrongParameterType_IgnoresCustomMethodAndUsesObjectEquals
            ()
        {
            TestTypeWithEqualsWithWrongType testObject = new TestTypeWithEqualsWithWrongType(false);

            Func<object, object, bool> equalityFunction =
                typeof (TestTypeWithEqualsWithWrongType).GetTypeEqualityFunction();
            Assert.IsTrue(
                equalityFunction(testObject, testObject),
                "The function returned by GetTypeEqualityFunction should fall back on object.Equals when custom methods do no accept the correct parameters.");
            Assert.IsFalse(
                testObject.EqualsCalled,
                "The function returned by GetTypeEqualityFunction should fall back on object.Equals when custom methods do no accept the correct parameters.");
        }