From 8dcf0fc73d2422cd6274428b1ffd3c62ce8069ec Mon Sep 17 00:00:00 2001 From: BDisp Date: Mon, 14 Nov 2022 17:42:31 +0000 Subject: [PATCH] Don't use the ustring array to get a rune, use ToRunes first. --- UnitTests/TextFormatterTests.cs | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/UnitTests/TextFormatterTests.cs b/UnitTests/TextFormatterTests.cs index b6f4e0f26..0bbec368a 100644 --- a/UnitTests/TextFormatterTests.cs +++ b/UnitTests/TextFormatterTests.cs @@ -4137,5 +4137,20 @@ This TextFormatter (tf2) is rewritten. text = $"First Line 界\nSecond Line 界\nThird Line 界\n"; Assert.Equal (14, TextFormatter.MaxWidthLine (text)); } + + [Fact] + public void Ustring_Array_Is_Not_Equal_ToRunes_Array () + { + ustring us = "New Test 你"; + Assert.Equal (10, us.RuneCount); + Assert.NotEqual (20320, us [9]); + Assert.Equal (228, us [9]); + Assert.Equal ("ä", ((Rune)us [9]).ToString ()); + + var usToRunes = us.ToRunes (); + Assert.Equal (10, usToRunes.Length); + Assert.Equal (20320, (int)usToRunes [9]); + Assert.Equal ("你", ((Rune)usToRunes [9]).ToString ()); + } } } \ No newline at end of file