dotnet / runtime

.NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.
https://docs.microsoft.com/dotnet/core/
MIT License
15.12k stars 4.7k forks source link

Half-width Japanese Katakanas with Dakutens compare differently with the full width counterparts on Windows (Insiders build specific?) #1164

Closed Gnbrkm41 closed 4 years ago

Gnbrkm41 commented 4 years ago

I've been noticing the failures of those two tests for a few months, back from the pre-consolidation corefx times: https://github.com/dotnet/runtime/blob/ad97a127d91c53080265794c7a57e0faee4d7c2d/src/libraries/System.Data.Common/tests/System/Data/SqlTypes/SqlStringSortingTest.cs#L39-L54

Digging through, the failure specifically seems to be related with these particular test strings: https://github.com/dotnet/runtime/blob/ad97a127d91c53080265794c7a57e0faee4d7c2d/src/libraries/System.Data.Common/tests/System/Data/SqlTypes/SqlStringSortingTest.cs#L30 Which is (ファズ・ギター, ファズ・ギター). They are expected to compare equal but for some reason they do not and thus failing.

Given that they're basically just CompareInfo.Compare with a few options, I've boiled it down to this:

CompareInfo.GetCompareInfo("ja-JP").Compare("\uFF8C\uFF67\uFF7D\uFF9E\uFF65\uFF77\uFF9E\uFF80\uFF70","\u30D5\u30A1\u30BA\u30FB\u30AE\u30BF\u30FC", CompareOptions.IgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth)

This returns 1 on 19536 / ko-KR, 0 on 18362 / de-DE (maybe installed with en-US?), -1 on 19041 / en-GB.

It appears that either the locale setting or the build version affect the comparison result; I'm suspecting that it's caused by Dakutens, because if I compare two same Japanese kana characters with Dakuten (the two dots on the upper right side of the characters) that differ only in the width, e.g. ('\u30AC') and ガ("\uFF76\uFF9E"), they compare different for some reason. I expect those to compare equal when passed CompareOptions.IgnoreWidth option, as that makes logical sense.

Also, a similar issue albeit on Linux; U+FF70 Halfwidth Katakana-Hiragana Prolonged Sound Mark and U+30FC Katakana-Hiragana Prolonged Sound Mark has weird quirks when compared in various combinations. I have not ran the tests on a Linux machine so not sure if the tests actually fail but it might:

(Using the same code, CompareInfo.GetCompareInfo("ja-JP").Compare(left, right, CompareOptions.IgnoreCase | CompareOptions.IgnoreKanaType | CompareOptions.IgnoreWidth))

Left Right Result
0
0
ター ター -1

I'm honestly not sure if there's anything we could do at framework level because they seem to be issues with the ICU/NLS; but thought I'd post it here first since it is causing a local test failure and I have no idea where else to ask about this.

cc @tarekgh

Gnbrkm41 commented 4 years ago

Also seeing test failures that look very similar, albeit from System.Globalization.Tests:

