Esempio n. 1
0
        private string TestCompareInternal(int result, string v1, string v2, StringComparisonEx comparisonType, bool?nullIsLower, Func <string, bool> isNull)
        {
            if (nullIsLower.HasValue)
            {
                return(TestCompareInternal1(nullIsLowerValue: nullIsLower.Value));
            }
            else
            {
                return(TestCompareInternal1(nullIsLowerValue: false)
                       ?? TestCompareInternal1(nullIsLowerValue: true));
            }

            string TestCompareInternal1(bool nullIsLowerValue)
            {
                if (result != Math.Sign(StringComparerEx.Compare(v1: v1, v2: v2, comparisonType: comparisonType, nullIsLower: nullIsLowerValue, isNull: isNull)))
                {
                    v1 = (v1 is null) ? "null" : $@"""{v1}""";
                    v2 = (v2 is null) ? "null" : $@"""{v2}""";

                    return($@"{nameof(StringComparerEx)}.{nameof(StringComparerEx.Compare)}({nameof(v1)}: {v1}, {nameof(v2)}: {v2}, {nameof(comparisonType)}: {Enum.GetName(typeof(StringComparisonEx), comparisonType)}, {nameof(nullIsLower)}: {(nullIsLowerValue ? "true" : "false")}) != {result}");
                }

                if (result != -Math.Sign(StringComparerEx.Compare(v1: v2, v2: v1, comparisonType: comparisonType, nullIsLower: nullIsLowerValue, isNull: isNull)))
                {
                    v1 = (v1 is null) ? "null" : $@"""{v1}""";
                    v2 = (v2 is null) ? "null" : $@"""{v2}""";

                    return($@"{nameof(StringComparerEx)}.{nameof(StringComparerEx.Compare)}({nameof(v1)}: {v2}, {nameof(v2)}: {v1}, {nameof(comparisonType)}: {Enum.GetName(typeof(StringComparisonEx), comparisonType)}, {nameof(nullIsLower)}: {(nullIsLowerValue ? "true" : "false")}) != {result}");
                }

                return(null);
            }
        }
Esempio n. 2
0
        public void StringComparerEx_DifferentStringAreDifferent()
        {
            string a = "acoutur", b = "ëcöutêr";
            var    stringComparer = new StringComparerEx(CultureInfo.InvariantCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace);
            bool   result         = stringComparer.Equals(a, b);

            Assert.IsFalse(result);
        }
Esempio n. 3
0
        public void StringComparerEx_AccentedStringAreEqual3()
        {
            string a = "écoûtèr", b = "ecouter";
            var    stringComparer = new StringComparerEx(CultureInfo.InvariantCulture, CompareOptions.IgnoreCase | CompareOptions.IgnoreNonSpace);
            bool   result         = stringComparer.Equals(a, b);

            Assert.IsTrue(result);
        }