Example #1
0
 private void AddDiffs(
     DiffBuilder collectionBuilder,
     IReadOnlyList <T> x,
     IReadOnlyList <T> y,
     MemberSettings settings)
 {
     for (var i = 0; i < Math.Max(x.Count, y.Count); i++)
     {
         var xv = x.ElementAtOrMissing(i);
         var yv = y.ElementAtOrMissing(i);
         collectionBuilder.UpdateCollectionItemDiff(xv, yv, i, settings);
     }
 }
        private void AddDiffs(
            DiffBuilder collectionBuilder,
            IEnumerable <T> x,
            IEnumerable <T> y,
            MemberSettings settings)
        {
            var i = -1;

            foreach (var pair in new PaddedPairs(x, y))
            {
                i++;
                collectionBuilder.UpdateCollectionItemDiff(pair.X, pair.Y, new Skip(i), settings);
            }
        }
Example #3
0
        private void AddDiffs(
            DiffBuilder collectionBuilder,
            Array x,
            Array y,
            MemberSettings settings)
        {
            if (TryGetRankDiff(x, y, out var rankDiff))
            {
                collectionBuilder.Add(rankDiff);
                return;
            }

            foreach (var index in x.Indices())
            {
                collectionBuilder.UpdateCollectionItemDiff(x.GetValue(index), y.GetValue(index), new Index(index), settings);
            }
        }
 private void AddDiffs(
     DiffBuilder collectionBuilder,
     IDictionary <TKey, TValue> x,
     IDictionary <TKey, TValue> y,
     MemberSettings settings)
 {
     using (var borrow = HashSetPool <TKey> .Borrow(EqualityComparer <TKey> .Default.Equals, EqualityComparer <TKey> .Default.GetHashCode))
     {
         borrow.Value.UnionWith(x.Keys);
         borrow.Value.UnionWith(y.Keys);
         foreach (var key in borrow.Value)
         {
             var xv = x.ElementAtOrMissing(key);
             var yv = y.ElementAtOrMissing(key);
             collectionBuilder.UpdateCollectionItemDiff(xv, yv, key, settings);
         }
     }
 }