ArraysComparer
Comparator for two Arrays.
using System;
using System.Runtime.CompilerServices;
namespace NUnit.Framework.Constraints.Comparers
{
internal static class ArraysComparer
{
[System.Runtime.CompilerServices.NullableContext(1)]
public static EqualMethodResult Equal(object x, object y, ref Tolerance tolerance, ComparisonState state, NUnitEqualityComparer equalityComparer)
{
if (!x.GetType().IsArray || !y.GetType().IsArray || equalityComparer.CompareAsCollection)
return EqualMethodResult.TypesNotSupported;
Array array = (Array)x;
Array array2 = (Array)y;
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);
}
}
}