diff --git a/AioNet.ReflectionTest/DeepComparisonTest.cs b/AioNet.ReflectionTest/DeepComparisonTest.cs new file mode 100644 index 0000000..9f43fd8 --- /dev/null +++ b/AioNet.ReflectionTest/DeepComparisonTest.cs @@ -0,0 +1,89 @@ +using System.Drawing; +using AioNet.Reflection; + +namespace AioNet.ReflectionTest; + +public class DeepComparisonTest +{ + [Fact] + public void IntComparison() + { + Assert.True(1.RecursiveFieldsEqual(1)); + } + + [Fact] + public void IntFalseComparison() + { + Assert.False(1.RecursiveFieldsEqual(2)); + } + + [Fact] + public void StringComparison() + { + Assert.True("some string".RecursiveFieldsEqual("some string")); + } + + [Fact] + public void StringFalseComparison() + { + Assert.False("some string".RecursiveFieldsEqual("some-string")); + } + + [Fact] + public void NullComparison() + { + Assert.True(DeepComparison.RecursiveFieldsEqual(null, null)); + } + + [Fact] + public void NullFirstFalseComparison() + { + Assert.False(DeepComparison.RecursiveFieldsEqual(null, "some-string")); + } + + [Fact] + public void NullSecondFalseComparison() + { + Assert.False("some string".RecursiveFieldsEqual(null)); + } + + [Fact] + public void TupleComparison() + { + Assert.True((1, "true").RecursiveFieldsEqual((1, "true"))); + } + + [Fact] + public void TupleFalseComparison() + { + Assert.False((1, "true").RecursiveFieldsEqual((1, "truo"))); + } + + [Fact] + public void PointComparison() + { + Point point1 = new Point { X = 55, Y = 99 }; + + Point point2 = new Point { X = 55, Y = 99 }; + + Assert.True(point1.RecursiveFieldsEqual(point2)); + } + + [Fact] + public void PointFalseComparison() + { + Point point1 = new Point { X = 55, Y = 99 }; + + Point point2 = new Point { X = 55, Y = 91 }; + + Assert.False(point1.RecursiveFieldsEqual(point2)); + } + + [Fact] + public void ArrayComparison() + { + int[] x = new[] { 1, 2, 3 }; + int[] y = new[] { 1, 2, 3 }; + Assert.True(x.RecursiveFieldsEqual(y)); + } +}