public static Element ReverseCopy(Element rootElement)
 {
     return new Element
     {
         Value = rootElement.Value,
         Elements = rootElement.Elements
                               .Reverse()
                               .Select(el => ReverseCopy(el))
                               .ToList()
     };
 }
        public void ComparerIgnoreOrderTest()
        {
            var elemA = new Element(1, 4);
            var elemB = Element.ReverseCopy(elemA);

            var comparer = new CompareLogic();
            comparer.Config.IgnoreCollectionOrder = true;

            ComparisonResult result = comparer.Compare(elemA, elemB);
            Assert.IsTrue(result.Differences.Count == 0); //difference count should be 0 but 1 difference is found
        }