public void TwoNestedInstanceOfTheSameObject_ShouldReturn_True()
        {
            var t1 = new TestTargetWrap {
                Target = new TestTarget {
                    S = "1", I = 1
                }, S = "S"
            };
            var t2 = t1;

            Assert.Equal(t1, t2, new PropertiesComparer <TestTargetWrap>());
        }
        public void NewObject_ShouldReturn_True()
        {
            var t1 = new TestTarget();
            var t2 = new TestTarget();

            Assert.Equal(t1, t2, new PropertiesComparer <TestTarget>());

            var w1 = new TestTargetWrap();
            var w2 = new TestTargetWrap();

            Assert.Equal(w1, w2, new PropertiesComparer <TestTargetWrap>());
        }
        public void TwoNestedInstanceWithDifferentProperties_ShouldReturn_False()
        {
            var t1 = new TestTargetWrap {
                Target = new TestTarget {
                    S = "1", I = 1
                }, S = "S"
            };
            var t2 = new TestTargetWrap {
                Target = new TestTarget {
                    S = "1A", I = 1
                }, S = "S"
            };

            Assert.NotEqual(t1, t2, new PropertiesComparer <TestTargetWrap>());
        }