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

Interval

public sealed class Interval
Keeps track of an interval time which can be represented in Minutes, Seconds or Milliseconds
using System; using System.Runtime.CompilerServices; namespace NUnit.Framework.Constraints { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] public sealed class Interval { [System.Runtime.CompilerServices.NullableContext(0)] internal enum IntervalUnit { Minute, Second, Millisecond } private readonly int _value; private IntervalUnit _mode; public TimeSpan AsTimeSpan { get; set; } public Interval InMinutes { get { AsTimeSpan = TimeSpan.FromMinutes((double)_value); _mode = IntervalUnit.Minute; return this; } } public Interval InSeconds { get { AsTimeSpan = TimeSpan.FromSeconds((double)_value); _mode = IntervalUnit.Second; return this; } } public Interval InMilliseconds { get { AsTimeSpan = TimeSpan.FromMilliseconds((double)_value); _mode = IntervalUnit.Millisecond; return this; } } public bool IsNotZero => _value != 0; public Interval(int value) { _value = value; _mode = IntervalUnit.Millisecond; AsTimeSpan = TimeSpan.FromMilliseconds((double)value); } public override string ToString() { DefaultInterpolatedStringHandler defaultInterpolatedStringHandler = new DefaultInterpolatedStringHandler(1, 3); defaultInterpolatedStringHandler.AppendFormatted(_value); defaultInterpolatedStringHandler.AppendLiteral(" "); defaultInterpolatedStringHandler.AppendFormatted(_mode.ToString().ToLower()); defaultInterpolatedStringHandler.AppendFormatted((_value > 1) ? "s" : string.Empty); return defaultInterpolatedStringHandler.ToStringAndClear(); } } }