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

StringsComparer

static class StringsComparer
Comparator for two Strings.
using System; using System.Runtime.CompilerServices; namespace NUnit.Framework.Constraints.Comparers { [NullableContext(1)] [Nullable(0)] internal static class StringsComparer { public static EqualMethodResult Equal(object x, object y, ref Tolerance tolerance, ComparisonState state, NUnitEqualityComparer equalityComparer) { string text = x as string; if (text != null) { string text2 = y as string; if (text2 != null) { if (tolerance.HasVariance) return EqualMethodResult.ToleranceNotSupported; if (!Equals(text, text2, equalityComparer.IgnoreCase, equalityComparer.IgnoreWhiteSpace)) return EqualMethodResult.ComparedNotEqual; return EqualMethodResult.ComparedEqual; } } return EqualMethodResult.TypesNotSupported; } public static bool Equals(string x, string y, bool ignoreCase, bool ignoreWhiteSpace) { if (ignoreWhiteSpace) { (int, int) valueTuple = MsgUtils.FindMismatchPosition(x, y, ignoreCase, true); int item = valueTuple.Item1; int item2 = valueTuple.Item2; if (item == -1) return item2 == -1; return false; } return x.Equals(y, ignoreCase ? StringComparison.CurrentCultureIgnoreCase : StringComparison.Ordinal); } } }