DateTimeOffsetsComparer
Comparator for two DateTimeOffsets.
using System;
namespace NUnit.Framework.Constraints.Comparers
{
internal sealed class DateTimeOffsetsComparer : IChainComparer
{
private readonly NUnitEqualityComparer _equalityComparer;
internal DateTimeOffsetsComparer(NUnitEqualityComparer equalityComparer)
{
_equalityComparer = equalityComparer;
}
public bool? Equal(object x, object y, ref Tolerance tolerance, bool topLevelComparison = true)
{
if (!(x is DateTimeOffset) || !(y is DateTimeOffset))
return null;
DateTimeOffset left = (DateTimeOffset)x;
DateTimeOffset right = (DateTimeOffset)y;
bool flag;
if (tolerance != null && tolerance.Amount is TimeSpan) {
TimeSpan t = (TimeSpan)tolerance.Amount;
flag = ((left - right).Duration() <= t);
} else
flag = (left == right);
if (flag && _equalityComparer.WithSameOffset)
flag = (left.Offset == right.Offset);
return flag;
}
}
}