<PackageReference Include="NUnit" Version="3.2.1" />

CollectionItemsEqualConstraint

CollectionItemsEqualConstraint is the abstract base class for all collection constraints that apply some notion of item equality as a part of their operation.
using System; using System.Collections; using System.Collections.Generic; namespace NUnit.Framework.Constraints { public abstract class CollectionItemsEqualConstraint : CollectionConstraint { private readonly NUnitEqualityComparer comparer = NUnitEqualityComparer.Default; public CollectionItemsEqualConstraint IgnoreCase { get { comparer.IgnoreCase = true; return this; } } protected CollectionItemsEqualConstraint() { } protected CollectionItemsEqualConstraint(object arg) : base(arg) { } public CollectionItemsEqualConstraint Using(IComparer comparer) { this.comparer.ExternalComparers.Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<T>(IComparer<T> comparer) { ((ICollection<EqualityAdapter>)this.comparer.ExternalComparers).Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<T>(Comparison<T> comparer) { ((ICollection<EqualityAdapter>)this.comparer.ExternalComparers).Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using(IEqualityComparer comparer) { this.comparer.ExternalComparers.Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<T>(IEqualityComparer<T> comparer) { ((ICollection<EqualityAdapter>)this.comparer.ExternalComparers).Add(EqualityAdapter.For(comparer)); return this; } internal CollectionItemsEqualConstraint Using(EqualityAdapter adapter) { comparer.ExternalComparers.Add(adapter); return this; } protected bool ItemsEqual(object x, object y) { Tolerance tolerance = Tolerance.Default; return comparer.AreEqual(x, y, ref tolerance); } protected CollectionTally Tally(IEnumerable c) { return new CollectionTally(comparer, c); } } }