Make the number to word function ready for multiple langauges, and make some minor changes to tooltips in build and status bar

This commit is contained in:
Veronica K. B. Olsen
2021-02-15 23:43:56 +01:00
parent 2e4148a9eb
commit 8db140fe89
5 changed files with 141 additions and 65 deletions
+38 -5
View File
@@ -86,6 +86,7 @@ def testCoreTools_RomanNumbers():
def testCoreTools_NumberWords():
"""Test the conversion of integer to English words.
"""
# English
assert numberToWord(0, "en") == "Zero"
assert numberToWord(1, "en") == "One"
assert numberToWord(2, "en") == "Two"
@@ -114,14 +115,46 @@ def testCoreTools_NumberWords():
assert numberToWord(142, "en") == "One Hundred Forty-Two"
assert numberToWord(999, "en") == "Nine Hundred Ninety-Nine"
# Norwegian
assert numberToWord(0, "nb") == "null"
assert numberToWord(1, "nb") == "én"
assert numberToWord(10, "nb") == "ti"
assert numberToWord(20, "nb") == "tjue"
assert numberToWord(21, "nb") == "tjueén"
assert numberToWord(29, "nb") == "tjueni"
assert numberToWord(42, "nb") == "førtito"
assert numberToWord(60, "nb") == "seksti"
assert numberToWord(100, "nb") == "ett hundre"
assert numberToWord(114, "nb") == "ett hundre og fjorten"
assert numberToWord(142, "nb") == "ett hundre og førtito"
assert numberToWord(999, "nb") == "ni hundre og nittini"
assert numberToWord(0, "nn") == "null"
assert numberToWord(1, "nn") == "ein"
assert numberToWord(10, "nn") == "ti"
assert numberToWord(20, "nn") == "tjue"
assert numberToWord(21, "nn") == "tjueein"
assert numberToWord(29, "nn") == "tjueni"
assert numberToWord(42, "nn") == "førtito"
assert numberToWord(60, "nn") == "seksti"
assert numberToWord(100, "nn") == "eitt hundre"
assert numberToWord(114, "nn") == "eitt hundre og fjorten"
assert numberToWord(142, "nn") == "eitt hundre og førtito"
assert numberToWord(999, "nn") == "ni hundre og nittini"
# Check complex language setting
assert numberToWord(1, "en_GB") == "One"
assert numberToWord(2, "en_GB") == "Two"
assert numberToWord(3, "en_GB") == "Three"
# Check a few with a nonsense language setting
assert numberToWord(1, "foo") == "One"
assert numberToWord(2, "foo") == "Two"
assert numberToWord(3, "foo") == "Three"
assert numberToWord(1, "foo") == "1"
assert numberToWord(2, "foo") == "2"
assert numberToWord(3, "foo") == "3"
# Test out of range values
assert numberToWord(12345, "en") == "[Out of Range]"
assert numberToWord(-2345, "en") == "[Negative]"
assert numberToWord(12345, "en") == "[>999]"
assert numberToWord(-2345, "en") == "[<0]"
assert numberToWord("234", "en") == "[NaN]"
# END Test testCoreTools_NumberWords