public void ReferenceTypeMembersAndOverriddenEquals()
        {
            var wr_no_1 = new WithRefNoOverride {
                X = 1, Y = 2, Description = "struct wo1"
            };
            var wr_no_2 = new WithRefNoOverride {
                X = 1, Y = 2, Description = "struct wo2"
            };

            var wr_wo_1 = new WithRefWithOverride {
                X = 1, Y = 2, Description = "struct w1"
            };
            var wr_wo_2 = new WithRefWithOverride {
                X = 1, Y = 2, Description = "struct w2"
            };

            var timeWithRefMembersAndNoOverridenEquals        = CalculateEqualsPerformance(wr_no_1, wr_no_2);
            var timeWithRefrenceMembersAndWithOverridenValues = CalculateEqualsPerformance(wr_wo_1, wr_wo_2);
        }
        public void ReferenceTypeMembersAndOverriddenEquals()
        {
            var wo1 = new WithRefNoOverride {
                X = 1, Y = 2, Description = "struct wo1"
            };
            var wo2 = new WithRefNoOverride {
                X = 1, Y = 2, Description = "struct wo2"
            };

            var w1 = new WithRefWithOverride {
                X = 1, Y = 2, Description = "struct w1"
            };
            var w2 = new WithRefWithOverride {
                X = 1, Y = 2, Description = "struct w2"
            };


            var timeWithNoOverriddenEquals = CalculateEqualsPerformance(wo1, wo2);
            var timeWithOverriddenEquals   = CalculateEqualsPerformance(w1, w2);
        }