public void TestGetHashCode()
        {
            var obj = new ComparableTestClass();

            obj.GetHashCode();

            Assert.IsTrue(obj.GetHashCalled);
            Assert.IsFalse(obj.EqualsCalled);
        }
        public void TestEqualsWithNull()
        {
            var obj    = new ComparableTestClass();
            var result = obj.Equals(null);

            Assert.IsFalse(result);
            Assert.IsFalse(obj.EqualsCalled);
            Assert.IsFalse(obj.GetHashCalled);
        }
        public void TestEqualsWithSelf()
        {
            var obj    = new ComparableTestClass();
            var obj2   = obj;
            var result = obj.Equals(obj2);

            Assert.IsTrue(result);
            Assert.IsFalse(obj.EqualsCalled);
            Assert.IsFalse(obj.GetHashCalled);
        }
        public void TestEqualsWithDiffTypes()
        {
            var obj  = new ComparableTestClass();
            var obj2 = new ComparableTestClass2();

            var result = obj.Equals(obj2);

            Assert.IsFalse(result);
            Assert.IsFalse(obj.EqualsCalled);
            Assert.IsFalse(obj.GetHashCalled);
        }