Modul:scripts/testcases
Ugrás a navigációhoz
Ugrás a kereséshez
1 teszt sikertelen. (frissítés)
Szöveg | Várt | Tényleges | |
---|---|---|---|
![]() |
A | Latn | Latn |
![]() |
一 | Hani | Hani |
![]() |
ώ | Grek | Grek |
![]() |
ὦ | polytonic | polytonic |
![]() |
Ж | Cyrl | Cyrl |
![]() |
Ѹ | Cyrs | Cyrs |
![]() |
ꙑ | Cyrs | Cyrs |
![]() |
ა | Geor | Geor |
![]() |
Ⴀ | Geok | Geok |
![]() |
ⴀ | Geok | Geok |
![]() |
! | None | None |
![]() |
北 | None | None |
Szöveg | Várt | Tényleges | |
---|---|---|---|
![]() |
word (angol) | Latn | Latn |
![]() |
العربية (arab) | Arab | fa-Arab |
![]() |
عرب (perzsa) | fa-Arab | fa-Arab |
![]() |
большо́й (orosz) | Cyrl | Cyrl |
![]() |
ругала се шерпа лонцу широка му уста (szerbhorvát) | Cyrl | Cyrl |
Scripts with overlapping characters | |||
![]() |
Русь (óorosz) | Cyrs | Cyrs |
![]() |
Русь (orosz) | Cyrl | Cyrl |
![]() |
Велика Британија (szerbhorvát) | Cyrl | Cyrl |
![]() |
velika Brìtānija (szerbhorvát) | Latn | Latn |
![]() |
λόγος (ógörög) | polytonic | polytonic |
![]() |
λόγος (görög) | Grek | Grek |
local tests = require("Module:UnitTests")
local m_scripts = require("Module:scripts")
local m_script_utils = require("Module:script utilities")
local getLangByCode = require("Module:languages").getByCode
local function tag(text, lang, scCode)
return m_script_utils.tag_text(text, lang, m_scripts.getByCode(scCode))
end
local function tagScript(char, sc)
return string.format('<span class="%s">%s</span>', sc, char)
end
function tests:checkFindBestScript(example, langCode, expected)
local lang = getLangByCode(langCode)
self:equals(tag(example, lang, expected) .. " (" .. lang:getCanonicalName() .. ")",
m_scripts.findBestScript(example, lang):getCode(),
expected)
end
function tests:testFindbestScript()
local examples = {
{ "word", "en", "Latn" },
{ "العربية", "ar", "Arab" },
{ "عرب", "fa", "fa-Arab" },
{ "большо́й", "ru", "Cyrl" },
{ "ругала се шерпа лонцу широка му уста", "sh", "Cyrl" },
"Scripts with overlapping characters",
{ "Русь", "orv", "Cyrs" },
{ "Русь", "ru", "Cyrl" },
{ "Велика Британија", "sh", "Cyrl" },
{ "velika Brìtānija", "sh", "Latn" },
{ "λόγος", "grc", "polytonic" },
{ "λόγος", "el", "Grek" },
}
tests:iterate(examples, "checkFindBestScript")
end
function tests:testCharToScript()
local U = mw.ustring.char
local examples = {
{ "A", "Latn" },
{ "一", "Hani" },
{ "ώ", "Grek" },
{ "ὦ", "polytonic" },
{ "Ж", "Cyrl" },
{ "Ѹ", "Cyrs" },
{ "ꙑ", "Cyrs" },
{ "ა", "Geor" },
{ "Ⴀ", "Geok" },
{ "ⴀ", "Geok" },
{ "!", "None" },
{ U(0x2F82B), "None" },
}
self:iterate(
examples,
function (self, char, expected)
local sc = m_scripts.charToScript(char)
self:equals(
tagScript(char, sc),
sc,
expected
)
end)
end
return tests