示例#1
0
 public void EnumerableTest()
 {
     Assert.True(DeepComparison.AreSame(new int[0], new int[0]));
     Assert.True(DeepComparison.AreSame(new[] { 1 }, new[] { 1 }));
     Assert.True(DeepComparison.AreSame(new[] { 1, 2, 3, 4 }, new[] { 1, 2, 3, 4 }));
     Assert.False(DeepComparison.AreSame(new[] { 1, 2, 3, 4 }, new[] { 1, 2, 3 }));
     Assert.False(DeepComparison.AreSame(new[] { 1, 2, 3, 4 }, new[] { 1, 2, 3, 5 }));
 }
示例#2
0
        static void Main(string[] args)
        {
            var a = new Student {
                MyProperty = new[] { 3 }
            };
            var b = new Student {
                MyProperty = new[] { 3 }
            };

            bool diff = DeepComparison <Student> .Compare(a, b, depth : 1);

            // new CultureInfo("en-US"), new CultureInfo("en-NZ")
            Console.WriteLine(diff);
        }
示例#3
0
        public void OrdinalCompare()
        {
            Assert.True(DeepComparison.AreSame(1, 1));
            Assert.True(DeepComparison.AreSame(1.0, 1.0));
            Assert.True(DeepComparison.AreSame(StringComparison.CurrentCulture, StringComparison.CurrentCulture));
            Assert.True(DeepComparison.AreSame("Hello", "Hello"));
            Assert.True(DeepComparison.AreSame(true, true));

            Assert.False(DeepComparison.AreSame(1, 10));
            Assert.False(DeepComparison.AreSame(1.0, 1.09));
            Assert.False(DeepComparison.AreSame(StringComparison.InvariantCulture, StringComparison.CurrentCulture));
            Assert.False(DeepComparison.AreSame("Hello", "Hello1"));
            Assert.False(DeepComparison.AreSame(true, false));
        }
示例#4
0
        public void SimpleFieldCompare()
        {
            var f1 = new FieldCompareClass {
                Prop1 = "a"
            };
            var f2 = new FieldCompareClass {
                Prop1 = "a"
            };
            var f3 = new FieldCompareClass {
                Prop1 = "b"
            };

            Assert.True(DeepComparison.AreSame(f1, f2));
            Assert.False(DeepComparison.AreSame(f1, f3));
        }
示例#5
0
 public void DifferentTypesAreDifferent()
 {
     Assert.False(DeepComparison.AreSame(true, "true"));
 }
示例#6
0
 public void NullBehavior()
 {
     Assert.False(DeepComparison.AreSame(null, "true"));
     Assert.False(DeepComparison.AreSame("true", null));
     Assert.True(DeepComparison.AreSame(null, null));
 }
示例#7
0
 public void CountTheEnums()
 {
     AssertEx.Throws <Exception>("{Item}[0] (IComparable Differs)\r\nExpected: 1\r\nActual:   2", () => DeepComparison.AreSame(new[] { 1, 1 }, new[] { 2, 1 }, true));
     AssertEx.Throws <Exception>("{Item}[1] (IComparable Differs)\r\nExpected: 1\r\nActual:   2", () => DeepComparison.AreSame(new[] { 1, 1 }, new[] { 1, 2 }, true));
 }
示例#8
0
 public void EnumLengthDiffers()
 {
     AssertEx.Throws <Exception>("{Item} (Lengths Unequal)\r\nExpected: Int32[] [1]\r\nActual:   Int32[] [1, 2]", () => DeepComparison.AreSame(new[] { 1 }, new[] { 1, 2 }, true));
 }
示例#9
0
        public void FieldCompare()
        {
            var f2 = new SimpleCompareClass {
                Field1 = "a"
            };
            var f3 = new SimpleCompareClass {
                Field1 = "b"
            };

            AssertEx.Throws <Exception>("{Item}.Field1 (IComparable Differs)\r\nExpected: a\r\nActual:   b", () => DeepComparison.AreSame(f2, f3, true));
        }
示例#10
0
        public void ArrayPropCompare()
        {
            var f2 = new [] { new SimpleCompareClass {
                                  Prop1 = "a"
                              } };
            var f3 = new[] { new SimpleCompareClass {
                                 Prop1 = "b"
                             } };

            AssertEx.Throws <Exception>("{Item}[0].Prop1 (IComparable Differs)\r\nExpected: a\r\nActual:   b", () => DeepComparison.AreSame(f2, f3, true));
        }
示例#11
0
 public void AssertSimpleObjectDifferent()
 {
     AssertEx.Throws <Exception>("{Item} (IComparable Differs)\r\nExpected: 1\r\nActual:   2", () => DeepComparison.AreSame(1, 2, true));
 }