<PackageReference Include="NUnit" Version="3.10.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 = new NUnitEqualityComparer(); protected bool IgnoringCase => _comparer.IgnoreCase; protected bool UsingExternalComparer => _comparer.ExternalComparers.Count > 0; public CollectionItemsEqualConstraint IgnoreCase { get { _comparer.IgnoreCase = true; return this; } } protected CollectionItemsEqualConstraint() { } protected CollectionItemsEqualConstraint(object arg) : base(arg) { } public CollectionItemsEqualConstraint Using(IComparer comparer) { _comparer.ExternalComparers.Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<T>(IComparer<T> comparer) { ((ICollection<EqualityAdapter>)_comparer.ExternalComparers).Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<T>(Comparison<T> comparer) { ((ICollection<EqualityAdapter>)_comparer.ExternalComparers).Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using(IEqualityComparer comparer) { _comparer.ExternalComparers.Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<T>(IEqualityComparer<T> comparer) { ((ICollection<EqualityAdapter>)_comparer.ExternalComparers).Add(EqualityAdapter.For(comparer)); return this; } public CollectionItemsEqualConstraint Using<T>(Func<T, T, bool> comparer) { ((ICollection<EqualityAdapter>)_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, true); } protected CollectionTally Tally(IEnumerable c) { return new CollectionTally(_comparer, c); } } }