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 obj = tolerance?.Amount;
bool flag;
if (obj is TimeSpan) {
TimeSpan t = (TimeSpan)obj;
flag = ((left - right).Duration() <= t);
} else
flag = (left == right);
if (flag && equalityComparer.WithSameOffset)
flag = (left.Offset == right.Offset);
if (!flag)
return EqualMethodResult.ComparedNotEqual;
return EqualMethodResult.ComparedEqual;
}
}
return EqualMethodResult.TypesNotSupported;
}
}
}