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

ComparisonConstraint

public abstract class ComparisonConstraint : Constraint
Abstract base class for constraints that compare values to determine if one is greater than, equal to or less than the other.
using System; using System.Collections; using System.Collections.Generic; namespace NUnit.Framework.Constraints { public abstract class ComparisonConstraint : Constraint { private object _expected; private Tolerance _tolerance = Tolerance.Default; private ComparisonAdapter _comparer = ComparisonAdapter.Default; public ComparisonConstraint Percent { get { _tolerance = _tolerance.Percent; Description += " percent"; return this; } } protected ComparisonConstraint(object expected) : base(expected) { Guard.ArgumentValid(expected != null, "Cannot compare using a null reference.", "_expected"); _expected = expected; } public override ConstraintResult ApplyTo<TActual>(TActual actual) { Guard.ArgumentValid(actual != null, "Cannot compare to a null reference.", "actual"); return new ConstraintResult(this, actual, PerformComparison(_comparer, actual, _expected, _tolerance)); } protected abstract bool PerformComparison(ComparisonAdapter comparer, object actual, object expected, Tolerance tolerance); public ComparisonConstraint Using(IComparer comparer) { _comparer = ComparisonAdapter.For(comparer); return this; } public ComparisonConstraint Using<T>(IComparer<T> comparer) { _comparer = ComparisonAdapter.For(comparer); return this; } public ComparisonConstraint Using<T>(Comparison<T> comparer) { _comparer = ComparisonAdapter.For(comparer); return this; } public ComparisonConstraint Within(object amount) { if (!_tolerance.IsUnsetOrDefault) throw new InvalidOperationException("Within modifier may appear only once in a constraint expression"); _tolerance = new Tolerance(amount); Description = Description + " within " + MsgUtils.FormatValue(amount); return this; } } }