System.Collections.Tests.CaseInsensitiveComparerTests.DefaultInvariant_Compare C# (CSharp) Method

DefaultInvariant_Compare() private method

private DefaultInvariant_Compare ( object a, object b, int expected ) : void
a object
b object
expected int
return void
        public static void DefaultInvariant_Compare(object a, object b, int expected)
        {
            CultureInfo culture1 = CultureInfo.CurrentCulture;
            CultureInfo culture2 = CultureInfo.CurrentUICulture;

            try
            {
                var cultureNames = new string[]
                {
                    "cs-CZ","da-DK","de-DE","el-GR","en-US",
                    "es-ES","fi-FI","fr-FR","hu-HU","it-IT",
                    "ja-JP","ko-KR","nb-NO","nl-NL","pl-PL",
                    "pt-BR","pt-PT","ru-RU","sv-SE","tr-TR",
                    "zh-CN","zh-HK","zh-TW"
                };

                foreach (string cultureName in cultureNames)
                {
                    CultureInfo culture;
                    try
                    {
                        culture = new CultureInfo(cultureName);
                    }
                    catch (CultureNotFoundException)
                    {
                        continue;
                    }

                    // Set current culture
                    CultureInfo.CurrentCulture = culture;
                    CultureInfo.CurrentUICulture = culture;

                    // All cultures should sort the same way, irrespective of the thread's culture
                    CaseInsensitiveComparer defaultInvComparer = CaseInsensitiveComparer.DefaultInvariant;
                    Assert.Equal(expected, Math.Sign(defaultInvComparer.Compare(a, b)));
                }
            }
            finally
            {
                CultureInfo.CurrentCulture = culture1;
                CultureInfo.CurrentUICulture = culture2;
            }
        }