Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[browser] HybridGlobalization Invariant function differs from non-Hybrid #95471

Closed
ilonatommy opened this issue Nov 30, 2023 · 1 comment · Fixed by #103037
Closed

[browser] HybridGlobalization Invariant function differs from non-Hybrid #95471

ilonatommy opened this issue Nov 30, 2023 · 1 comment · Fixed by #103037
Assignees
Labels
arch-wasm WebAssembly architecture area-System.Globalization in-pr There is an active PR which will close this issue when it is merged
Milestone

Comments

@ilonatommy
Copy link
Member

ilonatommy commented Nov 30, 2023

Running TurkishI_Is_Differently_LowerUpperCased_In_Turkish_Culture_NonBacktracking with HG fails on

Assert.True(cultInvariantRegex.IsMatch(input.ToUpperInvariant()));

Because ToUpperInvariant produces different string (differently normalized?), the regex fails. Maybe we can keep using managed invariant functions for invariant culture. If not, we have to treat this failure as a known difference between platforms.

input.ToUpperInvariant() -> HG: IIİI, ICU: IıİI

This is expected behavior of JS and generally, it's expected behavior for Turkish letters.
image
We can preserve C#-invariant behavior if we use ToUpper/Lower methods that are used for InvaraintGlobalization.

@ghost
Copy link

ghost commented Nov 30, 2023

Tagging subscribers to this area: @dotnet/area-system-globalization
See info in area-owners.md if you want to be subscribed.

Issue Details

Running TurkishI_Is_Differently_LowerUpperCased_In_Turkish_Culture_NonBacktracking with HG fails on

Assert.True(cultInvariantRegex.IsMatch(input.ToUpperInvariant()));

Because ToUpperInvariant produces different string (differently normalized?), the regex fails. Maybe we can keep using managed invariant functions for invariant culture. If not, we have to treat this failure as a known difference between platforms.

Author: ilonatommy
Assignees: -
Labels:

arch-wasm, area-System.Globalization

Milestone: -

@ghost ghost added the untriaged New issue has not been triaged by the area owner label Nov 30, 2023
@radical radical removed the untriaged New issue has not been triaged by the area owner label Nov 30, 2023
@radical radical added this to the 9.0.0 milestone Nov 30, 2023
@ilonatommy ilonatommy self-assigned this Jun 3, 2024
@dotnet-policy-service dotnet-policy-service bot added the in-pr There is an active PR which will close this issue when it is merged label Jun 4, 2024
@github-actions github-actions bot locked and limited conversation to collaborators Jul 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-wasm WebAssembly architecture area-System.Globalization in-pr There is an active PR which will close this issue when it is merged
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants