ArraysComparer
Comparator for two Arrays.
using System;
using System.Runtime.CompilerServices;
namespace NUnit.Framework.Constraints.Comparers
{
internal static class ArraysComparer
{
[NullableContext(1)]
public static EqualMethodResult Equal(object x, object y, ref Tolerance tolerance, ComparisonState state, NUnitEqualityComparer equalityComparer)
{
Array array = x as Array;
if (array != null) {
Array array2 = y as Array;
if (array2 != null && !equalityComparer.CompareAsCollection) {
int rank = array.Rank;
if (rank != array2.Rank)
return EqualMethodResult.ComparedNotEqual;
for (int i = 1; i < rank; i++) {
if (array.GetLength(i) != array2.GetLength(i))
return EqualMethodResult.ComparedNotEqual;
}
return EnumerablesComparer.Equal(array, array2, ref tolerance, state, equalityComparer);
}
}
return EqualMethodResult.TypesNotSupported;
}
}
}