Skip to content

Commit abaec45

Browse files
committed
Updated to Unicode 17.0.0. Updated to version 0.8.0.
1 parent e1b7e15 commit abaec45

11 files changed

Lines changed: 1444 additions & 252 deletions

File tree

Package/Package README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
UnicodeHelper is a .Net library to get Unicode property information about codepoints, and to better handle the
66
upper planes (1-16) of Unicode where having to deal with surrogate pairs can get messy using normal .Net strings.
7-
Current version supoorts **Unicode 16.0.0**.
7+
Current version supoorts **Unicode 17.0.0**.
88

99
A goal for this library is to have *every* implemented method be extensively tested, so it should already be fairly stable.
1010

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
UnicodeHelper is a .Net library to get Unicode property information about codepoints, and to better handle the
77
upper planes (1-16) of Unicode where having to deal with surrogate pairs can get messy using normal .Net strings.
8-
Current version supoorts **Unicode 16.0.0**.
8+
Current version supoorts **Unicode 17.0.0**.
99

1010
A goal for this library is to have *every* implemented method be extensively tested, so it should already be fairly stable.
1111

UnicodeHelper.Tests/UCodepointTests.cs

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,17 @@ public void GetUnicodeCategory_CompareWithDotNet()
4141
{
4242
Console.WriteLine($"GetUnicodeCategory doesn't match for character {((UCodepoint)c).ToHexString()} - " +
4343
$".Net: {dotNetCategory}, Found: {uCat}");
44-
Assert.AreEqual(UnicodeCategory.OtherNotAssigned, dotNetCategory);
44+
if (c != '\u0295') // This was changed from lower to other in Unicode 17.
45+
{
46+
Assert.AreEqual(UnicodeCategory.OtherNotAssigned, dotNetCategory,
47+
"Did Unicode change the category of a codepoint?");
48+
}
4549

4650
incorrectCount++;
4751
}
4852
}
4953

50-
Assert.That.IsLessThanOrEqualTo(incorrectCount, 22, "Unexpected number of differences from .Net");
54+
Assert.That.IsLessThanOrEqualTo(incorrectCount, 85, "Unexpected number of differences from .Net");
5155
}
5256
#endregion
5357

@@ -102,11 +106,12 @@ public void IsUpper_CompareWithDotNet()
102106
{
103107
Console.WriteLine($"IsUpper doesn't match for character {((UCodepoint)c).ToHexString()} - " +
104108
$".Net: {dotNetIsUpper}, Found: {isUpper}");
109+
Assert.IsFalse(dotNetIsUpper, "Did Unicode change a letter to not be a letter?");
105110
incorrectCount++;
106111
}
107112
}
108113

109-
Assert.That.IsLessThanOrEqualTo(incorrectCount, 5, "Unexpected number of differences from .Net");
114+
Assert.That.IsLessThanOrEqualTo(incorrectCount, 8, "Unexpected number of differences from .Net");
110115
}
111116
#endregion
112117

@@ -174,11 +179,13 @@ public void IsLower_CompareWithDotNet()
174179
{
175180
Console.WriteLine($"IsLower doesn't match for character {((UCodepoint)c).ToHexString()} - " +
176181
$".Net: {dotNetIsLower}, Found: {isLower}");
182+
if (c != '\u0295') // This was changed from lower to other in Unicode 17.
183+
Assert.IsFalse(dotNetIsLower, "Did Unicode change a letter to not be a letter?");
177184
incorrectCount++;
178185
}
179186
}
180187

181-
Assert.That.IsLessThanOrEqualTo(incorrectCount, 3, "Unexpected number of differences from .Net");
188+
Assert.That.IsLessThanOrEqualTo(incorrectCount, 5, "Unexpected number of differences from .Net");
182189
}
183190
#endregion
184191

@@ -347,11 +354,12 @@ public void IsLetter_CompareWithDotNet()
347354
{
348355
Console.WriteLine($"IsLetter doesn't match for character {((UCodepoint)c).ToHexString()} - " +
349356
$".Net: {dotNetIsLetter}, Found: {isLetter}");
357+
Assert.IsFalse(dotNetIsLetter, "Did Unicode change a letter to no longer be a letter?");
350358
incorrectCount++;
351359
}
352360
}
353361

354-
Assert.That.IsLessThanOrEqualTo(incorrectCount, 8, "Unexpected number of differences from .Net");
362+
Assert.That.IsLessThanOrEqualTo(incorrectCount, 16, "Unexpected number of differences from .Net");
355363
}
356364
#endregion
357365

@@ -459,11 +467,12 @@ public void IsSymbol_CompareWithDotNet()
459467
{
460468
Console.WriteLine($"IsSymbol doesn't match for character {((UCodepoint)c).ToHexString()} - " +
461469
$".Net: {dotNetIsSymbol}, Found: {isSymbol}");
470+
Assert.IsFalse(dotNetIsSymbol, "Did Unicode change a symbol to no longer be a symbol?");
462471
incorrectCount++;
463472
}
464473
}
465474

