spiegel-keyman/core/tests/unit/kmnkbd
Marc Durdin 766c6992ed fix(core): normalization segment should end on NFC boundary, not NFD
When normalizing, we need to stop processing on an NFC boundary, not an
NFD boundary, to support normalizations such as in Bengali, where
appending `U+09D7` to a context of `U+0995 U+09C7` should result in
`U+0995 U+09CC`.

The specification is unclear on this; see https://unicode-org.atlassian.net/browse/CLDR-19218

This also updates the ldml keyboard unit test suite to support running
in full NFC mode (used in all Engine implementations) as well retaining
the NFD mode (now only used by the debugger).

Side note: the Bengali normalization failure case was picked up by the
improvements to the unit test suite, proving once again that good tests
are so valuable.

Fixes: #15491
Fixes: #15505
Follows: #15488
Relates-to: CLDR-19218
2026-01-28 14:32:25 +11:00
..
action_api.tests.cpp chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-11-28 09:53:45 +07:00
action_items.hpp refactor(core): split context API from Core primary API 2024-01-16 12:04:41 +07:00
action_set_api.tests.cpp chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-12-01 16:17:21 +07:00
actions_get_api.tests.cpp chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-12-01 16:17:21 +07:00
actions_normalize.tests.cpp fix(core): normalization segment should end on NFC boundary, not NFD 2026-01-28 14:32:25 +11:00
context_api.tests.cpp chore(core): rename test files 2024-11-26 17:47:11 +01:00
debug_api.tests.cpp chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-12-01 16:17:21 +07:00
debug_items.hpp fix(core): rename assert() to test_assert() in unit tests 2024-11-28 09:46:01 +07:00
keyboard_api.tests.cpp feat(core): implement loading KMX from blob 2024-11-27 15:30:05 +01:00
kmx_context.tests.cpp chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-11-28 09:53:45 +07:00
kmx_xstring.tests.cpp chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-11-28 09:53:45 +07:00
meson.build chore(core): rename test files 2024-11-26 17:47:11 +01:00
options_api.tests.cpp chore(core): rename test files 2024-11-26 17:47:11 +01:00
state_api.tests.cpp chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-12-01 16:17:21 +07:00
state_context_api.tests.cpp chore(core): Merge branch 'master' into fix/core/12619-disable-assertions-vcwin-release-build 2024-12-01 16:17:21 +07:00