Add test for utf16CharMap
This commit is contained in:
@@ -500,13 +500,13 @@ def utf16CharMap(text: str) -> list[int]:
|
||||
ASCII, UCS-2 or UCS-4. QStrings are in UTF-16, so wide characters
|
||||
use 2 indices, and thus creates an offset.
|
||||
"""
|
||||
posMap = list(range(0, len(text) + 1))
|
||||
utf16Map = list(range(0, len(text) + 1))
|
||||
offset = 0
|
||||
for i, c in enumerate(text):
|
||||
for i, c in enumerate(text, 1):
|
||||
if ord(c) > 0xffff:
|
||||
offset += 1
|
||||
posMap[i + 1] = i + 1 + offset
|
||||
return posMap
|
||||
utf16Map[i] = i + offset
|
||||
return utf16Map
|
||||
|
||||
|
||||
##
|
||||
|
||||
@@ -38,8 +38,8 @@ from novelwriter.common import (
|
||||
fuzzyTime, getFileSize, hexToInt, isHandle, isItemClass, isItemLayout,
|
||||
isItemType, isListInstance, isTitleTag, jsonEncode, makeFileNameSafe,
|
||||
minmax, numberToRoman, openExternalPath, processDialogSymbols,
|
||||
readTextFile, simplified, transferCase, uniqueCompact, xmlElement,
|
||||
xmlIndent, xmlSubElem, yesNo
|
||||
readTextFile, simplified, transferCase, uniqueCompact, utf16CharMap,
|
||||
xmlElement, xmlIndent, xmlSubElem, yesNo
|
||||
)
|
||||
from novelwriter.enum import nwItemClass
|
||||
|
||||
@@ -557,6 +557,14 @@ def testBaseCommon_encodeDecodeMimeHandles(monkeypatch):
|
||||
assert decodeMimeHandles(mimeData) == handles
|
||||
|
||||
|
||||
@pytest.mark.base
|
||||
def testBaseCommon_utf16CharMap(monkeypatch):
|
||||
"""Test the utf16CharMap function."""
|
||||
assert utf16CharMap("abc") == [0, 1, 2, 3]
|
||||
assert utf16CharMap("a\u2014b\u2014c") == [0, 1, 2, 3, 4, 5]
|
||||
assert utf16CharMap("a\U0001F605b\U0001F605c") == [0, 1, 3, 4, 6, 7]
|
||||
|
||||
|
||||
@pytest.mark.base
|
||||
def testBaseCommon_jsonEncode():
|
||||
"""Test the jsonEncode function."""
|
||||
|
||||
Reference in New Issue
Block a user