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