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

MultipleOfConstraint

MultipleOfConstraint tests that the actual value is a multiple of a specified integer.
using System; using System.Runtime.CompilerServices; namespace NUnit.Framework.Constraints { [NullableContext(1)] [Nullable(0)] public class MultipleOfConstraint : Constraint { private readonly uint _multiple; public override string Description { get { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(12, 1); defaultInterpolatedStringHandler.AppendLiteral("MultipleOf("); defaultInterpolatedStringHandler.AppendFormatted(_multiple); defaultInterpolatedStringHandler.AppendLiteral(")"); return defaultInterpolatedStringHandler.ToStringAndClear(); } } public MultipleOfConstraint(int multiple) : base(Array.Empty<object>()) { Guard.ArgumentInRange(multiple > 0, "Multiple must be greater than zero", "multiple"); _multiple = (uint)multiple; } public override ConstraintResult ApplyTo<[Nullable(2)] TActual>(TActual actual) { bool isSuccess; if (((object)actual) is int || ((object)actual) is long || ((object)actual) is short || ((object)actual) is byte) { long num = Convert.ToInt64(actual); isSuccess = (num % (long)_multiple == 0); } else if (((object)actual) is uint || ((object)actual) is ulong || ((object)actual) is ushort || ((object)actual) is byte) { ulong num2 = Convert.ToUInt64(actual); isSuccess = (num2 % _multiple == 0); } else { isSuccess = false; } return new ConstraintResult(this, actual, isSuccess); } } }