466-
Assert.That.IsLessThanOrEqualTo(incorrectCount, 10, "Unexpected number of differences from .Net");
475+
Assert.That.IsLessThanOrEqualTo(incorrectCount, 37, "Unexpected number of differences from .Net");
467476
}
468477
#endregion
469478

@@ -566,11 +575,13 @@ public void IsLetterOrDigit_CompareWithDotNet()
566575
{
567576
Console.WriteLine($"IsLetterOrDigit doesn't match for character {((UCodepoint)c).ToHexString()} - " +
568577
$".Net: {dotNetIsLetterOrDigit}, Found: {isLetterOrDigit}");
578+
Assert.IsFalse(dotNetIsLetterOrDigit,
579+
"Did Unicode change a letter or digit to no longer be a letter or digit?");
569580
incorrectCount++;
570581
}
571582
}
572583

573-
Assert.That.IsLessThanOrEqualTo(incorrectCount, 8, "Unexpected number of differences from .Net");
584+
Assert.That.IsLessThanOrEqualTo(incorrectCount, 16, "Unexpected number of differences from .Net");
574585
}
575586
#endregion
576587

UnicodeHelper/Resources/Blocks.txt

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
# Blocks-16.0.0.txt
2-
# Date: 2024-02-02
3-
# © 2024 Unicode®, Inc.
1+
# Blocks-17.0.0.txt
2+
# Date: 2025-08-01
3+
# © 2025 Unicode®, Inc.
44
# Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
55
# For terms of use and license, see https://www.unicode.org/terms_of_use.html
66
#
@@ -228,6 +228,7 @@ FFF0..FFFF; Specials
228228
108E0..108FF; Hatran
229229
10900..1091F; Phoenician
230230
10920..1093F; Lydian
231+
10940..1095F; Sidetic
231232
10980..1099F; Meroitic Hieroglyphs
232233
109A0..109FF; Meroitic Cursive
233234
10A00..10A5F; Kharoshthi
@@ -279,11 +280,13 @@ FFF0..FFFF; Specials
279280
11AB0..11ABF; Unified Canadian Aboriginal Syllabics Extended-A
280281
11AC0..11AFF; Pau Cin Hau
281282
11B00..11B5F; Devanagari Extended-A
283+
11B60..11B7F; Sharada Supplement
282284
11BC0..11BFF; Sunuwar
283285
11C00..11C6F; Bhaiksuki
284286
11C70..11CBF; Marchen
285287
11D00..11D5F; Masaram Gondi
286288
11D60..11DAF; Gunjala Gondi
289+
11DB0..11DEF; Tolong Siki
287290
11EE0..11EFF; Makasar
288291
11F00..11F5F; Kawi
289292
11FB0..11FBF; Lisu Supplement
@@ -304,12 +307,14 @@ FFF0..FFFF; Specials
304307
16B00..16B8F; Pahawh Hmong
305308
16D40..16D7F; Kirat Rai
306309
16E40..16E9F; Medefaidrin
310+
16EA0..16EDF; Beria Erfe
307311
16F00..16F9F; Miao
308312
16FE0..16FFF; Ideographic Symbols and Punctuation
309313
17000..187FF; Tangut
310314
18800..18AFF; Tangut Components
311315
18B00..18CFF; Khitan Small Script
312316
18D00..18D7F; Tangut Supplement
317+
18D80..18DFF; Tangut Components Supplement
313318
1AFF0..1AFFF; Kana Extended-B
314319
1B000..1B0FF; Kana Supplement
315320
1B100..1B12F; Kana Extended-A
@@ -318,6 +323,7 @@ FFF0..FFFF; Specials
318323
1BC00..1BC9F; Duployan
319324
1BCA0..1BCAF; Shorthand Format Controls
320325
1CC00..1CEBF; Symbols for Legacy Computing Supplement
326+
1CEC0..1CEFF; Miscellaneous Symbols Supplement
321327
1CF00..1CFCF; Znamenny Musical Notation
322328
1D000..1D0FF; Byzantine Musical Symbols
323329
1D100..1D1FF; Musical Symbols
@@ -336,6 +342,7 @@ FFF0..FFFF; Specials
336342
1E2C0..1E2FF; Wancho
337343
1E4D0..1E4FF; Nag Mundari
338344
1E5D0..1E5FF; Ol Onal
345+
1E6C0..1E6FF; Tai Yo
339346
1E7E0..1E7FF; Ethiopic Extended-B
340347
1E800..1E8DF; Mende Kikakui
341348
1E900..1E95F; Adlam
@@ -367,6 +374,7 @@ FFF0..FFFF; Specials
367374
2F800..2FA1F; CJK Compatibility Ideographs Supplement
368375
30000..3134F; CJK Unified Ideographs Extension G
369376
31350..323AF; CJK Unified Ideographs Extension H
377+
323B0..3347F; CJK Unified Ideographs Extension J
370378
E0000..E007F; Tags
371379
E0100..E01EF; Variation Selectors Supplement
372380
F0000..FFFFF; Supplementary Private Use Area-A

0 commit comments

Comments
 (0)