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

DateTimeOffsetsComparer

Comparator for two DateTimeOffsets.
using System; using System.Runtime.CompilerServices; namespace NUnit.Framework.Constraints.Comparers { internal static class DateTimeOffsetsComparer { [System.Runtime.CompilerServices.NullableContext(1)] public static EqualMethodResult Equal(object x, object y, ref Tolerance tolerance, ComparisonState state, NUnitEqualityComparer equalityComparer) { if (x is DateTimeOffset) { DateTimeOffset left = (DateTimeOffset)x; if (y is DateTimeOffset) { DateTimeOffset right = (DateTimeOffset)y; object amount = tolerance.Amount; bool flag; if (amount is TimeSpan) { TimeSpan t = (TimeSpan)amount; flag = ((left - right).Duration() <= t); } else { if (tolerance.Mode != 0) return EqualMethodResult.ToleranceNotSupported; flag = (left == right); } if (flag && equalityComparer.WithSameOffset) flag = (left.Offset == right.Offset); if (!flag) return EqualMethodResult.ComparedNotEqual; return EqualMethodResult.ComparedEqual; } } return EqualMethodResult.TypesNotSupported; } } }