From 0a208ff5188259fb37d5c6209c4ab9752449d2bf Mon Sep 17 00:00:00 2001 From: BDisp Date: Tue, 15 Nov 2022 13:00:35 +0000 Subject: [PATCH] Some more explanation for this unit test. --- UnitTests/TextFormatterTests.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/UnitTests/TextFormatterTests.cs b/UnitTests/TextFormatterTests.cs index 0bbec368a..5fb6bc98b 100644 --- a/UnitTests/TextFormatterTests.cs +++ b/UnitTests/TextFormatterTests.cs @@ -4139,18 +4139,29 @@ This TextFormatter (tf2) is rewritten. } [Fact] - public void Ustring_Array_Is_Not_Equal_ToRunes_Array () + public void Ustring_Array_Is_Not_Equal_ToRunes_Array_And_String_Array () { - ustring us = "New Test 你"; + var text = "New Test 你"; + ustring us = text; + string s = text; Assert.Equal (10, us.RuneCount); + Assert.Equal (10, s.Length); + // The reason is ustring index is related to byte length and not rune length + Assert.Equal (12, us.Length); Assert.NotEqual (20320, us [9]); + Assert.Equal (20320, s [9]); Assert.Equal (228, us [9]); Assert.Equal ("ä", ((Rune)us [9]).ToString ()); + Assert.Equal ("你", s [9].ToString ()); + // Rune array is equal to string array var usToRunes = us.ToRunes (); Assert.Equal (10, usToRunes.Length); + Assert.Equal (10, s.Length); Assert.Equal (20320, (int)usToRunes [9]); + Assert.Equal (20320, s [9]); Assert.Equal ("你", ((Rune)usToRunes [9]).ToString ()); + Assert.Equal ("你", s [9].ToString ()); } } } \ No newline at end of file