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;
}
}