``` C:\Users\gotos\source\repos\runtime\artifacts\bin\System.Globalization.Tests\netcoreapp5.0-Release>"C:\Users\gotos\source\repos\runtime\artifacts\bin\testhost\netcoreapp5.0-Windows_NT-Release-x64\dotnet.exe" exec --runtimeconfig System.Globalization.Tests.runtimeconfig.json --depsfile System.Globalization.Tests.deps.json xunit.console.dll System.Globalization.Tests.dll -xml testResults.xml -nologo -notrait category=OuterLoop -notrait category=failing -notrait category=nonnetcoreapptests -notrait category=nonwindowstests Discovering: System.Globalization.Tests (method display = ClassAndMethod, method display options = None) Discovered: System.Globalization.Tests (found 405 of 410 test cases) Starting: System.Globalization.Tests (parallel test collections = on, max threads = 12) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "ばびぶべぼ", string2: "バビぶベ??", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(324,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "ばび????ぼ", string2: "バビぶベ??", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(324,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "だ", string2: "??", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(324,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "デタベス", string2: "??????", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(324,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "デ", string2: "??", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(324,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "デタ", string2: "???", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(324,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "デタベ", string2: "?????", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(324,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "????????", string2: "で?たべ?す", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(324,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "ばびぶべぼ", string2: "バビぶベ??", options: None, expected: 1) [FAIL] Assert.Equal() Failure Expected: 1 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(320,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "だ", string2: "??", options: None, expected: 1) [FAIL] Assert.Equal() Failure Expected: 1 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(320,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "デタベス", string2: "??????", options: None, expected: 1) [FAIL] Assert.Equal() Failure Expected: 1 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(320,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "デ", string2: "??", options: None, expected: 1) [FAIL] Assert.Equal() Failure Expected: 1 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(320,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "デタ", string2: "???", options: None, expected: 1) [FAIL] Assert.Equal() Failure Expected: 1 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(320,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "デタベ", string2: "?????", options: None, expected: 1) [FAIL] Assert.Equal() Failure Expected: 1 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(320,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoCompareTests.Compare(compareInfo: CompareInfo - , string1: "????????", string2: "で?たべ?す", options: None, expected: -1) [FAIL] Assert.Equal() Failure Expected: -1 Actual: 1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(320,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, Int32 offset1, Int32 length1, String string2, Int32 offset2, Int32 length2, CompareOptions options, Int32 expected) C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.Compare.cs(259,0): at System.Globalization.Tests.CompareInfoCompareTests.Compare(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "ばびぶべぼ", string2: "バビぶベ??", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "ばび????ぼ", string2: "バビぶベ??", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "だ", string2: "??", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "デタベス", string2: "??????", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "デ", string2: "??", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "デタ", string2: "???", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "デタベ", string2: "?????", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "????????", string2: "で?たべ?す", options: IgnoreCase | IgnoreKanaType | IgnoreWidth, expected: 0) [FAIL] Assert.Equal() Failure Expected: 0 Actual: 1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "ばびぶべぼ", string2: "バビぶベ??", options: None, expected: 1) [FAIL] Assert.Equal() Failure Expected: 1 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) System.Globalization.Tests.CompareInfoTests.SortKeyTest(compareInfo: CompareInfo - , string1: "だ", string2: "??", options: None, expected: 1) [FAIL] Assert.Equal() Failure Expected: 1 Actual: -1 Stack Trace: C:\Users\gotos\source\repos\runtime\src\libraries\System.Globalization\tests\CompareInfo\CompareInfoTests.cs(347,0): at System.Globalization.Tests.CompareInfoTests.SortKeyTest(CompareInfo compareInfo, String string1, String string2, CompareOptions options, Int32 expected) Finished: System.Globalization.Tests === TEST EXECUTION SUMMARY === System.Globalization.Tests Total: 1788, Errors: 0, Failed: 25, Skipped: 0, Time: 0.662s ----- end 2019-12-26 19:03:51.07 ----- exit code 1 ---------------------------------------------------------- ```

As of ad97a12, The failing tests are located at this file: https://github.com/dotnet/runtime/blob/ad97a127d91c53080265794c7a57e0faee4d7c2d/src/libraries/System.Globalization/tests/CompareInfo/CompareInfoTests.Compare.cs#L10

At line number 50, 51, 65, 68, 69, 70, 71, 74, 119, 135, 231, 232, 233, 234, 236.

For SortKey tests, they are located at: https://github.com/dotnet/runtime/blob/ad97a127d91c53080265794c7a57e0faee4d7c2d/src/libraries/System.Globalization/tests/CompareInfo/CompareInfoTests.cs#L11

At line number 137, 138, 152, 155, 156, 157, 158, 161, 206, 222.

Looking at the values, it appears that half-width Katakanas with Dakutens do not compare equal to the full-width equivalent for some reason (However, half-width katakanas without Dakutens compare equal with the full-width equivalent); in addition, the sort order for some of them seems to have changed as well.

tarekgh commented 4 years ago

This is a regression in Windows side and I already communicated this to them and they are working to fix it. will be good if we can update the test to avoid running it on the failing build version of Windows.

tarekgh commented 4 years ago

CC @ShawnSteele